1project( 2 'phosphor-health-monitor', 3 'cpp', 4 version: '1.0', 5 default_options: [ 6 'cpp_std=c++20', 7 ], 8 meson_version: '>=0.57.0', 9) 10 11cpp = meson.get_compiler('cpp') 12 13if cpp.has_header('nlohmann/json.hpp') 14 nlohmann_json = declare_dependency() 15else 16 subproject('nlohmann-json') 17 nlohmann_json = declare_dependency( 18 include_directories: [ 19 'subprojects/nlohmann-json/single_include', 20 'subprojects/nlohmann-json/single_include/nlohmann', 21 ] 22 ) 23endif 24 25executable( 26 'health-monitor', 27 [ 28 'healthMonitor.cpp', 29 ], 30 dependencies: [ 31 dependency( 32 'phosphor-dbus-interfaces', 33 fallback: [ 34 'phosphor-dbus-interfaces', 35 'phosphor_dbus_interfaces_dep', 36 ], 37 ), 38 dependency( 39 'phosphor-logging', 40 fallback: [ 'phosphor-logging', 'phosphor_logging_dep' ], 41 ), 42 dependency( 43 'sdbusplus', 44 fallback: [ 'sdbusplus', 'sdbusplus_dep' ], 45 ), 46 dependency( 47 'sdeventplus', 48 fallback: [ 'sdeventplus', 'sdeventplus_dep' ], 49 ), 50 nlohmann_json, 51 ], 52 install: true, 53 install_dir: get_option('bindir') 54) 55 56install_data(sources : 'bmc_health_config.json', install_dir : '/etc/healthMon') 57 58conf_data = configuration_data() 59conf_data.set('HEALTH_CONFIG_FILE', '"/etc/healthMon/bmc_health_config.json"') 60conf_data.set('HEALTH_BUS_NAME', '"xyz.openbmc_project.HealthMon"') 61conf_data.set('HEALTH_SENSOR_PATH', '"/xyz/openbmc_project/sensors/utilization/"') 62conf_data.set('SENSOR_OBJPATH', '"/xyz/openbmc_project/sensors"') 63 64configure_file(output : 'config.h', 65 configuration : conf_data) 66 67systemd = dependency('systemd') 68conf_data = configuration_data() 69conf_data.set('bindir', get_option('prefix') / get_option('bindir')) 70configure_file( 71 input: 'phosphor-health-monitor.service.in', 72 output: 'phosphor-health-monitor.service', 73 configuration: conf_data, 74 install: true, 75 install_dir: systemd.get_pkgconfig_variable('systemdsystemunitdir')) 76