Fix local meson build
Provide all the missing dependencies for the local meson build.
Tested:
"meson setup build && cd build && meson compile" finishes successfully.
Change-Id: If1d20df64610e47d2be813a8ffbe7602b6d00181
Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
diff --git a/meson.build b/meson.build
index fde65e4..9c8b0d5 100644
--- a/meson.build
+++ b/meson.build
@@ -18,12 +18,38 @@
conf_data.set('CLASS_VERSION', 1)
conf_data.set('MAX_EVENTS', 20)
-sdbusplus_dep = dependency('sdbusplus')
+cpp = meson.get_compiler('cpp')
+# Get Cereal dependency.
+cereal_dep = dependency('cereal', required: false)
+has_cereal = cpp.has_header_symbol(
+ 'cereal/cereal.hpp',
+ 'cereal::specialize',
+ dependencies: cereal_dep,
+ required: false)
+if not has_cereal
+ cereal_opts = import('cmake').subproject_options()
+ cereal_opts.add_cmake_defines({'BUILD_TESTS': 'OFF', 'SKIP_PERFORMANCE_COMPARISON': 'ON'})
+ cereal_proj = import('cmake').subproject(
+ 'cereal',
+ options: cereal_opts,
+ required: false)
+ assert(cereal_proj.found(), 'cereal is required')
+ cereal_dep = cereal_proj.dependency('cereal')
+endif
+
+sdbusplus_dep = dependency('sdbusplus', required : false)
sdeventplus_dep = dependency('sdeventplus')
phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
phosphor_logging_dep = dependency('phosphor-logging')
phosphor_snmp_dep = dependency('phosphor-snmp')
+sdbusplus_python_env = {}
+if not sdbusplus_dep.found()
+ sdbusplus_proj = subproject('sdbusplus')
+ sdbusplus_dep = sdbusplus_proj.get_variable('sdbusplus_dep')
+ sdbusplus_python_env = {'PYTHONPATH': meson.current_source_dir() / 'subprojects' / 'sdbusplus' / 'tools'}
+endif
+
prog_python = find_program('python3', required: true)
realpath_prog = find_program('realpath')