aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Anderson <scott@anderso.nz>2018-08-22 20:49:23 +1200
committerScott Anderson <scott@anderso.nz>2018-08-22 21:15:34 +1200
commit584a3f8b6e9e241bb8510d845bbed386294ad48f (patch)
treec83b59562924bdb27382aa9d1e7bced91e011db8
parent560e96aa57dc746adcbd5297c3544edd16c0626e (diff)
Update examples to use new option
We use a dictionary to remove some code duplication.
-rw-r--r--examples/meson.build154
-rw-r--r--meson.build6
-rw-r--r--meson_options.txt1
3 files changed, 89 insertions, 72 deletions
diff --git a/examples/meson.build b/examples/meson.build
index 25ad7566..0fb37a9e 100644
--- a/examples/meson.build
+++ b/examples/meson.build
@@ -1,80 +1,102 @@
threads = dependency('threads')
wayland_cursor = dependency('wayland-cursor')
-
libpng = dependency('libpng', required: false)
-
# These versions correspond to ffmpeg 4.0
libavutil = dependency('libavutil', version: '>=56.14.100', required: false)
libavcodec = dependency('libavcodec', version: '>=58.18.100', required: false)
libavformat = dependency('libavformat', version: '>=58.12.100', required: false)
+# Small hack until https://github.com/mesonbuild/meson/pull/3386/ is merged
+foreach dep : ['libpng', 'libavutil', 'libavcodec', 'libavformat']
+ if not get_variable(dep).found()
+ set_variable(dep, disabler())
+ endif
+endforeach
+
if not cc.has_header('libavutil/hwcontext_drm.h', dependencies: libavutil)
- libavutil = disabler()
+ libavutil = disabler()
endif
-executable('simple', 'simple.c', dependencies: wlroots)
-executable('pointer', 'pointer.c', dependencies: wlroots)
-executable('touch', 'touch.c', 'cat.c', dependencies: wlroots)
-executable('tablet', 'tablet.c', dependencies: wlroots)
-executable('rotation', 'rotation.c', 'cat.c', dependencies: wlroots)
-executable('multi-pointer', 'multi-pointer.c', dependencies: wlroots)
-executable('output-layout', 'output-layout.c', 'cat.c', dependencies: wlroots)
-
-executable(
- 'screenshot',
- 'screenshot.c',
- dependencies: [wayland_client, wlr_protos, wlroots]
-)
-
-executable(
- 'idle',
- 'idle.c',
- dependencies: [wayland_client, wlr_protos, wlroots, threads]
-)
-
-executable(
- 'idle-inhibit',
- 'idle-inhibit.c',
- dependencies: [wayland_client, wlr_protos, wlroots, threads]
-)
-
-executable(
- 'layer-shell',
- 'layer-shell.c',
- dependencies: [wayland_cursor, wayland_client, wlr_protos, wlroots]
-)
-
-executable(
- 'input-inhibitor',
- 'input-inhibitor.c',
- dependencies: [wayland_cursor, wayland_client, wlr_protos, wlroots]
-)
+examples = {
+ 'simple': {
+ 'src': 'simple.c',
+ 'dep': wlroots,
+ },
+ 'pointer': {
+ 'src': 'pointer.c',
+ 'dep': wlroots,
+ },
+ 'touch': {
+ 'src': ['touch.c', 'cat.c'],
+ 'dep': wlroots,
+ },
+ 'tablet': {
+ 'src': 'tablet.c',
+ 'dep': wlroots,
+ },
+ 'rotation': {
+ 'src': ['rotation.c', 'cat.c'],
+ 'dep': wlroots,
+ },
+ 'multi-pointer': {
+ 'src': 'multi-pointer.c',
+ 'dep': wlroots,
+ },
+ 'output-layout': {
+ 'src': ['output-layout.c', 'cat.c'],
+ 'dep': wlroots,
+ },
+ 'screenshot': {
+ 'src': 'screenshot.c',
+ 'dep': [wayland_client, wlr_protos, wlroots],
+ },
+ 'idle': {
+ 'src': 'idle.c',
+ 'dep': [wayland_client, wlr_protos, wlroots, threads],
+ },
+ 'idle-inhibit': {
+ 'src': 'idle-inhibit.c',
+ 'dep': [wayland_client, wlr_protos, wlroots],
+ },
+ 'layer-shell': {
+ 'src': 'layer-shell.c',
+ 'dep': [wayland_client, wayland_cursor, wlr_protos, wlroots],
+ },
+ 'input-inhibitor': {
+ 'src': 'input-inhibitor.c',
+ 'dep': [wayland_client, wayland_cursor, wlr_protos, wlroots],
+ },
+ 'gamma-control': {
+ 'src': 'gamma-control.c',
+ 'dep': [wayland_client, wayland_cursor, wlr_protos, wlroots],
+ },
+ 'dmabuf-capture': {
+ 'src': 'dmabuf-capture.c',
+ 'dep': [
+ libavcodec,
+ libavformat,
+ libavutil,
+ threads,
+ wayland_client,
+ wlr_protos,
+ wlroots,
+ ],
+ },
+ 'screencopy': {
+ 'src': 'screencopy.c',
+ 'dep': [libpng, wayland_client, wlr_protos, wlroots],
+ },
+ 'toplevel-decoration': {
+ 'src': 'toplevel-decoration.c',
+ 'dep': [wayland_client, wlr_protos, wlroots],
+ },
+}
-executable(
- 'gamma-control',
- 'gamma-control.c',
- dependencies: [wayland_cursor, wayland_client, wlr_protos, wlroots]
-)
-
-if libavutil.found() and libavcodec.found() and libavformat.found()
+foreach name, info : examples
executable(
- 'dmabuf-capture',
- 'dmabuf-capture.c',
- dependencies: [wayland_client, wlr_protos, libavutil, libavcodec,
- libavformat, wlroots, threads ]
+ name,
+ info.get('src'),
+ dependencies: info.get('dep'),
+ build_by_default: get_option('examples'),
)
-endif
-
-if libpng.found()
- executable(
- 'screencopy',
- 'screencopy.c',
- dependencies: [wayland_client, wlr_protos, wlroots, libpng]
- )
-endif
-
-executable(
- 'toplevel-decoration',
- 'toplevel-decoration.c',
- dependencies: [wayland_client, wlr_protos, wlroots]
-)
+endforeach
diff --git a/meson.build b/meson.build
index 004cab4a..2790342b 100644
--- a/meson.build
+++ b/meson.build
@@ -160,11 +160,7 @@ summary = [
]
message('\n'.join(summary))
-
-if get_option('enable-examples')
- subdir('examples')
-endif
-
+subdir('examples')
subdir('rootston')
pkgconfig = import('pkgconfig')
diff --git a/meson_options.txt b/meson_options.txt
index 140459cb..360c6f6a 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,4 +1,3 @@
-option('enable-examples', type: 'boolean', value: true, description: 'Build example applications')
option('libcap', type: 'feature', value: 'auto', description: 'Enable support for rootless session via capabilities (cap_sys_admin)')
option('logind', type: 'feature', value: 'auto', description: 'Enable support for rootless session via logind')
option('logind-provider', type: 'combo', choices: ['systemd', 'elogind'], value: 'systemd', description: 'Provider of logind support library')