1project( 2 'phosphor-dbus-monitor', 3 'cpp', 4 version: '1.0.0', 5 meson_version: '>=1.1.1', 6 default_options: [ 7 'warning_level=3', 8 'werror=true', 9 'cpp_std=c++23', 10 'buildtype=debugoptimized', 11 ], 12) 13 14conf_data = configuration_data() 15conf_data.set_quoted('OBJ_EVENT', '/xyz/openbmc_project/events') 16conf_data.set_quoted('BUSNAME_EVENT', 'xyz.openbmc_project.Events') 17conf_data.set_quoted( 18 'EVENTS_PERSIST_PATH', 19 '/var/lib/phosphor-dbus-monitor/events', 20) 21 22conf_data.set('CLASS_VERSION', 1) 23conf_data.set('MAX_EVENTS', 20) 24 25cpp = meson.get_compiler('cpp') 26# Get Cereal dependency. 27cereal_dep = dependency('cereal', required: false) 28has_cereal = cpp.has_header_symbol( 29 'cereal/cereal.hpp', 30 'cereal::specialize', 31 dependencies: cereal_dep, 32 required: false, 33) 34if not has_cereal 35 cereal_opts = import('cmake').subproject_options() 36 cereal_opts.add_cmake_defines( 37 {'BUILD_TESTS': 'OFF', 'SKIP_PERFORMANCE_COMPARISON': 'ON'}, 38 ) 39 cereal_proj = import('cmake').subproject( 40 'cereal', 41 options: cereal_opts, 42 required: false, 43 ) 44 assert(cereal_proj.found(), 'cereal is required') 45 cereal_dep = cereal_proj.dependency('cereal') 46endif 47 48sdbusplus_dep = dependency('sdbusplus', required: false) 49sdeventplus_dep = dependency('sdeventplus') 50phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces') 51phosphor_logging_dep = dependency('phosphor-logging') 52phosphor_snmp_dep = dependency('phosphor-snmp') 53 54sdbusplus_python_env = {} 55if not sdbusplus_dep.found() 56 sdbusplus_proj = subproject('sdbusplus') 57 sdbusplus_dep = sdbusplus_proj.get_variable('sdbusplus_dep') 58 sdbusplus_python_env = { 59 'PYTHONPATH': meson.current_source_dir() / 'subprojects' / 'sdbusplus' / 'tools', 60 } 61endif 62 63prog_python = find_program('python3', required: true) 64realpath_prog = find_program('realpath') 65 66configure_file(output: 'config.h', configuration: conf_data) 67 68subdir('src') 69subdir('mslverify') 70