1From cdcde5c1fd106a69118dff98118600911392762f Mon Sep 17 00:00:00 2001
2From: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
3Date: Fri, 16 Sep 2022 16:25:38 +0200
4Subject: [PATCH] meson.build: add features options for png, gif, tiff, webp, and motif
5
6Upstream-Status: Submitted [https://github.com/kraxel/fbida/pull/4]
7Signed-off-by: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
8---
9 meson.build       | 41 +++++++++++++++++++++++++++--------------
10 meson_options.txt |  5 +++++
11 selections.c      |  4 ++++
12 3 files changed, 36 insertions(+), 14 deletions(-)
13 create mode 100644 meson_options.txt
14
15diff --git a/meson.build b/meson.build
16index cd9cc49..b5e3ffc 100644
17--- a/meson.build
18+++ b/meson.build
19@@ -23,9 +23,9 @@ drm_dep      = dependency('libdrm')
20 gbm_dep      = dependency('gbm')
21 epoxy_dep    = dependency('epoxy')
22 exif_dep     = dependency('libexif')
23-png_dep      = dependency('libpng')
24-tiff_dep     = dependency('libtiff-4')
25-webp_dep     = dependency('libwebp', required : false)
26+png_dep      = dependency('libpng', required: get_option('png'))
27+tiff_dep     = dependency('libtiff-4', required: get_option('tiff'))
28+webp_dep     = dependency('libwebp', required : get_option('webp'))
29 udev_dep     = dependency('libudev')
30 input_dep    = dependency('libinput')
31 xkb_dep      = dependency('xkbcommon')
32@@ -36,20 +36,20 @@ jpeg_dep     = cc.find_library('jpeg')
33 util_dep     = cc.find_library('util')
34 math_dep     = cc.find_library('m', required : false)
35 pcd_dep      = cc.find_library('pcd', required : false)
36-gif_dep      = cc.find_library('gif', required : false)
37+gif_dep      = cc.find_library('gif', required: get_option('gif'))
38
39 # motif + x11 libs
40-motif_dep    = cc.find_library('Xm', required : false)
41-xpm_dep      = cc.find_library('Xpm', required : false)
42-xt_dep       = cc.find_library('Xt', required : false)
43-xext_dep     = cc.find_library('Xext', required : false)
44-x11_dep      = cc.find_library('X11', required : false)
45+motif_dep    = cc.find_library('Xm', required : get_option('motif'))
46+xpm_dep      = cc.find_library('Xpm', required : get_option('motif'))
47+xt_dep       = cc.find_library('Xt', required : get_option('motif'))
48+xext_dep     = cc.find_library('Xext', required : get_option('motif'))
49+x11_dep      = cc.find_library('X11', required : get_option('motif'))
50
51 # image formats
52 read_srcs    = [ 'readers.c', 'rd/read-ppm.c', 'rd/read-bmp.c',
53-                 'rd/read-jpeg.c', 'rd/read-png.c', 'rd/read-tiff.c' ]
54+                 'rd/read-jpeg.c' ]
55 write_srcs   = [ 'writers.c', 'wr/write-ppm.c', 'wr/write-ps.c',
56-                 'wr/write-jpeg.c', 'wr/write-png.c', 'wr/write-tiff.c' ]
57+                 'wr/write-jpeg.c' ]
58 image_deps   = [ jpeg_dep, png_dep, tiff_dep,
59                  pcd_dep, gif_dep, webp_dep ]
60
61@@ -57,11 +57,21 @@ if pcd_dep.found()
62     read_srcs += 'rd/read-pcd.c'
63     config.set('HAVE_LIBPCD', true)
64 endif
65-if gif_dep.found()
66+if get_option('png').enabled()
67+    read_srcs += 'rd/read-png.c'
68+    write_srcs += 'wr/write-png.c'
69+    config.set('HAVE_LIBPNG', true)
70+endif
71+if get_option('tiff').enabled()
72+    read_srcs += 'rd/read-tiff.c'
73+    write_srcs += 'wr/write-tiff.c'
74+    config.set('HAVE_LIBTIFF', true)
75+endif
76+if get_option('gif').enabled()
77     read_srcs += 'rd/read-gif.c'
78     config.set('HAVE_LIBGIF', true)
79 endif
80-if webp_dep.found()
81+if get_option('webp').enabled()
82     read_srcs += 'rd/read-webp.c'
83     config.set('HAVE_LIBWEBP', true)
84 endif
85@@ -168,7 +181,7 @@ ida_srcs     = [ 'ida.c', 'man.c', 'hex.c', 'x11.c', 'viewer.c',
86 ida_deps     = [ pixman_dep, exif_dep, image_deps, math_dep,
87                  motif_dep, xpm_dep, xt_dep, xext_dep, x11_dep ]
88
89-if motif_dep.found()
90+if get_option('motif').enabled()
91     executable('ida',
92                sources             : ida_srcs,
93                dependencies        : ida_deps,
94diff --git a/meson_options.txt b/meson_options.txt
95new file mode 100644
96index 0000000..ce37188
97--- /dev/null
98+++ b/meson_options.txt
99@@ -0,0 +1,5 @@
100+option('gif', type: 'feature', value : 'enabled')
101+option('png', type: 'feature', value : 'enabled')
102+option('tiff', type: 'feature', value : 'enabled')
103+option('webp', type: 'feature', value : 'disabled')
104+option('motif', type: 'feature', value : 'disabled')
105diff --git a/selections.c b/selections.c
106index 7b16264..ccdc686 100644
107--- a/selections.c
108+++ b/selections.c
109@@ -609,8 +609,12 @@ void ipc_init()
110 #ifdef HAVE_LIBGIF
111     targets[ntargets++] = MIME_IMAGE_GIF;
112 #endif
113+#ifdef HAVE_LIBPNG
114     targets[ntargets++] = MIME_IMAGE_PNG;
115+#endif
116+#ifdef HAVE_LIBTIFF
117     targets[ntargets++] = MIME_IMAGE_TIFF;
118+#endif
119     targets[ntargets++] = XA_PIXMAP;
120     targets[ntargets++] = XA_STRING;
121
122--
1232.37.3
124
125