summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorKjell Ahlstedt <kjellahlstedt@gmail.com>2020-03-01 13:30:00 +0100
committerKjell Ahlstedt <kjellahlstedt@gmail.com>2020-03-01 13:30:00 +0100
commitd378578484718d267bf429ef2e6eded695446b46 (patch)
treee0a38dc5fc9848012df87e56a460f74401f0e487 /examples
parent1df52bb90b7ca3780043b16acf5bb5eb483876f8 (diff)
downloadglibmm-d378578484718d267bf429ef2e6eded695446b46.tar.gz
Add support for building glibmm with Meson
glibmm can be built with either Autotools or Meson. See MR !27
Diffstat (limited to 'examples')
-rw-r--r--examples/meson.build64
1 files changed, 64 insertions, 0 deletions
diff --git a/examples/meson.build b/examples/meson.build
new file mode 100644
index 00000000..73f2400d
--- /dev/null
+++ b/examples/meson.build
@@ -0,0 +1,64 @@
+# examples
+
+# input: glibmm_dep, giomm_dep, build_examples, compile_schemas_py
+
+examples = [
+# [[dir-name], exe-name, [sources], giomm-example (not just glibmm-example)]
+ [['child_watch'], 'child_watch', ['main.cc'], false],
+ [['compose'], 'example', ['main.cc'], false],
+ [['dbus'], 'session_bus_service', ['session_bus_service.cc'], true],
+ [['dbus'], 'server_without_bus', ['server_without_bus.cc'], true],
+ [['dbus'], 'client_bus_listnames', ['client_bus_listnames.cc'], true],
+ [['iochannel_stream'], 'example', ['fdstream.cc', 'main.cc'], false],
+ [['keyfile'], 'example', ['main.cc'], false],
+ [['markup'], 'parser', ['parser.cc'], false],
+ [['network'], 'resolver', ['resolver.cc'], true],
+ [['network'], 'socket-client', ['socket-client.cc'], true],
+ [['network'], 'socket-server', ['socket-server.cc'], true],
+ [['options'], 'example', ['main.cc'], false],
+ [['properties'], 'example', ['properties_example.cc'], false],
+ [['regex'], 'example', ['main.cc'], false],
+ [['settings'], 'settings', ['settings.cc', 'org.gtkmm.demo.gschema.xml'], true],
+ [['thread'], 'dispatcher', ['dispatcher.cc'], false],
+ [['thread'], 'dispatcher2', ['dispatcher2.cc'], false],
+]
+
+# import('gnome').compile_schemas() can't be use here.
+# It can only compile schemas in the current directory.
+glib_compile_schemas = find_program('glib-compile-schemas', required: false)
+
+foreach ex : examples
+ dir = ''
+ foreach dir_part : ex[0]
+ dir = dir / dir_part
+ endforeach
+ ex_name = (dir / ex[1]).underscorify()
+ ex_sources = []
+ foreach src : ex[2]
+ if src.endswith('.gschema.xml')
+ if glib_compile_schemas.found()
+ custom_target(dir.underscorify() + '_schemas',
+ input: dir / src,
+ output: dir.underscorify() + '_gschemas.compiled',
+ command: [
+ python3, compile_schemas_py,
+ meson.current_source_dir() / dir,
+ meson.current_build_dir() / dir,
+ '@OUTPUT@'
+ ],
+ build_by_default: build_examples,
+ install: false,
+ )
+ endif
+ else
+ ex_sources += dir / src
+ endif
+ endforeach
+
+ executable(ex_name, ex_sources,
+ dependencies: ex[3] ? giomm_dep : glibmm_dep,
+ gui_app: false,
+ build_by_default: build_examples,
+ install: false,
+ )
+endforeach