project( 'phosphor-objmgr', 'c', 'cpp', default_options: [ 'buildtype=debugoptimized', 'cpp_std=c++20', 'warning_level=3', 'werror=true', ], license: 'Apache-2.0', meson_version: '>=0.57.0', version: '1.0', ) phosphor_logging = dependency('phosphor-logging') phosphor_dbus_interfaces = dependency('phosphor-dbus-interfaces') sdbusplus = dependency('sdbusplus') if get_option('buildtype').startswith('debug') add_project_arguments('-DMAPPER_ENABLE_DEBUG', language : 'cpp') endif if get_option('tests').enabled() gtest = dependency('gtest', main: true, disabler: true, required: false) gmock = dependency('gmock', disabler: true, required: false) if not gtest.found() or not gmock.found() gtest_proj = import('cmake').subproject('googletest', required: false) if gtest_proj.found() gtest = declare_dependency( dependencies: [ dependency('threads'), gtest_proj.dependency('gtest'), gtest_proj.dependency('gtest_main'), ] ) gmock = gtest_proj.dependency('gmock') else assert( not get_option('tests').enabled(), 'Googletest is required if tests are enabled' ) endif endif subdir('src/test') subdir('libmapper/test') endif install_headers('libmapper/mapper.h') libmapper = library( 'mapper', 'libmapper/mapper.c', dependencies: [ dependency('libsystemd') ], gnu_symbol_visibility: 'hidden', version: meson.project_version(), install: true) mapper_dep = declare_dependency( link_with: libmapper, include_directories: include_directories('libmapper'), dependencies: [ dependency('libsystemd') ], ) import('pkgconfig').generate( name: 'libmapper', description: 'OpenBMC service discovery utility library', version: meson.project_version(), libraries: libmapper) executable( 'mapper', 'libmapper/app.c', link_with: libmapper, dependencies: [ dependency('libsystemd') ], install: true) executable( 'mapperx', [ 'src/main.cpp', 'src/argument.cpp', 'src/processing.cpp', 'src/associations.cpp', ], dependencies: [ dependency('boost'), dependency('libsystemd'), phosphor_dbus_interfaces, phosphor_logging, sdbusplus, dependency('systemd'), dependency('threads'), dependency('tinyxml2'), ], install: true ) executable( 'phosphor-unit-failure-monitor', [ 'fail-monitor/argument.cpp', 'fail-monitor/main.cpp', 'fail-monitor/monitor.cpp', ], dependencies: [ phosphor_logging, ], install: true )