14a316058SVernon Maueryproject( 24a316058SVernon Mauery 'intel-ipmi-oem', 34a316058SVernon Mauery 'cpp', 44a316058SVernon Mauery version: '0.1', 54a316058SVernon Mauery meson_version: '>=1.1.1', 64a316058SVernon Mauery default_options: [ 74a316058SVernon Mauery 'werror=true', 84a316058SVernon Mauery 'warning_level=3', 94a316058SVernon Mauery 'cpp_std=c++23', 104a316058SVernon Mauery ]) 114a316058SVernon Mauery 124a316058SVernon Mauery# Project Arguments 134a316058SVernon Maueryall_args = [ 144a316058SVernon Mauery '-DBOOST_ERROR_CODE_HEADER_ONLY', 154a316058SVernon Mauery '-DBOOST_SYSTEM_NO_DEPRECATED', 164a316058SVernon Mauery '-DBOOST_ALL_NO_LIB', 174a316058SVernon Mauery '-DBOOST_NO_RTTI', 184a316058SVernon Mauery '-DBOOST_NO_TYPEID', 194a316058SVernon Mauery '-DBOOST_ASIO_DISABLE_THREADS', 204a316058SVernon Mauery '-DBOOST_COROUTINES_NO_DEPRECATION_WARNING', 214a316058SVernon Mauery '-DBMC_VALIDATION_UNSECURE_FEATURE', 224a316058SVernon Mauery '-DUSING_ENTITY_MANAGER_DECORATORS', 234a316058SVernon Mauery '-Wno-psabi', 244a316058SVernon Mauery '-Wno-pedantic', 254a316058SVernon Mauery ] 264a316058SVernon Mauery 274a316058SVernon Maueryfeature_map = { 284a316058SVernon Mauery 'intel-pfr': '-DINTEL_PFR_ENABLED', 294a316058SVernon Mauery 'bmc-validation-unsecure-feature': '-DBMC_VALIDATION_UNSECURE_FEATURE', 304a316058SVernon Mauery 'using-entity-manager-decorators': '-DUSING_ENTITY_MANAGER_DECORATORS', 314a316058SVernon Mauery} 324a316058SVernon Mauery 334a316058SVernon Maueryforeach option_key, option_value : feature_map 344a316058SVernon Mauery if(get_option(option_key).allowed()) 354a316058SVernon Mauery summary(option_key,option_value, section : 'Enabled Features') 364a316058SVernon Mauery add_project_arguments(option_value,language:'cpp') 374a316058SVernon Mauery endif 384a316058SVernon Maueryendforeach 394a316058SVernon Mauery 404a316058SVernon Mauerycpp = meson.get_compiler('cpp') 414a316058SVernon Maueryadd_project_arguments( 424a316058SVernon Mauery cpp.get_supported_arguments(all_args), 434a316058SVernon Mauery language : 'cpp') 444a316058SVernon Mauery 454a316058SVernon Maueryfs = import('fs') 464a316058SVernon Mauery 474a316058SVernon Maueryroot_inc = include_directories('.', 'include') 484a316058SVernon Mauery 494a316058SVernon Mauery# Dependencies 50*77a44298SPatrick Williamsnlohmann_json_dep = dependency('nlohmann_json', include_type: 'system') 514a316058SVernon Maueryphosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces') 524a316058SVernon Maueryphosphor_logging_dep = dependency('phosphor-logging') 53*77a44298SPatrick Williamssdbusplus_dep = dependency('sdbusplus') 544a316058SVernon Maueryipmid_dep = dependency('libipmid') 554a316058SVernon Mauerychannellayer_dep = dependency('libchannellayer') 564a316058SVernon Maueryuserlayer_dep = dependency('libuserlayer') 574a316058SVernon Mauery 584a316058SVernon Mauery 594a316058SVernon Mauerytinyxml_dep = dependency('tinyxml2', 604a316058SVernon Mauery default_options: ['tests=false'], 614a316058SVernon Mauery include_type: 'system', 624a316058SVernon Mauery) 634a316058SVernon Mauery 644a316058SVernon Mauerygpio_dep = dependency('libgpiodcxx', 654a316058SVernon Mauery default_options: ['bindings=cxx'], 664a316058SVernon Mauery ) 674a316058SVernon Mauery 684a316058SVernon Maueryzinteloemcmds_pre = declare_dependency( 694a316058SVernon Mauery include_directories: root_inc, 704a316058SVernon Mauery dependencies: [ 714a316058SVernon Mauery channellayer_dep, 724a316058SVernon Mauery ipmid_dep, 734a316058SVernon Mauery gpio_dep, 744a316058SVernon Mauery nlohmann_json_dep, 754a316058SVernon Mauery phosphor_dbus_interfaces_dep, 764a316058SVernon Mauery phosphor_logging_dep, 774a316058SVernon Mauery sdbusplus_dep, 784a316058SVernon Mauery tinyxml_dep, 794a316058SVernon Mauery userlayer_dep, 804a316058SVernon Mauery ]) 814a316058SVernon Mauery 824a316058SVernon Maueryprog_python = import('python').find_installation('python3') 834a316058SVernon Mauerygenerate_allowlist_script = files('generate-allowlist.py') 844a316058SVernon Maueryipmiallowlist = custom_target( 854a316058SVernon Mauery 'ipmi-allowlist.hpp', 864a316058SVernon Mauery input: [generate_allowlist_script, 'ipmi-allowlist.conf' ], 874a316058SVernon Mauery output: 'ipmi-allowlist.hpp', 884a316058SVernon Mauery command: [ prog_python, '@INPUT0@', '@INPUT1@', '@OUTPUT@' ], 894a316058SVernon Mauery ) 904a316058SVernon Mauery 914a316058SVernon Maueryzinteloemcmds_src = [ 924a316058SVernon Mauery 'src/oemcommands.cpp', 934a316058SVernon Mauery 'src/sensorcommands.cpp', 944a316058SVernon Mauery 'src/biosconfigcommands.cpp', 954a316058SVernon Mauery 'src/storagecommands.cpp', 964a316058SVernon Mauery 'src/multinodecommands.cpp', 974a316058SVernon Mauery 'src/firmware-update.cpp', 984a316058SVernon Mauery 'src/appcommands.cpp', 994a316058SVernon Mauery 'src/smbiosmdrv2handler.cpp', 1004a316058SVernon Mauery 'src/manufacturingcommands.cpp', 1014a316058SVernon Mauery 'src/bmccontrolservices.cpp', 1024a316058SVernon Mauery 'src/bridgingcommands.cpp', 1034a316058SVernon Mauery 'src/ipmi_to_redfish_hooks.cpp', 1044a316058SVernon Mauery 'src/me_to_redfish_hooks.cpp', 1054a316058SVernon Mauery 'src/chassiscommands.cpp', 1064a316058SVernon Mauery 'src/allowlist-filter.cpp', 10721a1b5f8SPeter Foley 'src/fruutils.cpp', 1084a316058SVernon Mauery ipmiallowlist, 1094a316058SVernon Mauery] 1104a316058SVernon Mauery 1114a316058SVernon Maueryzinteloemcmds_lib = library( 1124a316058SVernon Mauery 'zinteloemcmds', 1134a316058SVernon Mauery sources: zinteloemcmds_src, 1144a316058SVernon Mauery implicit_include_directories: false, 1154a316058SVernon Mauery dependencies: zinteloemcmds_pre, 1164a316058SVernon Mauery version: meson.project_version(), 1174a316058SVernon Mauery override_options: ['b_lundef=false'], 1184a316058SVernon Mauery install: true, 1194a316058SVernon Mauery install_dir: get_option('libdir') / 'ipmid-providers') 1204a316058SVernon Mauery 1214a316058SVernon Maueryif get_option('tests').allowed() 1224a316058SVernon Mauery subdir('tests') 1234a316058SVernon Maueryendif 124