1project(
2    'phosphor-health-monitor',
3    'cpp',
4    version: '1.0',
5    default_options: [
6        'cpp_std=c++23',
7    ],
8    meson_version: '>=1.1.1',
9)
10
11phosphor_logging_dep = dependency('phosphor-logging')
12phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
13sdbusplus_dep = dependency('sdbusplus')
14sdeventplus_dep = dependency('sdeventplus')
15nlohmann_json_dep = dependency('nlohmann_json', include_type: 'system')
16base_deps = [
17    phosphor_logging_dep,
18    phosphor_dbus_interfaces_dep,
19    sdbusplus_dep,
20    sdeventplus_dep,
21    nlohmann_json_dep
22]
23
24executable(
25    'health-monitor',
26    [
27        'healthMonitor.cpp',
28        'health_metric_config.cpp',
29    ],
30    dependencies: [
31        base_deps
32    ],
33    install: true,
34    install_dir: get_option('bindir')
35)
36
37install_data(sources : 'bmc_health_config.json', install_dir : '/etc/healthMon')
38
39conf_data = configuration_data()
40conf_data.set('HEALTH_CONFIG_FILE', '"/etc/healthMon/bmc_health_config.json"')
41conf_data.set('HEALTH_BUS_NAME', '"xyz.openbmc_project.HealthMon"')
42conf_data.set('HEALTH_SENSOR_PATH', '"/xyz/openbmc_project/sensors/utilization/"')
43conf_data.set('SENSOR_OBJPATH', '"/xyz/openbmc_project/sensors"')
44conf_data.set('INVENTORY_OBJPATH', '"/xyz/openbmc_project/inventory"')
45
46configure_file(output : 'config.h',
47               configuration : conf_data)
48
49systemd = dependency('systemd')
50conf_data = configuration_data()
51conf_data.set('bindir', get_option('prefix') / get_option('bindir'))
52configure_file(
53  input: 'phosphor-health-monitor.service.in',
54  output: 'phosphor-health-monitor.service',
55  configuration: conf_data,
56  install: true,
57  install_dir: systemd.get_variable('systemdsystemunitdir'))
58
59if get_option('tests').allowed()
60  subdir('test')
61endif
62