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