Files
Megapixels/CMakeLists.txt
2023-12-02 12:30:06 +01:00

100 lines
3.0 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(DNG REQUIRED libdng)
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}
${DNG_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}
${DNG_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}
${DNG_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/me.gapixels.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
m
${GTK4_LIBRARIES}
${FEEDBACK_LIBRARIES}
${DNG_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")