File: CMakeLists.txt

package info (click to toggle)
megapixels 2.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 2,876 kB
  • sloc: ansic: 6,530; python: 442; xml: 367; sh: 116; makefile: 3
file content (107 lines) | stat: -rw-r--r-- 3,252 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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)

file(GLOB datas data/*)
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}
        DEPENDS ${datas}
)

add_custom_target(
        dummy-resource
        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
)

file(GLOB srcs src/*.c src/*h)
add_executable(megapixels-gtk ${srcs} medianame.h ${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")