1
2operations = [
3  { 'name': 'ppm-load' },
4  { 'name': 'ppm-save' },
5  { 'name': 'npy-save' },
6  { 'name': 'rgbe-load', 'deps': librgbe },
7  { 'name': 'rgbe-save', 'deps': librgbe },
8  { 'name': 'gif-load',  'deps': libnsgif },
9]
10
11
12if pangocairo.found()
13  operations += { 'name': 'text', 'deps': pangocairo }
14endif
15
16if cairo.found()
17  operations += [
18    { 'name': 'path',           'deps': cairo },
19    { 'name': 'vector-stroke',  'deps': cairo },
20    { 'name': 'npd',            'deps': [ cairo, libnpd ] },
21  ]
22endif
23
24if libpng.found()
25  operations += [
26    { 'name': 'png-load', 'deps': libpng },
27    { 'name': 'png-save', 'deps': libpng },
28  ]
29endif
30
31if poppler.found()
32  operations += [
33    { 'name': 'pdf-load', 'deps': poppler }
34    ]
35endif
36
37if libjpeg.found()
38  operations += [
39    { 'name': 'jpg-load', 'deps': libjpeg },
40    { 'name': 'jpg-save', 'deps': libjpeg },
41  ]
42endif
43
44if cairo.found() and librsvg.found()
45  operations += [
46    { 'name': 'svg-load', 'deps': [ librsvg, cairo ], },
47  ]
48endif
49
50if gdk_pixbuf.found()
51  operations += [
52    { 'name': 'pixbuf-load',  'srcs': 'pixbuf.c',      'deps': gdk_pixbuf },
53    { 'name': 'pixbuf-save',  'srcs': 'save-pixbuf.c', 'deps': gdk_pixbuf },
54  ]
55endif
56
57if openexr.found()
58  operations += [
59    { 'name': 'exr-load',   'srcs': 'exr-load.cpp', 'deps': openexr },
60    { 'name': 'exr-save',   'srcs': 'exr-save.cc',  'deps': openexr },
61  ]
62endif
63
64if sdl1.found()
65  operations += { 'name': 'sdl-display', 'deps': sdl1 }
66endif
67
68if sdl2.found()
69  operations += { 'name': 'sdl2-display', 'deps': sdl2 }
70endif
71
72if libraw.found()
73  operations += { 'name': 'raw-load', 'deps': libraw }
74endif
75
76if libv4l1.found()
77  operations += { 'name': 'v4l', 'deps': [ libv4l1, thread ], }
78endif
79
80if jasper.found()
81  operations += { 'name': 'jp2-load', 'deps': jasper }
82endif
83
84if avlibs_found
85  operations += [
86    { 'name': 'ff-load', 'deps': avlibs },
87    { 'name': 'ff-save', 'deps': avlibs },
88  ]
89endif
90
91if libumfpack.found()
92  operations += {
93    'name': 'matting-levin',
94    'srcs': [ 'matting-levin.c', 'matting-levin-cblas.c', ],
95    'deps': libumfpack
96  }
97endif
98
99if lcms.found()
100  operations += { 'name': 'lcms-from-profile', 'deps': lcms }
101endif
102
103if libtiff.found()
104  operations += [
105    { 'name': 'tiff-load', 'deps': libtiff },
106    { 'name': 'tiff-save', 'deps': libtiff },
107  ]
108endif
109
110if libwebp.found()
111  operations += [
112    { 'name': 'webp-load', 'deps': libwebp },
113    { 'name': 'webp-save', 'deps': libwebp },
114  ]
115endif
116
117
118foreach operation : operations
119  libname = operation.get('name')
120  libsrcs = operation.get('srcs', libname + '.c')
121  libdeps = operation.get('deps', [])
122
123  gegl_operations += shared_library(libname,
124    libsrcs,
125    dependencies: [ babl, gio, glib, gobject, math, libdeps, ],
126    include_directories: [ rootInclude, geglInclude, ],
127    link_with: [ gegl_lib, ],
128    name_prefix: '',
129    install: true,
130    install_dir: get_option('libdir') / api_name,
131  )
132endforeach
133