xref: /openbmc/entity-manager/meson.build (revision 648ae63b)
1project(
2    'entity-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)
12add_project_arguments('-Wno-psabi', language: 'cpp')
13
14boost_args = [
15    '-DBOOST_SYSTEM_NO_DEPRECATED',
16    '-DBOOST_ERROR_CODE_HEADER_ONLY',
17    '-DBOOST_NO_RTTI',
18    '-DBOOST_NO_TYPEID',
19    '-DBOOST_ALL_NO_LIB',
20]
21build_tests = get_option('tests')
22cpp = meson.get_compiler('cpp')
23boost = dependency('boost', required: false)
24if not boost.found()
25     subproject('boost', required: false)
26     boost = declare_dependency(
27         include_directories: 'subprojects/boost_1_71_0',
28     )
29endif
30if get_option('fru-device')
31    i2c = cpp.find_library('i2c')
32endif
33if cpp.has_header('nlohmann/json.hpp')
34    nlohmann_json = declare_dependency()
35else
36    subproject('nlohmann', required: false)
37    nlohmann_json = declare_dependency(
38        include_directories: [
39            'subprojects/nlohmann/single_include',
40            'subprojects/nlohmann/single_include/nlohmann',
41        ]
42    )
43endif
44sdbusplus = dependency('sdbusplus', required: false)
45if not sdbusplus.found()
46    sdbusplus_proj = subproject('sdbusplus', required: true)
47    sdbusplus = sdbusplus_proj.get_variable('sdbusplus_dep')
48endif
49systemd = dependency('systemd')
50systemd_system_unit_dir = systemd.get_pkgconfig_variable(
51    'systemdsystemunitdir',
52    define_variable: ['prefix', get_option('prefix')])
53packagedir = join_paths(
54    get_option('prefix'),
55    get_option('datadir'),
56    meson.project_name(),
57)
58threads = dependency('threads')
59if cpp.has_header('valijson/validator.hpp')
60    valijson = declare_dependency()
61else
62    subproject('valijson', required: false)
63    valijson = declare_dependency(
64        include_directories: 'subprojects/valijson/include'
65    )
66endif
67
68install_data('blacklist.json')
69
70configs = [
71    '1Ux16 Riser.json',
72    '2Ux8 Riser.json',
73    '8X25 HSBP.json',
74    'A2UL16RISER.json',
75    'A2UX8X4RISER.json',
76    'AHW1UM2RISER.json',
77    'ASPOWER_U1A-D10550_PSU.json',
78    'ASPOWER_U1A-D10800_PSU.json',
79    'ASPOWER_U1A-D11200_PSU.json',
80    'ASPOWER_U1A-D11600_PSU.json',
81    'ASPOWER_U1D-D10800_PSU.json',
82    'AXX1P100HSSI_AIC.json',
83    'AXX2PRTHDHD.json',
84    'BNP Baseboard.json',
85    'Delta DPS-750XB PSU.json',
86    'Delta_DPS-1600AB_PSU.json',
87    'Delta_DPS-2000AB_PSU.json',
88    'F1U12X25 HSBP.json',
89    'F1U4X25 HSBP.json',
90    'F2U12X35 HSBP.json',
91    'F2U8X25 HSBP.json',
92    'FBTP.json',
93    'FBYV2.json',
94    'Flextronics S-1100ADU00-201 PSU.json',
95    'Intel Front Panel.json',
96    'Nisqually.json',
97    'NVME P4000.json',
98    'PCIE SSD Retimer.json',
99    'PSSF132202A.json',
100    'PSSF162205A.json',
101    'PSSF212201A.json',
102    'PSSF222201A.json',
103    'R1000 Chassis.json',
104    'R2000 Chassis.json',
105    'SAS Module.json',
106    'SOLUM_PSSF162202_PSU.json',
107    'STP Baseboard.json',
108    'STP P4000 Chassis.json',
109    'WFT Baseboard.json',
110]
111
112foreach c : configs
113    install_data(
114        join_paths('configurations', c),
115        install_dir: join_paths(
116            packagedir,
117            'configurations',
118        )
119    )
120endforeach
121
122schemas = [
123    'global.json',
124    'legacy.json',
125    'openbmc-dbus.json',
126    'IBM.json',
127    'Intel.json',
128    'Pid.json',
129    'Pid.Zone.json',
130    'Stepwise.json',
131]
132
133foreach s : schemas
134    install_data(
135        join_paths('schemas', s),
136        install_dir: join_paths(
137            packagedir,
138            'configurations',
139            'schemas',
140        )
141    )
142endforeach
143
144subdir('service_files')
145subdir('src')
146if not build_tests.disabled()
147  subdir('test')
148endif
149