parent
2c59189248
commit
ae47c17807
@ -1,71 +1,129 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
pkgname=ubl-settings-datetime
|
MAKEFILE_FILEPATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||||
|
MAKEFILE_DIR := $(notdir $(patsubst %/,%,$(dir $(MAKEFILE_FILEPATH))))
|
||||||
|
MAKEFILE_PATH := $(dir $(MAKEFILE_FILEPATH))
|
||||||
|
|
||||||
all: uninstall init build check install clean
|
CMAKE_COMMAND = cmake
|
||||||
|
CMAKE_SOURCE_DIR = ./source
|
||||||
|
CMAKE_BUILD_DIR = ./compile
|
||||||
|
DEPENDS = cmake
|
||||||
|
|
||||||
|
PKGNAME = $(MAKEFILE_DIR)
|
||||||
|
#PKGNAME = ubl-settings-datetime
|
||||||
|
|
||||||
|
default_target: all
|
||||||
|
all: init build
|
||||||
|
|
||||||
init:
|
init:
|
||||||
mkdir -p /usr/share/${pkgname}/{images,ui,reg}/;
|
@echo "Initialize ..."; \
|
||||||
|
echo "-- Build path: ${CMAKE_BUILD_DIR}"
|
||||||
|
|
||||||
|
depend:
|
||||||
|
@echo "Check depends ..."; \
|
||||||
|
if [ ! -f /bin/${DEPENDS} ]; then \
|
||||||
|
echo "-- Depend '${DEPENDS}' not fount !"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
echo "Check depends: OK"
|
||||||
|
# $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
|
||||||
|
|
||||||
uninstall:
|
debug:
|
||||||
@for size in 16 32 48; do \
|
@echo "Debug ..."
|
||||||
rm -f "/usr/share/icons/hicolor/$${size}x$${size}/apps/ublinux-datetime-settings.svg"; \
|
if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
|
||||||
rm -f "/usr/share/icons/hicolor/$${size}x$${size}/apps/ublinux-datetime-settings.png"; \
|
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="/usr"; \
|
||||||
done;
|
fi; \
|
||||||
@for file_po in *.po; do \
|
echo "Debug: OK"
|
||||||
lang=$${file_po##*_};lang=$${lang%.*}; \
|
|
||||||
file_mo=$${file_po##*/}; file_mo="$${file_mo%_*.po}.mo"; \
|
|
||||||
path_file_mo="/usr/share/locale/$${lang}/LC_MESSAGES/$${file_mo}"; \
|
|
||||||
rm -f "/usr/share/locale/$${lang}/LC_MESSAGES/$${file_mo}"; \
|
|
||||||
done;
|
|
||||||
rm -f /usr/bin/${pkgname}; \
|
|
||||||
rm -rf /usr/bin/${pkgname}/reg; \
|
|
||||||
rm -f /usr/share/${pkgname}/ui/${pkgname}.glade; \
|
|
||||||
rm -f /usr/share/applications/${pkgname}.desktop; \
|
|
||||||
rm -f /usr/share/${pkgname}/images/ublinux-datetime-settings.svg; \
|
|
||||||
rm -f /usr/share/${pkgname}/images/ublinux-datetime-settings.png; \
|
|
||||||
rm -f /usr/share/polkit-1/actions/org.freedesktop.policykit.${pkgname}.pkexec.policy; \
|
|
||||||
|
|
||||||
build:
|
prepare:
|
||||||
echo "Build"; \
|
@echo "Prepare ..."; \
|
||||||
g++ -O2 -std=c++20 -lstdc++ -o ubl-settings-datetime ubl-settings-datetime.cpp `pkg-config --cflags --libs gtkmm-3.0` -Wl,-export-dynamic -g; \
|
if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
|
||||||
|
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/usr"; \
|
||||||
|
fi; \
|
||||||
|
echo "Prepare: OK"
|
||||||
|
|
||||||
check:
|
check:
|
||||||
echo "Check"; \
|
@echo "Check ..."; \
|
||||||
|
if [ -f ${CMAKE_BUILD_DIR}/${PKGNAME} ]; then \
|
||||||
|
echo "Check: OK"; \
|
||||||
|
else \
|
||||||
|
echo "Check: ${CMAKE_BUILD_DIR}/${PKGNAME} not fount !"; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
build: depend prepare
|
||||||
|
@echo "Build ..."; \
|
||||||
|
make --directory=${CMAKE_BUILD_DIR}; \
|
||||||
|
echo "Build: OK"
|
||||||
|
# g++ -O2 -std=c++20 -lstdc++ -o ubl-settings-datetime ubl-settings-datetime.cpp `pkg-config --cflags --libs gtkmm-3.0` -Wl,-export-dynamic -g
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
@echo "Uninstall ..."
|
||||||
|
@for FILE_PO in $(wildcard *.po); do \
|
||||||
|
LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
|
||||||
|
FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
|
||||||
|
PATH_FILE_MO="/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
|
||||||
|
$(RM) "/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
|
||||||
|
done
|
||||||
|
@for SIZE in 16x16 32x32 48x48 scalable; do \
|
||||||
|
$(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/${PKGNAME}.svg"; \
|
||||||
|
$(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/${PKGNAME}.png"; \
|
||||||
|
done
|
||||||
|
@for FILE_SVG in $(wildcard *.svg); do \
|
||||||
|
for SIZE in 16x16 32x32 48x48 scalable; do \
|
||||||
|
$(RM) "/usr/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \
|
||||||
|
done; \
|
||||||
|
done
|
||||||
|
@$(RM) "/usr/bin/${PKGNAME}"
|
||||||
|
@$(RM) "/usr/share/applications/${PKGNAME}.desktop"
|
||||||
|
@$(RM) "/usr/share/polkit-1/actions/org.freedesktop.policykit.${PKGNAME}.pkexec.policy"
|
||||||
|
@$(RM) -rd "/usr/share/${PKGNAME}"
|
||||||
|
$(shell gtk-update-icon-cache -fiq /usr/share/icons/hicolor/ &>/dev/null)
|
||||||
|
@echo "Uninstall: OK"
|
||||||
|
|
||||||
|
install: check uninstall
|
||||||
|
@echo "Install ..."
|
||||||
|
@for FILE_PO in $(wildcard *.po); do \
|
||||||
|
LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
|
||||||
|
install -dm755 /usr/share/locale/$${LANG}/LC_MESSAGES; \
|
||||||
|
FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
|
||||||
|
PATH_FILE_MO="/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
|
||||||
|
echo $${FILE_PO}; \
|
||||||
|
msgfmt "$${FILE_PO}" -v -f -o "$${PATH_FILE_MO}"; \
|
||||||
|
done
|
||||||
|
@for SIZE in 16 32 48; do \
|
||||||
|
install -dm755 /usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps; \
|
||||||
|
rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data ${PKGNAME}.svg -o "/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/${PKGNAME}.svg"; \
|
||||||
|
done
|
||||||
|
@install -dm755 /usr/share/icons/hicolor/scalable/apps
|
||||||
|
@install -Dm644 -t /usr/share/icons/hicolor/scalable/apps/ ${PKGNAME}.svg
|
||||||
|
@install -Dm755 -t /usr/bin/ ${CMAKE_BUILD_DIR}/${PKGNAME}
|
||||||
|
@install -Dm644 -t /usr/share/applications/ ${PKGNAME}.desktop
|
||||||
|
@install -Dm644 -t /usr/share/polkit-1/actions/ org.freedesktop.policykit.${PKGNAME}.pkexec.policy
|
||||||
|
@install -dm755 /usr/share/${PKGNAME}/{ui,images,reg}
|
||||||
|
@install -Dm644 -t /usr/share/${PKGNAME}/ui/ ${PKGNAME}.glade
|
||||||
|
@install -Dm644 -t /usr/share/${PKGNAME}/images/ ${PKGNAME}.svg
|
||||||
|
@install -Dm644 -t /usr/share/${PKGNAME}/images/ ${PKGNAME}.png
|
||||||
|
@cp -afr reg/* /usr/share/${PKGNAME}/reg/
|
||||||
|
$(shell gtk-update-icon-cache -fiq /usr/share/icons/hicolor/)
|
||||||
|
@echo "Install: OK"
|
||||||
|
|
||||||
install:
|
|
||||||
@for size in 16 32 48; do \
|
|
||||||
install -dm755 /usr/share/icons/hicolor/$${size}x$${size}/apps; \
|
|
||||||
rsvg-convert -w $$size -h $$size -f svg --keep-image-data ${pkgname}.svg -o "/usr/share/icons/hicolor/$${size}x$${size}/apps/$${pkgname}.svg"; \
|
|
||||||
done;
|
|
||||||
@for file_po in *.po; do \
|
|
||||||
lang=$${file_po##*_};lang=$${lang%.*}; \
|
|
||||||
install -dm755 /usr/share/locale/$${lang}/LC_MESSAGES; \
|
|
||||||
file_mo=$${file_po##*/}; file_mo="$${file_mo%_*.po}.mo"; \
|
|
||||||
path_file_mo="/usr/share/locale/$${lang}/LC_MESSAGES/$${file_mo}"; \
|
|
||||||
echo $$file_po; \
|
|
||||||
msgfmt "$${file_po}" -v -f -o "$${path_file_mo}"; \
|
|
||||||
done;
|
|
||||||
install -vDm0755 ${pkgname} -t /usr/bin/; \
|
|
||||||
install -vDm0644 ${pkgname}.glade -t /usr/share/${pkgname}/ui/; \
|
|
||||||
install -vDm0644 ${pkgname}.desktop -t /usr/share/applications/; \
|
|
||||||
install -vDm0644 ubl-settings-datetime.svg -t /usr/share/icons/hicolor/scalable/apps/
|
|
||||||
install -vDm0644 ubl-settings-datetime.svg -t /usr/share/${pkgname}/images/; \
|
|
||||||
install -vDm0644 ubl-settings-datetime.png -t /usr/share/${pkgname}/images/; \
|
|
||||||
install -vDm0644 org.freedesktop.policykit.${pkgname}.pkexec.policy -t /usr/share/polkit-1/actions/;
|
|
||||||
install -vDm0644 reg/Africa -t /usr/share/${pkgname}/reg/; \
|
|
||||||
install -vDm0644 reg/America -t /usr/share/${pkgname}/reg/; \
|
|
||||||
install -vDm0644 reg/Antarctica -t /usr/share/${pkgname}/reg/; \
|
|
||||||
install -vDm0644 reg/Arctic -t /usr/share/${pkgname}/reg/; \
|
|
||||||
install -vDm0644 reg/Asia -t /usr/share/${pkgname}/reg/; \
|
|
||||||
install -vDm0644 reg/Atlantic -t /usr/share/${pkgname}/reg/; \
|
|
||||||
install -vDm0644 reg/Australia -t /usr/share/${pkgname}/reg/; \
|
|
||||||
install -vDm0644 reg/Brazil -t /usr/share/${pkgname}/reg/; \
|
|
||||||
install -vDm0644 reg/Chile -t /usr/share/${pkgname}/reg/; \
|
|
||||||
install -vDm0644 reg/Europe -t /usr/share/${pkgname}/reg/; \
|
|
||||||
install -vDm0644 reg/Indian -t /usr/share/${pkgname}/reg/; \
|
|
||||||
install -vDm0644 reg/Mexico -t /usr/share/${pkgname}/reg/; \
|
|
||||||
install -vDm0644 reg/US -t /usr/share/${pkgname}/reg/;
|
|
||||||
clean:
|
clean:
|
||||||
echo "Clean";
|
@echo "Clean ..."
|
||||||
|
@$(RM) -rd ${CMAKE_BUILD_DIR}
|
||||||
|
@if [ -d ${CMAKE_BUILD_DIR} ]; then \
|
||||||
|
echo "Clean: error, compile directory exist ${CMAKE_BUILD_DIR}"; \
|
||||||
|
else \
|
||||||
|
echo "Clean: OK"; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
help:
|
||||||
|
@echo "The following are some of the valid targets for this Makefile:"
|
||||||
|
@echo "... all (the default if no target is provided)"
|
||||||
|
@echo "... init"
|
||||||
|
@echo "... debug"
|
||||||
|
@echo "... prepare"
|
||||||
|
@echo "... compile"
|
||||||
|
@echo "... install"
|
||||||
|
@echo "... uninstall"
|
||||||
|
@echo "... clean"
|
||||||
|
|||||||
@ -0,0 +1,24 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.7)
|
||||||
|
project(ubl-settings-datetime)
|
||||||
|
|
||||||
|
find_package(PkgConfig REQUIRED)
|
||||||
|
|
||||||
|
pkg_check_modules(GTK REQUIRED gtkmm-3.0)
|
||||||
|
include_directories(${GTK_INCLUDE_DIRS})
|
||||||
|
link_directories(${GTK_LIBRARY_DIRS})
|
||||||
|
add_definitions(${GTK_CFLAGS_OTHER})
|
||||||
|
|
||||||
|
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a")
|
||||||
|
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -fdiagnostics-color=always")
|
||||||
|
|
||||||
|
set(SOURCE_FILES
|
||||||
|
ubl-settings-datetime.cpp)
|
||||||
|
|
||||||
|
set(LIBRARIES
|
||||||
|
${GTK_LIBRARIES}
|
||||||
|
pthread)
|
||||||
|
|
||||||
|
add_executable(ubl-settings-datetime ${SOURCE_FILES})
|
||||||
|
target_link_libraries(ubl-settings-datetime ${LIBRARIES})
|
||||||
|
install(TARGETS ubl-settings-datetime DESTINATION bin)
|
||||||
@ -1,12 +1,13 @@
|
|||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=Time date settings
|
||||||
|
Name[ru]=Настройка даты времени
|
||||||
|
GenericName=Time date settings
|
||||||
|
GenericName[ru]=Настройка даты и времени
|
||||||
|
Comment=Time date settings
|
||||||
|
Comment[ru]=Приложение для настройки даты и времени
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=ubl-settings-datetime
|
Exec=ubl-settings-datetime
|
||||||
Icon=ubl-settings-datetime
|
Icon=ubl-settings-datetime
|
||||||
Comment=Time setting app
|
|
||||||
Comment[ru]=Приложение для настройки времени
|
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Name=Time setting
|
|
||||||
Name[ru]=Настройка времени
|
|
||||||
GenericName=Time setting app
|
|
||||||
GenericName[ru]=Настройка времени
|
|
||||||
Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;
|
Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;
|
||||||
Loading…
Reference in new issue