98 lines
2.9 KiB
CMake
98 lines
2.9 KiB
CMake
cmake_minimum_required(VERSION 3.14)
|
|
project(Megapixels C)
|
|
|
|
set(CMAKE_C_STANDARD 11)
|
|
|
|
# Use the package PkgConfig to detect GTK+ headers/library files
|
|
FIND_PACKAGE(PkgConfig REQUIRED)
|
|
PKG_CHECK_MODULES(GTK4 REQUIRED gtk4)
|
|
PKG_CHECK_MODULES(FEEDBACK REQUIRED libfeedback-0.0)
|
|
PKG_CHECK_MODULES(TIFF REQUIRED libtiff-4)
|
|
PKG_CHECK_MODULES(ZBAR REQUIRED zbar)
|
|
PKG_CHECK_MODULES(EPOXY REQUIRED epoxy)
|
|
PKG_CHECK_MODULES(MEGAPIXELS REQUIRED libmegapixels)
|
|
PKG_CHECK_MODULES(XLIB REQUIRED x11)
|
|
PKG_CHECK_MODULES(XRANDR REQUIRED xrandr)
|
|
PKG_CHECK_MODULES(WAYLAND REQUIRED wayland-client)
|
|
|
|
# Setup CMake to use GTK+, tell the compiler where to look for headers
|
|
# and to the linker where to look for libraries
|
|
INCLUDE_DIRECTORIES(
|
|
${GTK4_INCLUDE_DIRS}
|
|
${FEEDBACK_INCLUDE_DIRS}
|
|
${TIFF_INCLUDE_DIRS}
|
|
${ZBAR_INCLUDE_DIRS}
|
|
${EPOXY_INCLUDE_DIRS}
|
|
${MEGAPIXELS_INCLUDE_DIRS}
|
|
${XLIB_INCLUDE_DIRS}
|
|
${XRANDR_INCLUDE_DIRS}
|
|
${WAYLAND_INCLUDE_DIRS}
|
|
)
|
|
LINK_DIRECTORIES(
|
|
${GTK4_LIBRARY_DIRS}
|
|
${FEEDBACK_LIBRARY_DIRS}
|
|
${TIFF_LIBRARY_DIRS}
|
|
${ZBAR_LIBRARY_DIRS}
|
|
${EPOXY_LIBRARY_DIRS}
|
|
${MEGAPIXELS_LIBRARY_DIRS}
|
|
${XLIB_LIBRARY_DIRS}
|
|
${XRANDR_LIBRARY_DIRS}
|
|
${WAYLAND_LIBRARY_DIRS}
|
|
)
|
|
|
|
# Add other flags to the compiler
|
|
ADD_DEFINITIONS(
|
|
${GTK4_CFLAGS_OTHER}
|
|
${FEEDBACK_CFLAGS_OTHER}
|
|
${TIFF_CFLAGS_OTHER}
|
|
${ZBAR_CFLAGS_OTHER}
|
|
${EPOXY_CFLAGS_OTHER}
|
|
${MEGAPIXELS_CFLAGS_OTHER}
|
|
${XLIB_CFLAGS_OTHER}
|
|
${XRANDR_CFLAGS_OTHER}
|
|
${WAYLAND_CFLAGS_OTHER}
|
|
)
|
|
|
|
find_program(GLIB_COMPILE_RESOURCES NAMES glib-compile-resources REQUIRED)
|
|
set(GRESOURCE_C megapixels.gresource.c)
|
|
set(GRESOURCE_XML data/org.postmarketos.Megapixels.gresource.xml)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data
|
|
COMMAND ${GLIB_COMPILE_RESOURCES}
|
|
ARGS
|
|
--generate-source
|
|
--target=${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
|
|
../${GRESOURCE_XML}
|
|
VERBATIM
|
|
MAIN_DEPENDENCY ${GRESOURCE_XML}
|
|
)
|
|
|
|
add_custom_target(
|
|
dummy-resource
|
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
|
|
)
|
|
|
|
file(GLOB srcs src/*.c src/*h)
|
|
add_executable(megapixels-gtk ${srcs} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C} src/state.h)
|
|
set_source_files_properties(
|
|
${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
|
|
PROPERTIES GENERATED TRUE
|
|
)
|
|
add_dependencies(megapixels-gtk dummy-resource)
|
|
target_link_libraries(megapixels-gtk
|
|
${GTK4_LIBRARIES}
|
|
${FEEDBACK_LIBRARIES}
|
|
${TIFF_LIBRARIES}
|
|
${ZBAR_LIBRARIES}
|
|
${EPOXY_LIBRARIES}
|
|
${MEGAPIXELS_LIBRARIES}
|
|
${XLIB_LIBRARIES}
|
|
${XRANDR_LIBRARIES}
|
|
${WAYLAND_LIBRARIES}
|
|
)
|
|
|
|
add_compile_definitions(VERSION="${PROJECT_VERSION}")
|
|
add_compile_definitions(SYSCONFDIR="/etc")
|
|
add_compile_definitions(DATADIR="/usr/share") |