1libgnome_photos_built_headers = []
2
3sources = files(
4  'photos-debug.c',
5  'photos-error.c',
6  'photos-gegl.c',
7  'photos-glib.c',
8  'photos-jpeg-count.c',
9  'photos-operation-insta-clarendon.c',
10  'photos-operation-insta-curve.c',
11  'photos-operation-insta-filter.c',
12  'photos-operation-insta-hefe.c',
13  'photos-operation-insta-hefe-curve.c',
14  'photos-operation-insta-hefe-vignette.c',
15  'photos-operation-jpg-guess-sizes.c',
16  'photos-operation-png-guess-sizes.c',
17  'photos-operation-saturation.c',
18  'photos-operation-svg-multiply.c',
19  'photos-pipeline.c',
20  'photos-png-count.c',
21  'photos-quarks.c',
22)
23
24thumbnailer_dbus = 'photos-thumbnailer-dbus'
25
26libgnome_photos_built_sources_gdbus = gnome.gdbus_codegen(
27  thumbnailer_dbus,
28  thumbnailer_dbus + '.xml',
29  interface_prefix: photos_namespace + '.',
30  namespace: 'Photos',
31  annotations: [
32    [photos_namespace + '.Thumbnailer', 'org.gtk.GDBus.C.Name', 'ThumbnailerDBus'],
33    [photos_namespace + '.Thumbnailer.GenerateThumbnail()[pipeline_uris]', 'org.gtk.GDBus.C.ForceGVariant', 'true'],
34  ],
35  autocleanup: 'all',
36)
37
38libgnome_photos_built_headers += libgnome_photos_built_sources_gdbus[1]
39sources += libgnome_photos_built_sources_gdbus
40
41enum_headers = files(
42  'photos-operation-insta-common.h',
43)
44
45enum = 'photos-enums-gegl'
46
47libgnome_photos_built_sources_enums = gnome.mkenums(
48  enum,
49  sources: enum_headers,
50  c_template: enum + '.c.template',
51  h_template: enum + '.h.template',
52)
53
54libgnome_photos_built_headers += libgnome_photos_built_sources_enums[1]
55sources += libgnome_photos_built_sources_enums
56
57resource_data = files('../data/vignette.png')
58
59libgnome_photos_built_sources_resources = gnome.compile_resources(
60  'photos-resources-gegl',
61  'photos-gegl.gresource.xml',
62  source_dir: '.',
63  c_name: 'photos_gegl',
64  dependencies: resource_data,
65  export: true,
66)
67
68libgnome_photos_built_headers += libgnome_photos_built_sources_resources[1]
69sources += libgnome_photos_built_sources_resources
70
71deps = [
72  babl_dep,
73  gegl_dep,
74  gdk_pixbuf_dep,
75  gio_dep,
76  gio_unix_dep,
77  glib_dep,
78  gobject_dep,
79  libdazzle_dep,
80  libjpeg_dep,
81  libpng_dep,
82  m_dep,
83]
84
85libgnome_photos = shared_library(
86  meson.project_name(),
87  sources,
88  dependencies: deps,
89  include_directories: top_inc,
90  install: true,
91  install_dir: photos_libdir,
92)
93
94libgnome_photos_dep = declare_dependency(link_with: libgnome_photos, sources: libgnome_photos_built_headers)
95
96common_sources = []
97
98common_deps = [
99  gdk_pixbuf_dep,
100  gegl_dep,
101  gio_dep,
102  gio_unix_dep,
103  glib_dep,
104  gobject_dep,
105  libdazzle_dep,
106  libgnome_photos_dep,
107]
108
109sources = common_sources + files(
110  'photos-application.c',
111  'photos-base-manager.c',
112  'photos-base-model.c',
113  'photos-base-item.c',
114  'photos-camera-cache.c',
115  'photos-collection-icon-watcher.c',
116  'photos-create-collection-icon-job.c',
117  'photos-create-collection-job.c',
118  'photos-delete-item-job.c',
119  'photos-delete-notification.c',
120  'photos-device-item.c',
121  'photos-dlna-renderer.c',
122  'photos-dlna-renderers-dialog.c',
123  'photos-dlna-renderers-manager.c',
124  'photos-done-notification.c',
125  'photos-dropdown.c',
126  'photos-export-dialog.c',
127  'photos-export-notification.c',
128  'photos-edit-palette.c',
129  'photos-edit-palette-row.c',
130  'photos-embed.c',
131  'photos-empty-results-box.c',
132  'photos-error-box.c',
133  'photos-facebook-item.c',
134  'photos-fetch-collection-state-job.c',
135  'photos-fetch-collections-job.c',
136  'photos-fetch-ids-job.c',
137  'photos-fetch-metas-job.c',
138  'photos-filterable.c',
139  'photos-flickr-item.c',
140  'photos-gesture-zoom.c',
141  'photos-google-item.c',
142  'photos-image-view.c',
143  'photos-image-view-helper.c',
144  'photos-import-dialog.c',
145  'photos-indexing-notification.c',
146  'photos-item-manager.c',
147  'photos-local-item.c',
148  'photos-main-toolbar.c',
149  'photos-main-window.c',
150  'photos-media-server-item.c',
151  'photos-model-button.c',
152  'photos-notification-manager.c',
153  'photos-offset-collection-view-controller.c',
154  'photos-offset-collections-controller.c',
155  'photos-offset-controller.c',
156  'photos-offset-favorites-controller.c',
157  'photos-offset-import-controller.c',
158  'photos-offset-overview-controller.c',
159  'photos-offset-search-controller.c',
160  'photos-organize-collection-dialog.c',
161  'photos-organize-collection-model.c',
162  'photos-organize-collection-view.c',
163  'photos-overview-searchbar.c',
164  'photos-preview-nav-buttons.c',
165  'photos-preview-view.c',
166  'photos-print-notification.c',
167  'photos-print-operation.c',
168  'photos-print-preview.c',
169  'photos-print-setup.c',
170  'photos-properties-dialog.c',
171  'photos-query.c',
172  'photos-query-builder.c',
173  'photos-remote-display-manager.c',
174  'photos-removable-device-widget.c',
175  'photos-removable-devices-button.c',
176  'photos-search-context.c',
177  'photos-search-controller.c',
178  'photos-search-match.c',
179  'photos-search-match-manager.c',
180  'photos-search-provider.c',
181  'photos-search-type.c',
182  'photos-search-type-manager.c',
183  'photos-searchbar.c',
184  'photos-selection-controller.c',
185  'photos-selection-toolbar.c',
186  'photos-set-collection-job.c',
187  'photos-share-dialog.c',
188  'photos-share-notification.c',
189  'photos-share-point.c',
190  'photos-share-point-email.c',
191  'photos-share-point-google.c',
192  'photos-share-point-manager.c',
193  'photos-share-point-online.c',
194  'photos-single-item-job.c',
195  'photos-source.c',
196  'photos-source-manager.c',
197  'photos-source-notification.c',
198  'photos-sparql-template.c',
199  'photos-spinner-box.c',
200  'photos-thumbnail-factory.c',
201  'photos-tool.c',
202  'photos-tool-colors.c',
203  'photos-tool-crop.c',
204  'photos-tool-crop-helper.c',
205  'photos-tool-enhance.c',
206  'photos-tool-filter-button.c',
207  'photos-tool-filters.c',
208  'photos-tracker-collection-view-controller.c',
209  'photos-tracker-collections-controller.c',
210  'photos-tracker-controller.c',
211  'photos-tracker-favorites-controller.c',
212  'photos-tracker-import-controller.c',
213  'photos-tracker-overview-controller.c',
214  'photos-tracker-search-controller.c',
215  'photos-tracker-queue.c',
216  'photos-update-mtime-job.c',
217  'photos-utils.c',
218  'photos-view-container.c',
219  'photos-zoom-controls.c',
220  'photos-main.c',
221)
222
223photos_generate_about = find_program('photos-generate-about')
224
225about_header = 'photos-about-data.h'
226
227sources += custom_target(
228  about_header,
229  output: about_header,
230  capture: true,
231  command: [photos_generate_about, '--header'],
232)
233
234about_source = 'photos-about-data.c'
235
236sources += custom_target(
237  about_source,
238  output: about_source,
239  capture: true,
240  command: [photos_generate_about, '--body', artists, authors],
241)
242
243enum_headers = files(
244  'photos-gesture-zoom.h',
245  'photos-item-manager.h',
246  'photos-utils.h',
247)
248
249enum = 'photos-enums'
250
251sources += gnome.mkenums(
252  enum,
253  sources: enum_headers,
254  c_template: enum + '.c.template',
255  h_template: enum + '.h.template',
256)
257
258marshal = 'photos-marshalers'
259
260sources += gnome.genmarshal(
261  marshal,
262  sources: marshal + '.list',
263  prefix: '_photos_marshal',
264)
265
266resource_data = files(
267  '../data/Adwaita.css',
268  '../data/dnd-counter.svg',
269  '../data/icons/image-adjust-color-symbolic.svg',
270  '../data/icons/image-auto-adjust-symbolic.svg',
271  '../data/icons/image-crop-symbolic.svg',
272  '../data/icons/image-denoise-symbolic.svg',
273  '../data/icons/image-edit-symbolic.svg',
274  '../data/icons/image-filter-symbolic.svg',
275  '../data/icons/image-sharpen-symbolic.svg',
276  'photos-dlna-renderers-dialog.ui',
277  'photos-dropdown.ui',
278  'photos-embed.ui',
279  'photos-export-dialog.ui',
280  'photos-help-overlay.ui',
281  'photos-import-dialog.ui',
282  'photos-main-toolbar.ui',
283  'photos-main-window.ui',
284  'photos-preview-menu.ui',
285  'photos-primary-menu.ui',
286  'photos-query-all.sparql.template',
287  'photos-query-collections.sparql.template',
288  'photos-query-favorites.sparql.template',
289  'photos-query-photos.sparql.template',
290  'photos-removable-devices-button.ui',
291  'photos-removable-device-widget.ui',
292  'photos-selection-menu.ui',
293  'photos-selection-toolbar.ui',
294  'photos-share-dialog.ui',
295  'photos-zoom-controls.ui',
296)
297
298sources += gnome.compile_resources(
299  'photos-resources',
300  'photos.gresource.xml',
301  source_dir: '.',
302  c_name: 'photos',
303  dependencies: resource_data,
304  export: true,
305)
306
307dleyna_device = 'photos-dleyna-renderer-device'
308
309sources += gnome.gdbus_codegen(
310  dleyna_device,
311  dleyna_device + '.xml',
312  interface_prefix: 'com.intel.dLeynaRenderer.',
313  namespace: 'Dleyna',
314  annotations: [
315    'com.intel.dLeynaRenderer.RendererDevice.GetIcon()[Bytes]', 'org.gtk.GDBus.C.ForceGVariant', 'true'
316  ],
317  autocleanup: 'all',
318)
319
320dleyna_manager = 'photos-dleyna-renderer-manager'
321
322sources += gnome.gdbus_codegen(
323  dleyna_manager,
324  dleyna_manager + '.xml',
325  interface_prefix: 'com.intel.dLeynaRenderer.',
326  namespace: 'DleynaRenderer',
327  autocleanup: 'all',
328)
329
330dleyna_push_host = 'photos-dleyna-renderer-push-host'
331
332sources += gnome.gdbus_codegen(
333  dleyna_push_host,
334  dleyna_push_host + '.xml',
335  interface_prefix: 'com.intel.dLeynaRenderer.',
336  namespace: 'DleynaRenderer',
337  autocleanup: 'all',
338)
339
340gom_miner = 'photos-gom-miner'
341
342sources += gnome.gdbus_codegen(
343  gom_miner,
344  gom_miner + '.xml',
345  interface_prefix: 'org.gnome.OnlineMiners.',
346  namespace: 'Gom',
347  autocleanup: 'all',
348)
349
350mpris_player = 'photos-mpris-player'
351
352sources += gnome.gdbus_codegen(
353  mpris_player,
354  mpris_player + '.xml',
355  interface_prefix: 'org.mpris.MediaPlayer2.',
356  namespace: 'Mpris',
357  autocleanup: 'all',
358)
359
360sources += gnome.gdbus_codegen(
361  'photos-shell-search-provider2',
362  'org.gnome.ShellSearchProvider2.xml',
363  interface_prefix: 'org.gnome.Shell.',
364  namespace: 'Shell',
365  autocleanup: 'all',
366)
367
368sources += gnome.gdbus_codegen(
369  'photos-tracker-miner',
370  'org.freedesktop.Tracker3.Miner.xml',
371  interface_prefix: 'org.freedesktop.Tracker3.',
372  namespace: 'Tracker',
373  autocleanup: 'all',
374)
375
376sources += gnome.gdbus_codegen(
377  'photos-tracker-miner-files-index',
378  'org.freedesktop.Tracker3.Miner.Files.Index.xml',
379  interface_prefix: 'org.freedesktop.Tracker3.',
380  namespace: 'Tracker',
381  autocleanup: 'all',
382)
383
384deps = common_deps + [
385  babl_dep,
386  cairo_dep,
387  geocode_glib_dep,
388  gexiv_dep,
389  goa_dep,
390  grilo_dep,
391  gsettings_desktop_schemas_dep,
392  gtk_dep,
393  gtk_unix_print_dep,
394  libgd_dep,
395  libgdata_dep,
396  libgfgraph_dep,
397  libhandy_dep,
398  m_dep,
399  tracker_sparql_dep,
400]
401
402cflags = [
403  '-DPACKAGE_LIBEXEC_DIR="@0@"'.format(photos_libexecdir),
404  '-DPACKAGE_LOCALE_DIR="@0@"'.format(photos_localedir),
405]
406
407executable(
408  meson.project_name(),
409  sources,
410  include_directories: top_inc,
411  dependencies: deps,
412  c_args: cflags,
413  install: true,
414  install_dir: photos_bindir,
415  install_rpath: photos_libdir,
416)
417
418sources = common_sources + files(
419  'photos-pixbuf.c',
420  'photos-thumbnailer.c',
421  'photos-thumbnailer-main.c',
422)
423
424executable(
425  meson.project_name() + '-thumbnailer',
426  sources,
427  include_directories: top_inc,
428  dependencies: common_deps,
429  c_args: cflags,
430  install: true,
431  install_dir: photos_libexecdir,
432  install_rpath: photos_libdir,
433)
434