blob: f4eb4bba16912f10e56724bcac3756eb940bd0cb [file] [log] [blame]
Andrew Geisslerf2454102019-12-06 15:14:08 -06001project(
2 'phosphor-state-manager',
3 'cpp',
4 default_options: [
5 'warning_level=3',
6 'werror=true',
7 'cpp_std=c++17'
8 ],
9 license: 'Apache-2.0',
10 version: '0.1',
11)
12
13conf = configuration_data()
14conf.set_quoted(
15 'HOST_BUSNAME', get_option('host-busname'))
16conf.set_quoted(
17 'HOST_OBJPATH', get_option('host-objpath'))
18conf.set_quoted(
19 'CHASSIS_BUSNAME', get_option('chassis-busname'))
20conf.set_quoted(
21 'CHASSIS_OBJPATH', get_option('chassis-objpath'))
22conf.set_quoted(
23 'BMC_BUSNAME', get_option('bmc-busname'))
24conf.set_quoted(
25 'BMC_OBJPATH', get_option('bmc-objpath'))
26conf.set_quoted(
27 'HOST_RUNNING_FILE', get_option('host-running-file'))
28conf.set_quoted(
29 'HOST_STATE_PERSIST_PATH', get_option('host-state-persist-path'))
30conf.set_quoted(
31 'POH_COUNTER_PERSIST_PATH', get_option('poh-counter-persist-path'))
32conf.set_quoted(
33 'CHASSIS_STATE_CHANGE_PERSIST_PATH', get_option('chassis-state-change-persist-path'))
34conf.set(
35 'BOOT_COUNT_MAX_ALLOWED', get_option('boot-count-max-allowed'))
36conf.set(
37 'CLASS_VERSION', get_option('class-version'))
38
39configure_file(output: 'config.h', configuration: conf)
40
41sdbusplus = dependency('sdbusplus')
42sdeventplus = dependency('sdeventplus')
43phosphorlogging = dependency('phosphor-logging')
44phosphordbusinterfaces = dependency('phosphor-dbus-interfaces')
45
46cppfs = meson.get_compiler('cpp').find_library('stdc++fs')
47
48executable('phosphor-host-state-manager',
49 'host_state_manager.cpp',
50 'host_state_manager_main.cpp',
51 'settings.cpp',
52 dependencies: [
53 sdbusplus, sdeventplus, phosphorlogging,
54 phosphordbusinterfaces, cppfs
55 ],
56 implicit_include_directories: true,
57 install: true
58)
59
60executable('phosphor-chassis-state-manager',
61 'chassis_state_manager.cpp',
62 'chassis_state_manager_main.cpp',
63 dependencies: [
64 sdbusplus, sdeventplus, phosphorlogging,
65 phosphordbusinterfaces, cppfs
66 ],
67 implicit_include_directories: true,
68 install: true
69)
70
71executable('phosphor-bmc-state-manager',
72 'bmc_state_manager.cpp',
73 'bmc_state_manager_main.cpp',
74 dependencies: [
75 sdbusplus, sdeventplus, phosphorlogging,
76 phosphordbusinterfaces, cppfs
77 ],
78 implicit_include_directories: true,
79 install: true
80)
81
82executable('phosphor-discover-system-state',
83 'discover_system_state.cpp',
84 'settings.cpp',
85 dependencies: [
86 sdbusplus, phosphorlogging
87 ],
88 implicit_include_directories: true,
89 install: true
90)
91
92executable('phosphor-host-check',
93 'host_check_main.cpp',
94 dependencies: [
95 sdbusplus, phosphorlogging
96 ],
97 implicit_include_directories: true,
98 install: true
99)
100
101executable('phosphor-systemd-target-monitor',
102 'systemd_target_monitor.cpp',
103 'systemd_target_parser.cpp',
104 'systemd_target_signal.cpp',
105 dependencies: [
106 sdbusplus, sdeventplus, phosphorlogging
107 ],
108 implicit_include_directories: true,
109 install: true
110)
Andrew Geissler3f125632019-12-11 17:08:19 -0600111
Andrew Geisslerdfa75fc2019-12-11 17:26:42 -0600112install_data('obmcutil',
113 install_mode: 'rwxr-xr-x',
114 install_dir: get_option('bindir')
115)
116
Andrew Geissler179d38c2019-12-10 15:05:23 -0600117systemd = dependency('systemd')
118systemd_system_unit_dir = systemd.get_pkgconfig_variable(
119 'systemdsystemunitdir',
120 define_variable: ['prefix', get_option('prefix')])
121subdir('service_files')
Andrew Geisslerc1011572020-01-27 15:09:50 -0600122subdir('target_files')
Andrew Geissler179d38c2019-12-10 15:05:23 -0600123
Andrew Geisslerefef9702019-12-10 16:56:57 -0600124datadir = join_paths(
125 get_option('sysconfdir'),
126 'phosphor-systemd-target-monitor'
127)
128subdir('data')
129
Andrew Geissler3f125632019-12-11 17:08:19 -0600130build_tests = get_option('tests')
131
132# If test coverage of source files within the root directory are wanted,
133# need to define and build the tests from here
134if not build_tests.disabled()
135gtest = dependency('gtest', main: true, disabler: true, required: build_tests)
136 test(
137 'test_systemd_parser',
138 executable('test_systemd_parser',
139 './test/systemd_parser.cpp',
140 'systemd_target_parser.cpp',
141 dependencies: [
142 gtest,
143 ],
144 implicit_include_directories: true,
145 include_directories: '../'
146 )
147 )
148
149 test(
150 'test_systemd_signal',
151 executable('test_systemd_signal',
152 './test/systemd_signal.cpp',
153 'systemd_target_signal.cpp',
154 dependencies: [
155 gtest, sdbusplus, sdeventplus, phosphorlogging,
156 ],
157 implicit_include_directories: true,
158 include_directories: '../'
159 )
160 )
161endif