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.
97 lines
3.1 KiB
97 lines
3.1 KiB
cmake_minimum_required(VERSION 3.9)
|
|
project(libublsettingsui-gtk3 VERSION 0)
|
|
include(GNUInstallDirs)
|
|
|
|
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})
|
|
|
|
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 libublsettingsui-gtk3.glade)
|
|
|
|
set(DEPENDFILES
|
|
../libublsettingsui-gtk3.glade
|
|
../libublsettingsui-gtk3-about.glade
|
|
../libublsettingsui-gtk3-documentation.glade
|
|
../libublsettingsui-gtk3-saving.glade
|
|
../gresource.xml
|
|
../libublsettingsui-gtk3-banner.png
|
|
../libublsettingsui-gtk3.css
|
|
../com.ublinux.libublsettingsui-gtk3.checked.svg
|
|
../com.ublinux.libublsettingsui-gtk3.warning.svg
|
|
)
|
|
|
|
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 \
|
|
-O2 -pipe -fno-plt -fexceptions \
|
|
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
|
|
-fstack-clash-protection -fcf-protection")
|
|
|
|
|
|
add_library(${PROJECT_NAME} SHARED
|
|
libublsettingsui-gtk3.c
|
|
libublsettingsui-gtk3.h
|
|
${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C})
|
|
|
|
set(LIBRARIES
|
|
${GTK_LIBRARIES}
|
|
${WEBKIT_LIBRARIES}
|
|
ublsettings
|
|
ublsettings-gtk3
|
|
pthread)
|
|
|
|
add_definitions(-DVTE_DISABLE)
|
|
message(${CMAKE_INSTALL_LIBDIR})
|
|
|
|
target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR})
|
|
|
|
target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES})
|
|
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE C)
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION})
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR})
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER ${PROJECT_NAME}.h)
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
|
|
|
|
install(TARGETS ${PROJECT_NAME}
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
)
|
|
# Set pkg-config file to install. |