You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
3.5 KiB
111 lines
3.5 KiB
cmake_minimum_required(VERSION 3.7)
|
|
project(ubl-settings-bootloader)
|
|
|
|
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()
|
|
|
|
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-bootloader.glade)
|
|
|
|
set(DEPENDFILES
|
|
../ubl-settings-bootloader.glade
|
|
../ubl-settings-bootloader-password.glade
|
|
../ubl-settings-bootloader-user.glade
|
|
../ubl-settings-bootloader-ringtone.glade
|
|
../ubl-settings-bootloader-menu.glade
|
|
../ubl-settings-bootloader-menu-item.glade
|
|
../grub-parameters.csv
|
|
../grub-terminal-input.csv
|
|
../grub-terminal-output.csv
|
|
../grub-melody.csv
|
|
../gresource.xml
|
|
../ubl-settings-bootloader-banner.png
|
|
../ubl-settings-bootloader.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}
|
|
)
|
|
|
|
add_definitions(-DVTE_INCLUDE)
|
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \
|
|
-O2 -pipe -fno-plt -fexceptions \
|
|
-Wformat -Werror=format-security \
|
|
-fstack-clash-protection -fcf-protection")
|
|
|
|
string(FIND "${CMAKE_CXX_FLAGS}" "-D_FORTIFY_SOURCE" FORTIFY_FOUND)
|
|
|
|
if(FORTIFY_FOUND EQUAL -1)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wp,-D_FORTIFY_SOURCE=2")
|
|
endif()
|
|
|
|
set(SOURCE_FILES
|
|
ubl-settings-bootloader.c
|
|
ubl-settings-bootloader-user.c
|
|
ubl-settings-bootloader-password.c
|
|
ubl-settings-bootloader-melody.c
|
|
ubl-settings-bootloader-menu.c
|
|
ubl-settings-bootloader.h
|
|
ubl-strings.h
|
|
)
|
|
|
|
set(LIBRARIES
|
|
${GTK_LIBRARIES}
|
|
${WEBKIT_LIBRARIES}
|
|
${UTILS_LIBRARIES}
|
|
${VTE291_LIBRARIES}
|
|
pthread
|
|
ublsettings
|
|
ublsettings-gtk3
|
|
ublsettingsui-gtk3)
|
|
|
|
|
|
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) |