123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- 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)
- PKG_CHECK_MODULES(JPEG REQUIRED libjpeg)
- # 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}
- ${JPEG_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}
- ${JPEG_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}
- ${JPEG_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}
- ${JPEG_LIBRARIES}
- )
- add_compile_definitions(VERSION="${PROJECT_VERSION}")
- add_compile_definitions(SYSCONFDIR="/etc")
- add_compile_definitions(DATADIR="/usr/share")
|