4b6a9a9bbc97d10427743ef8aee022d92cdcdccc
[geeqie.git] / src / meson.build
1 # This file is a part of Geeqie project (https://www.geeqie.org/).
2 # Copyright (C) 2008 - 2022 The Geeqie Team
3 #
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13
14 main_sources = files('advanced-exif.cc',
15 'advanced-exif.h',
16 'backward.h',
17 'bar.cc',
18 'bar-comment.cc',
19 'bar-comment.h',
20 'bar-exif.cc',
21 'bar-exif.h',
22 'bar-gps.cc',
23 'bar-gps.h',
24 'bar.h',
25 'bar-histogram.cc',
26 'bar-histogram.h',
27 'bar-keywords.cc',
28 'bar-keywords.h',
29 'bar-rating.cc',
30 'bar-rating.h',
31 'bar-sort.cc',
32 'bar-sort.h',
33 'cache.cc',
34 'cache.h',
35 'cache-loader.cc',
36 'cache-loader.h',
37 'cache-maint.cc',
38 'cache-maint.h',
39 'cellrenderericon.cc',
40 'cellrenderericon.h',
41 'collect.cc',
42 'collect-dlg.cc',
43 'collect-dlg.h',
44 'collect.h',
45 'collect-io.cc',
46 'collect-io.h',
47 'collect-table.cc',
48 'collect-table.h',
49 'color-man.cc',
50 'color-man.h',
51 'compat.cc',
52 'compat.h',
53 'debug.cc',
54 'debug.h',
55 'desktop-file.cc',
56 'desktop-file.h',
57 'dnd.cc',
58 'dnd.h',
59 'dupe.cc',
60 'dupe.h',
61 'editors.cc',
62 'editors.h',
63 'exif.cc',
64 'exif-common.cc',
65 'exif.h',
66 'exif-int.h',
67 'exiv2.cc',
68 'filecache.cc',
69 'filecache.h',
70 'filedata.cc',
71 'filedata.h',
72 'filefilter.cc',
73 'filefilter.h',
74 'format-canon.cc',
75 'format-canon.h',
76 'format-fuji.cc',
77 'format-fuji.h',
78 'format-nikon.cc',
79 'format-nikon.h',
80 'format-olympus.cc',
81 'format-olympus.h',
82 'format-raw.cc',
83 'format-raw.h',
84 'fullscreen.cc',
85 'fullscreen.h',
86 'glua.h',
87 'histogram.cc',
88 'histogram.h',
89 'history-list.cc',
90 'history-list.h',
91 'image.cc',
92 'image.h',
93 'image-load.cc',
94 'image-load-collection.cc',
95 'image-load-collection.h',
96 'image-load-cr3.cc',
97 'image-load-cr3.h',
98 'image-load-dds.cc',
99 'image-load-dds.h',
100 'image-load-djvu.cc',
101 'image-load-djvu.h',
102 'image-load-external.cc',
103 'image-load-external.h',
104 'image-load-ffmpegthumbnailer.cc',
105 'image-load-ffmpegthumbnailer.h',
106 'image-load-gdk.cc',
107 'image-load-gdk.h',
108 'image-load.h',
109 'image-load-heif.cc',
110 'image-load-heif.h',
111 'image-load-j2k.cc',
112 'image-load-j2k.h',
113 'image-load-jpeg.cc',
114 'image-load-jpeg.h',
115 'image-load-jpegxl.cc',
116 'image-load-jpegxl.h',
117 'image-load-libraw.cc',
118 'image-load-libraw.h',
119 'image-load-pdf.cc',
120 'image-load-pdf.h',
121 'image-load-psd.cc',
122 'image-load-psd.h',
123 'image-load-svgz.cc',
124 'image-load-svgz.h',
125 'image-load-tiff.cc',
126 'image-load-tiff.h',
127 'image-load-zxscr.cc',
128 'image-load-zxscr.h',
129 'image-overlay.cc',
130 'image-overlay.h',
131 'img-view.cc',
132 'img-view.h',
133 'intl.h',
134 'jpeg-parser.cc',
135 'jpeg-parser.h',
136 'keymap-template.cc',
137 'keymap-template.h',
138 'layout.cc',
139 'layout-config.cc',
140 'layout-config.h',
141 'layout.h',
142 'layout-image.cc',
143 'layout-image.h',
144 'layout-util.cc',
145 'layout-util.h',
146 'logwindow.cc',
147 'logwindow.h',
148 'lua.cc',
149 'main.cc',
150 'main.h',
151 'md5-util.cc',
152 'md5-util.h',
153 'menu.cc',
154 'menu.h',
155 'metadata.cc',
156 'metadata.h',
157 'misc.cc',
158 'misc.h',
159 'options.cc',
160 'options.h',
161 'osd.cc',
162 'osd.h',
163 'pan-view.h',
164 'pixbuf-renderer.cc',
165 'pixbuf-renderer.h',
166 'pixbuf-util.cc',
167 'pixbuf-util.h',
168 'preferences.cc',
169 'preferences.h',
170 'print.cc',
171 'print.h',
172 'rcfile.cc',
173 'rcfile.h',
174 'remote.cc',
175 'remote.h',
176 'renderer-tiles.cc',
177 'renderer-tiles.h',
178 'search-and-run.cc',
179 'search-and-run.h',
180 'search.cc',
181 'search.h',
182 'secure-save.cc',
183 'secure-save.h',
184 'shortcuts.cc',
185 'shortcuts.h',
186 'similar.cc',
187 'similar.h',
188 'slideshow.cc',
189 'slideshow.h',
190 'thumb.cc',
191 'thumb.h',
192 'thumb-standard.cc',
193 'thumb-standard.h',
194 'toolbar.cc',
195 'toolbar.h',
196 'trash.cc',
197 'trash.h',
198 'typedefs.h',
199 'ui-bookmark.cc',
200 'ui-bookmark.h',
201 'ui-fileops.cc',
202 'ui-fileops.h',
203 'ui-help.cc',
204 'ui-help.h',
205 'ui-menu.cc',
206 'ui-menu.h',
207 'ui-misc.cc',
208 'ui-misc.h',
209 'ui-pathsel.cc',
210 'ui-pathsel.h',
211 'ui-spinner.cc',
212 'ui-spinner.h',
213 'ui-tabcomp.cc',
214 'ui-tabcomp.h',
215 'ui-tree-edit.cc',
216 'ui-tree-edit.h',
217 'ui-utildlg.cc',
218 'ui-utildlg.h',
219 'uri-utils.cc',
220 'uri-utils.h',
221 'utilops.cc',
222 'utilops.h',
223 'view-dir.cc',
224 'view-dir.h',
225 'view-dir-list.cc',
226 'view-dir-list.h',
227 'view-dir-tree.cc',
228 'view-dir-tree.h',
229 'view-file.h',
230 'whereami.cc',
231 'whereami.h',
232 'window.cc',
233 'window.h',
234 'zonedetect.cc',
235 'zonedetect.h')
236
237 project_sources += main_sources
238
239 subdir('authors')
240 subdir('icons')
241 subdir('pan-view')
242 subdir('view-file')
243
244 gqmarshal = gnome.genmarshal('gq-marshal', prefix : 'gq_marshal', sources : 'gq-marshal.list')
245 project_sources += gqmarshal[0]
246 project_sources += gqmarshal[1]
247
248 icon_pairs = [
249 'icon_spinner', files('ui_spinner.png'),
250 'icon_tabcomp', files('ui_tabcomp.png'),
251 ]
252
253 ui_icons_h = custom_target('ui_icons', output : 'ui_icons.h',
254                 command : [gdk_pixbuf_csource, '--raw', '--extern', '--build-list', icon_pairs],
255                 capture : true)
256
257 project_sources += ui_icons_h
258
259 if conf_data.has('HAVE_LCMS')
260     xxd_sh = find_program('generate-ClayRGB1998-icc-h.sh', dirs : join_paths(meson.project_source_root(), 'scripts'))
261
262     ClayRGB1998_icc_h = custom_target('ClayRGB1998',
263                         input: 'ClayRGB1998.icc',
264                         output : 'ClayRGB1998_icc.h',
265                         command : [xxd_sh, '@INPUT@', '@OUTPUT@'])
266
267     project_sources += ClayRGB1998_icc_h
268 endif
269
270 executable('geeqie', project_sources,
271 dependencies : [
272 gtk_dep,
273 champlain_dep,
274 champlain_gtk_dep,
275 clutter_dep,
276 clutter_gtk_dep,
277 ddjvuapi_dep,
278 exiv2_dep,
279 glib_dep,
280 gspell_dep,
281 lcms_dep,
282 libarchive_dep,
283 libdw_dep,
284 libffmpegthumbnailer_dep,
285 libheif_dep,
286 libjpeg_dep,
287 libjxl_dep,
288 libopenjp2_dep,
289 libraw_dep,
290 libunwind_dep,
291 lua_dep,
292 poppler_glib_dep,
293 thread_dep,
294 tiff_dep
295 ],
296 include_directories : [configuration_inc], install : true)