-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
142 lines (125 loc) · 5.02 KB
/
Copy pathCMakeLists.txt
File metadata and controls
142 lines (125 loc) · 5.02 KB
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
include_directories("${DARKTABLE_BINDIR}/")
include(manage-symbol-visibility)
add_definitions(-include common/module_api.h)
add_definitions(-include libs/lib_api.h)
# The modules
set(MODULES import export copy_history styles tagging image select collect recentcollect filtering metadata metadata_view navigation histogram history snapshots modulegroups backgroundjobs colorpicker masks session duplicate ioporder)
# The tools
set(MODULES ${MODULES} viewswitcher)
set(MODULES ${MODULES} darktable_label)
set(MODULES ${MODULES} ratings)
set(MODULES ${MODULES} colorlabels)
set(MODULES ${MODULES} filter)
set(MODULES ${MODULES} lighttable_mode)
set(MODULES ${MODULES} view_toolbox)
set(MODULES ${MODULES} module_toolbox)
set(MODULES ${MODULES} filmstrip)
set(MODULES ${MODULES} hinter)
set(MODULES ${MODULES} global_toolbox)
set(MODULES ${MODULES} timeline)
set(MODULES ${MODULES} image_infos)
set(MODULES ${MODULES} log_history)
# modules
add_library(import MODULE "import.c")
add_library(export MODULE "export.c" "export_metadata.c")
add_library(copy_history MODULE "copy_history.c")
add_library(styles MODULE "styles.c")
add_library(image MODULE "image.c")
add_library(tagging MODULE "tagging.c")
add_library(select MODULE "select.c")
add_library(collect MODULE "collect.c")
add_library(recentcollect MODULE "recentcollect.c")
add_library(filtering MODULE "filtering.c")
add_library(metadata MODULE "metadata.c")
add_library(metadata_view MODULE "metadata_view.c")
add_library(navigation MODULE "navigation.c")
add_library(histogram MODULE "histogram.c" "scopes/histogram.c" "scopes/waveform.c" "scopes/vectorscope.c" "scopes/split.c")
add_library(history MODULE "history.c")
add_library(snapshots MODULE "snapshots.c")
add_library(modulegroups MODULE "modulegroups.c")
add_library(backgroundjobs MODULE "backgroundjobs.c")
add_library(colorpicker MODULE "colorpicker.c")
add_library(masks MODULE "masks.c")
add_library(session MODULE "session.c")
add_library(duplicate MODULE "duplicate.c")
add_library(ioporder MODULE "ioporder.c")
# tools
add_library(viewswitcher MODULE "tools/viewswitcher.c")
add_library(darktable_label MODULE "tools/darktable.c")
add_library(colorlabels MODULE "tools/colorlabels.c")
add_library(ratings MODULE "tools/ratings.c")
add_library(filter MODULE "tools/filter.c")
add_library(lighttable_mode MODULE "tools/lighttable.c")
add_library(view_toolbox MODULE "tools/view_toolbox.c")
add_library(module_toolbox MODULE "tools/module_toolbox.c")
add_library(filmstrip MODULE "tools/filmstrip.c")
add_library(hinter MODULE "tools/hinter.c")
add_library(global_toolbox MODULE "tools/global_toolbox.c")
add_library(timeline MODULE "tools/timeline.c")
add_library(image_infos MODULE "tools/image_infos.c")
add_library(log_history MODULE "tools/log_history.c")
if(PortMidi_FOUND)
add_definitions("-DHAVE_PORTMIDI")
include_directories(${PortMidi_INCLUDE_DIR})
set(MODULES ${MODULES} midi)
add_library(midi MODULE "tools/midi.c")
target_link_libraries (midi ${PortMidi_LIBRARY})
endif()
if(USE_SDL3)
find_package(SDL3)
if(SDL3_FOUND)
add_definitions("-DHAVE_SDL")
set(MODULES ${MODULES} gamepad)
add_library(gamepad MODULE "tools/gamepad.c")
if(TARGET SDL3::SDL3)
target_link_libraries(gamepad SDL3::SDL3)
else()
include_directories(${SDL3_INCLUDE_DIRS})
target_link_libraries(gamepad ${SDL3_LIBRARIES})
endif()
endif()
endif()
# check if gphoto2 found and add build of camera modules...
if(Gphoto2_FOUND)
add_library(camera MODULE "camera.c")
add_library(live_view MODULE "live_view.c")
set(MODULES ${MODULES} camera live_view)
endif(Gphoto2_FOUND)
# the modules specific to map mode
if(USE_MAP)
add_library(location MODULE "location.c")
add_library(map_settings MODULE "map_settings.c")
add_library(map_locations MODULE "map_locations.c")
set(MODULES ${MODULES} location map_settings map_locations)
endif(USE_MAP)
# the modules specific to geotagging module
add_library(geotagging MODULE "geotagging.c")
set(MODULES ${MODULES} geotagging)
# the module specific to print mode
if(CUPS_FOUND)
add_library(print_settings MODULE "print_settings.c")
set(MODULES ${MODULES} print_settings)
endif(CUPS_FOUND)
# AI neural restore module
if(USE_AI)
add_library(neural_restore MODULE "neural_restore.c")
target_link_libraries(neural_restore TIFF::TIFF)
set(MODULES ${MODULES} neural_restore)
endif(USE_AI)
# Add libs references
foreach(module ${MODULES})
target_link_libraries(${module} lib_darktable)
endforeach(module)
# Add installation target for each module
# TODO: Modules are now not only lighttable related and should be placed
# in a better matching structure then just in lighttable directory.
foreach(module ${MODULES})
if(WIN32)
_detach_debuginfo (${module} ${CMAKE_INSTALL_LIBDIR}/darktable/plugins/lighttable)
else()
set_target_properties(${module}
PROPERTIES
INSTALL_RPATH ${RPATH_ORIGIN}/../..)
endif()
install(TARGETS ${module} DESTINATION ${CMAKE_INSTALL_LIBDIR}/darktable/plugins/lighttable COMPONENT DTApplication)
endforeach(module)