1project( 2 'phosphor-objmgr', 3 'c', 'cpp', 4 default_options: [ 5 'buildtype=debugoptimized', 6 'cpp_std=c++20', 7 'warning_level=3', 8 'werror=true', 9 ], 10 license: 'Apache-2.0', 11 meson_version: '>=0.57.0', 12 version: '1.0', 13) 14 15phosphor_logging = dependency('phosphor-logging') 16phosphor_dbus_interfaces = dependency('phosphor-dbus-interfaces') 17sdbusplus = dependency('sdbusplus') 18 19 20if get_option('buildtype').startswith('debug') 21 add_project_arguments('-DMAPPER_ENABLE_DEBUG', language : 'cpp') 22endif 23 24if get_option('tests').enabled() 25 gtest = dependency('gtest', main: true, disabler: true, required: false) 26 gmock = dependency('gmock', disabler: true, required: false) 27 if not gtest.found() or not gmock.found() 28 gtest_proj = import('cmake').subproject('googletest', required: false) 29 if gtest_proj.found() 30 gtest = declare_dependency( 31 dependencies: [ 32 dependency('threads'), 33 gtest_proj.dependency('gtest'), 34 gtest_proj.dependency('gtest_main'), 35 ] 36 ) 37 gmock = gtest_proj.dependency('gmock') 38 else 39 assert( 40 not get_option('tests').enabled(), 41 'Googletest is required if tests are enabled' 42 ) 43 endif 44 endif 45 subdir('src/test') 46 subdir('libmapper/test') 47endif 48 49install_headers('libmapper/mapper.h') 50 51libmapper = library( 52 'mapper', 53 'libmapper/mapper.c', 54 dependencies: [ dependency('libsystemd') ], 55 gnu_symbol_visibility: 'hidden', 56 version: meson.project_version(), 57 install: true) 58 59import('pkgconfig').generate( 60 name: 'libmapper', 61 description: 'OpenBMC service discovery utility library', 62 version: meson.project_version(), 63 libraries: libmapper) 64 65executable( 66 'mapper', 67 'libmapper/app.c', 68 link_with: libmapper, 69 dependencies: [ dependency('libsystemd') ], 70 install: true) 71 72executable( 73 'mapperx', 74 [ 75 'src/main.cpp', 76 'src/argument.cpp', 77 'src/processing.cpp', 78 'src/associations.cpp', 79 ], 80 dependencies: [ 81 dependency('boost'), 82 dependency('libsystemd'), 83 phosphor_dbus_interfaces, 84 phosphor_logging, 85 sdbusplus, 86 dependency('systemd'), 87 dependency('threads'), 88 dependency('tinyxml2'), 89 ], 90 install: true 91) 92 93executable( 94 'phosphor-unit-failure-monitor', 95 [ 96 'fail-monitor/argument.cpp', 97 'fail-monitor/main.cpp', 98 'fail-monitor/monitor.cpp', 99 ], 100 dependencies: [ 101 phosphor_logging, 102 ], 103 install: true 104) 105