diff options
author | Kjell Ahlstedt <kjellahlstedt@gmail.com> | 2020-03-01 13:30:00 +0100 |
---|---|---|
committer | Kjell Ahlstedt <kjellahlstedt@gmail.com> | 2020-03-01 13:30:00 +0100 |
commit | d378578484718d267bf429ef2e6eded695446b46 (patch) | |
tree | e0a38dc5fc9848012df87e56a460f74401f0e487 /examples | |
parent | 1df52bb90b7ca3780043b16acf5bb5eb483876f8 (diff) | |
download | glibmm-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.build | 64 |
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 |