parent
284165f8db
commit
158b044313
@ -1,146 +0,0 @@
|
|||||||
#!/usr/bin/make -f
|
|
||||||
|
|
||||||
#SHELL := /bin/bash
|
|
||||||
MAKEFILE_FILEPATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
|
||||||
MAKEFILE_DIR := $(notdir $(patsubst %/,%,$(dir $(MAKEFILE_FILEPATH))))
|
|
||||||
MAKEFILE_PATH := $(dir $(MAKEFILE_FILEPATH))
|
|
||||||
|
|
||||||
CMAKE_COMMAND = cmake
|
|
||||||
CMAKE_SOURCE_DIR = $(MAKEFILE_PATH)source
|
|
||||||
CMAKE_BUILD_DIR = $(MAKEFILE_PATH)compile
|
|
||||||
DEPENDS = /bin/cmake
|
|
||||||
PREFIX ?= /usr/local
|
|
||||||
PKGNAME = $(MAKEFILE_DIR)
|
|
||||||
FILE_VER = source/${PKGNAME}.h
|
|
||||||
|
|
||||||
default_target: all
|
|
||||||
|
|
||||||
.PHONY: all init depend debug prepare check build uninstall install clean help
|
|
||||||
|
|
||||||
all: init build
|
|
||||||
|
|
||||||
init:
|
|
||||||
@echo "Initialize ..."; \
|
|
||||||
if [ -d ".git" ]; then \
|
|
||||||
LATEST_TAG=$$(git describe --abbrev=0 --tags | sed 's/^v//'); \
|
|
||||||
else \
|
|
||||||
LATEST_TAG="Development"; \
|
|
||||||
fi; \
|
|
||||||
sed -r "s/^(string version_application).*/\1 = \"$${LATEST_TAG}\";/" -i ${FILE_VER}; \
|
|
||||||
echo "-- Build path: ${CMAKE_BUILD_DIR}"
|
|
||||||
|
|
||||||
depend:
|
|
||||||
@echo "Check depends ..."
|
|
||||||
@for FILE_DEPEND in $(DEPENDS); do \
|
|
||||||
if [ ! -f $${FILE_DEPEND} ]; then \
|
|
||||||
echo "ERROR: Depend '$${FILE_DEPEND}' not found !"; \
|
|
||||||
exit 1; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B${CMAKE_BUILD_DIR} --check-build-system CMakeFiles/Makefile.cmake 1 || exit 1; \
|
|
||||||
echo "Check depends: OK"
|
|
||||||
|
|
||||||
debug:
|
|
||||||
@echo "Debug ..."
|
|
||||||
if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
|
|
||||||
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \
|
|
||||||
fi; \
|
|
||||||
echo "Debug: OK"
|
|
||||||
|
|
||||||
prepare:
|
|
||||||
@echo "Prepare ..."; \
|
|
||||||
if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
|
|
||||||
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \
|
|
||||||
fi; \
|
|
||||||
echo "Prepare: OK"
|
|
||||||
|
|
||||||
check:
|
|
||||||
@echo "Check ..."; \
|
|
||||||
if [ -f ${CMAKE_BUILD_DIR}/${PKGNAME} ]; then \
|
|
||||||
echo "Check: OK"; \
|
|
||||||
else \
|
|
||||||
echo "Check: ${CMAKE_BUILD_DIR}/${PKGNAME} not found !"; \
|
|
||||||
exit 1; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
build: depend prepare
|
|
||||||
@echo "Build ..."; \
|
|
||||||
$(MAKE_COMMAND) --directory=${CMAKE_BUILD_DIR}; \
|
|
||||||
sed -r "s/^(string version_application).*/\1;/" -i ${FILE_VER}; \
|
|
||||||
echo "Build: OK"
|
|
||||||
|
|
||||||
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="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
|
|
||||||
$(RM) "$${PATH_FILE_MO}"; \
|
|
||||||
done
|
|
||||||
@for SIZE in 16x16 32x32 48x48 scalable; do \
|
|
||||||
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
|
|
||||||
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.png"; \
|
|
||||||
done
|
|
||||||
@for FILE_SVG in $(wildcard *.svg); do \
|
|
||||||
for SIZE in 16x16 32x32 48x48 scalable; do \
|
|
||||||
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \
|
|
||||||
done; \
|
|
||||||
done
|
|
||||||
@$(RM) "${DESTDIR}${PREFIX}/bin/${PKGNAME}"
|
|
||||||
@$(RM) "${DESTDIR}/etc/xdg/${PKGNAME}/${PKGNAME}.conf"
|
|
||||||
@$(RM) "${DESTDIR}${PREFIX}/share/applications/${PKGNAME}.desktop"
|
|
||||||
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg"
|
|
||||||
@$(RM) "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}.policy"
|
|
||||||
@if [ -z ${DESTDIR} ]; then \
|
|
||||||
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
|
|
||||||
update-desktop-database --quiet &>/dev/null || true; \
|
|
||||||
[ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
|
|
||||||
fi
|
|
||||||
@echo "Uninstall: OK"
|
|
||||||
|
|
||||||
install: check uninstall
|
|
||||||
@echo "Install ..."
|
|
||||||
@for FILE_PO in $(wildcard *.po); do \
|
|
||||||
LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
|
|
||||||
install -dm755 "${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES"; \
|
|
||||||
FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
|
|
||||||
PATH_FILE_MO="${DESTDIR}${PREFIX}/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 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
|
|
||||||
rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
|
|
||||||
done
|
|
||||||
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg"
|
|
||||||
@install -Dm644 -t "${DESTDIR}/usr/share/polkit-1/actions/" "com.ublinux.${PKGNAME}.policy"
|
|
||||||
@install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}"
|
|
||||||
@install -Dm744 -t "${DESTDIR}/etc/xdg/${PKGNAME}/" "${PKGNAME}.conf"
|
|
||||||
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop"
|
|
||||||
@sed -e 's+/usr/bin+${PREFIX}/bin+g' -i ${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}.policy
|
|
||||||
@if [ -z ${DESTDIR} ]; then \
|
|
||||||
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
|
|
||||||
update-desktop-database --quiet &>/dev/null || true; \
|
|
||||||
[ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
|
|
||||||
fi
|
|
||||||
@echo "Install: OK"
|
|
||||||
|
|
||||||
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"
|
|
||||||
@ -1,93 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION 3.7)
|
|
||||||
project(ubl-settings-manager)
|
|
||||||
|
|
||||||
find_package(PkgConfig REQUIRED)
|
|
||||||
|
|
||||||
pkg_check_modules(GTK REQUIRED gtk+-3.0)
|
|
||||||
include_directories(${GTK_INCLUDE_DIRS})
|
|
||||||
link_directories(${GTK_LIBRARY_DIRS})
|
|
||||||
add_definitions(${GTK_CFLAGS_OTHER})
|
|
||||||
|
|
||||||
#pkg_check_modules(VTE291 REQUIRED vte-2.91)
|
|
||||||
#include_directories(${VTE291_INCLUDE_DIRS})
|
|
||||||
#link_directories(${VTE291_LIBRARY_DIRS})
|
|
||||||
#add_definitions(${VTE291_CFLAGS_OTHER})
|
|
||||||
|
|
||||||
find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
|
|
||||||
|
|
||||||
option(WEBKIT_FOUND "No" OFF)
|
|
||||||
if(WEBKIT_LIBRARIES_FOUND)
|
|
||||||
option(WEBKIT_FOUND "Yes" ON)
|
|
||||||
PKG_CHECK_MODULES(WEBKIT REQUIRED webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
|
|
||||||
include_directories(${WEBKIT_INCLUDE_DIRS})
|
|
||||||
link_directories(${WEBKIT_LIBRARY_DIRS})
|
|
||||||
add_definitions(${WEBKIT_CFLAGS_OTHER})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
configure_file(ubl-cmake.in ubl-cmake.h)
|
|
||||||
|
|
||||||
file(COPY ${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h DESTINATION ./)
|
|
||||||
|
|
||||||
set(GRESOURCE_C resources.c)
|
|
||||||
set(GRESOURCE_XML gresource.xml)
|
|
||||||
|
|
||||||
find_program(GLIB_COMPILE_RESOURCES NAMES glib-compile-resources REQUIRED)
|
|
||||||
add_custom_target(GLADE ubl-settings-manager.glade)
|
|
||||||
|
|
||||||
set(DEPENDFILES
|
|
||||||
../ubl-settings-manager.glade
|
|
||||||
../gresource.xml
|
|
||||||
../ubl-settings-manager-banner.png
|
|
||||||
../ubl-settings-manager.css
|
|
||||||
)
|
|
||||||
|
|
||||||
file(COPY ${DEPENDFILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
|
||||||
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${GRESOURCE_C}
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
||||||
COMMAND ${GLIB_COMPILE_RESOURCES}
|
|
||||||
ARGS
|
|
||||||
--generate-source
|
|
||||||
--target=${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
|
|
||||||
${GRESOURCE_XML}
|
|
||||||
VERBATIM
|
|
||||||
MAIN_DEPENDENCY ${GRESOURCE_XML}
|
|
||||||
DEPENDS
|
|
||||||
${GLADE}
|
|
||||||
)
|
|
||||||
add_custom_target(
|
|
||||||
dummy-resource
|
|
||||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
|
|
||||||
)
|
|
||||||
|
|
||||||
#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 -lm")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \
|
|
||||||
-O2 -pipe -fno-plt -fexceptions \
|
|
||||||
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
|
|
||||||
-fstack-clash-protection -fcf-protection")
|
|
||||||
|
|
||||||
|
|
||||||
set(SOURCE_FILES
|
|
||||||
ubl-settings-manager.c
|
|
||||||
ubl-settings-manager.h
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h
|
|
||||||
)
|
|
||||||
|
|
||||||
set(LIBRARIES
|
|
||||||
${GTK_LIBRARIES}
|
|
||||||
${WEBKIT_LIBRARIES}
|
|
||||||
# ${VTE291_LIBRARIES}
|
|
||||||
pthread)
|
|
||||||
|
|
||||||
|
|
||||||
add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C})
|
|
||||||
target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES})
|
|
||||||
target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR})
|
|
||||||
set_source_files_properties(
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
|
|
||||||
PROPERTIES GENERATED TRUE
|
|
||||||
)
|
|
||||||
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
|
|
||||||
add_dependencies(${PROJECT_NAME} dummy-resource)
|
|
||||||
Loading…
Reference in new issue