treewide: Leverage sdbus++-gen-meson
This makes us more consistent with other projects instead of writing
meson builds for sdbus++ by hand.
Change-Id: I38b69bc67b6a3d80cda1b508a76e106a50d8ab93
Signed-off-by: Willam A. Kennington III <wak@google.com>
diff --git a/example/gen/meson.build b/example/gen/meson.build
new file mode 100644
index 0000000..2756633
--- /dev/null
+++ b/example/gen/meson.build
@@ -0,0 +1,14 @@
+# Generated file; do not modify.
+sdbuspp_gen_meson_ver = run_command(
+ sdbuspp_gen_meson_prog,
+ '--version',
+).stdout().strip().split('\n')[0]
+
+if sdbuspp_gen_meson_ver != 'sdbus++-gen-meson version 4'
+ warning('Generated meson files from wrong version of sdbus++-gen-meson.')
+ warning(
+ 'Expected "sdbus++-gen-meson version 4", got:',
+ sdbuspp_gen_meson_ver
+ )
+endif
+
diff --git a/example/gen/net/meson.build b/example/gen/net/meson.build
new file mode 100644
index 0000000..5ea98c6
--- /dev/null
+++ b/example/gen/net/meson.build
@@ -0,0 +1,2 @@
+# Generated file; do not modify.
+subdir('poettering')
diff --git a/example/gen/net/poettering/Calculator/meson.build b/example/gen/net/poettering/Calculator/meson.build
new file mode 100644
index 0000000..6b469e6
--- /dev/null
+++ b/example/gen/net/poettering/Calculator/meson.build
@@ -0,0 +1,15 @@
+# Generated file; do not modify.
+generated_sources += custom_target(
+ 'net/poettering/Calculator__cpp'.underscorify(),
+ input: [ '../../../../yaml/net/poettering/Calculator.interface.yaml', ],
+ output: [ 'error.cpp', 'error.hpp', 'server.cpp', 'server.hpp', 'client.hpp', ],
+ depend_files: sdbusplusplus_depfiles,
+ command: [
+ sdbuspp_gen_meson_prog, '--command', 'cpp',
+ '--output', meson.current_build_dir(),
+ '--tool', sdbusplusplus_prog,
+ '--directory', meson.current_source_dir() / '../../../../yaml',
+ 'net/poettering/Calculator',
+ ],
+)
+
diff --git a/example/gen/net/poettering/meson.build b/example/gen/net/poettering/meson.build
new file mode 100644
index 0000000..a91287e
--- /dev/null
+++ b/example/gen/net/poettering/meson.build
@@ -0,0 +1,16 @@
+# Generated file; do not modify.
+subdir('Calculator')
+generated_others += custom_target(
+ 'net/poettering/Calculator__markdown'.underscorify(),
+ input: [ '../../../yaml/net/poettering/Calculator.interface.yaml', ],
+ output: [ 'Calculator.md' ],
+ depend_files: sdbusplusplus_depfiles,
+ command: [
+ sdbuspp_gen_meson_prog, '--command', 'markdown',
+ '--output', meson.current_build_dir(),
+ '--tool', sdbusplusplus_prog,
+ '--directory', meson.current_source_dir() / '../../../yaml',
+ 'net/poettering/Calculator',
+ ],
+)
+
diff --git a/example/gen/regenerate-meson b/example/gen/regenerate-meson
new file mode 100755
index 0000000..235d551
--- /dev/null
+++ b/example/gen/regenerate-meson
@@ -0,0 +1,4 @@
+#!/bin/bash
+cd "$(dirname "$0")" || exit
+export PATH="${PWD}/../../tools:${PATH}"
+exec sdbus++-gen-meson --command meson --directory ../yaml --output .
diff --git a/example/gen/run-ci b/example/gen/run-ci
new file mode 100755
index 0000000..0a248a0
--- /dev/null
+++ b/example/gen/run-ci
@@ -0,0 +1,15 @@
+#!/bin/bash
+cd "$(dirname "$0")" || exit
+./regenerate-meson || exit
+rc=0
+git --no-pager diff --exit-code -- . || rc=$?
+untracked="$(git ls-files --others --exclude-standard -- .)" || rc=$?
+if [[ -n "${untracked}" ]]; then
+ echo "Untracked files:" >&2
+ echo "${untracked}" >&2
+ rc=1
+fi
+if (( rc != 0 )); then
+ echo "Generated meson files differ from expected values" >&2
+ exit 1
+fi
diff --git a/example/meson.build b/example/meson.build
index b338dc1..17fd569 100644
--- a/example/meson.build
+++ b/example/meson.build
@@ -44,10 +44,16 @@
dependencies: asio_dep,
)
-subdir('net/poettering/Calculator')
+generated_sources = []
+generated_others = []
+subdir('gen')
+subdir('gen/net')
+
executable(
'calculator-server',
'calculator-server.cpp',
- calculator_sources,
+ generated_sources,
+ implicit_include_directories: false,
+ include_directories: include_directories('gen'),
dependencies: sdbusplus_dep,
)
diff --git a/example/net/poettering/Calculator/meson.build b/example/net/poettering/Calculator/meson.build
deleted file mode 100644
index f77fc5b..0000000
--- a/example/net/poettering/Calculator/meson.build
+++ /dev/null
@@ -1,29 +0,0 @@
-calculator_sources = []
-
-calculator_sources += custom_target(
- 'Calculator__cpp',
- input: '../Calculator.interface.yaml',
- output: [ 'server.cpp', 'server.hpp', 'client.hpp' ],
- depend_files: sdbusplusplus_depfiles,
- command: [
- sdbuspp_gen_meson_prog, '--command', 'cpp',
- '--output', meson.current_build_dir(),
- '--tool', sdbusplusplus_prog,
- '--directory', meson.current_source_dir() / '../../..',
- 'net/poettering/Calculator',
- ],
-)
-
-calculator_sources += custom_target(
- 'Calculator__errors',
- input: '../Calculator.errors.yaml',
- output: [ 'error.cpp', 'error.hpp' ],
- depend_files: sdbusplusplus_depfiles,
- command: [
- sdbuspp_gen_meson_prog, '--command', 'cpp',
- '--output', meson.current_build_dir(),
- '--tool', sdbusplusplus_prog,
- '--directory', meson.current_source_dir() / '../../..',
- 'net/poettering/Calculator',
- ],
-)
diff --git a/example/net/poettering/Calculator.errors.yaml b/example/yaml/net/poettering/Calculator.errors.yaml
similarity index 100%
rename from example/net/poettering/Calculator.errors.yaml
rename to example/yaml/net/poettering/Calculator.errors.yaml
diff --git a/example/net/poettering/Calculator.interface.yaml b/example/yaml/net/poettering/Calculator.interface.yaml
similarity index 100%
rename from example/net/poettering/Calculator.interface.yaml
rename to example/yaml/net/poettering/Calculator.interface.yaml