1project( 2 'fb-ipmi-oem', 3 'cpp', 4 version: '0.1', 5 meson_version: '>=1.1.1', 6 default_options: [ 7 'werror=true', 8 'warning_level=3', 9 'cpp_std=c++23', 10 ]) 11 12# Project Arguments 13cpp = meson.get_compiler('cpp') 14add_project_arguments( 15 cpp.get_supported_arguments([ 16 '-DBOOST_ERROR_CODE_HEADER_ONLY', 17 '-DBOOST_SYSTEM_NO_DEPRECATED', 18 '-DBOOST_ALL_NO_LIB', 19 '-DBOOST_NO_RTTI', 20 '-DBOOST_NO_TYPEID', 21 '-DBOOST_ASIO_DISABLE_THREADS', 22 '-DBOOST_COROUTINES_NO_DEPRECATION_WARNING', 23 '-Wno-psabi', 24 '-Wno-pedantic', 25 ]), 26 language : 'cpp') 27 28fs = import('fs') 29 30host_instances = '0' 31if get_option('host-instances') != '' 32 host_instances = get_option('host-instances') 33endif 34 35conf_data = configuration_data() 36conf_data.set_quoted('INSTANCES',host_instances) 37conf_data.set('POST_CODE_BYTES', get_option('post-code-bytes')) 38conf_data.set('DEBUG_CARD_FRAME_SIZE', get_option('debug-card-frame-size')) 39 40configure_file(input: 'meson_config.h.in', 41 output: 'config.h', 42 configuration: conf_data) 43 44if not get_option('bic').disabled() 45 add_project_arguments( 46 cpp.get_supported_arguments([ 47 '-DBIC_ENABLED', 48 ]), 49 language : 'cpp') 50endif 51 52root_inc = include_directories('.', 'include') 53 54# Dependencies 55sdbusplus_dep = dependency('sdbusplus') 56phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces') 57phosphor_logging_dep = dependency('phosphor-logging') 58ipmid_dep = dependency('libipmid') 59channellayer_dep = dependency('libchannellayer') 60userlayer_dep = dependency('libuserlayer') 61 62nlohmann_json_dep = dependency('nlohmann_json', include_type: 'system') 63 64zfboemcmds_pre = declare_dependency( 65 include_directories: root_inc, 66 dependencies: [ 67 channellayer_dep, 68 ipmid_dep, 69 nlohmann_json_dep, 70 phosphor_dbus_interfaces_dep, 71 phosphor_logging_dep, 72 sdbusplus_dep, 73 userlayer_dep, 74 ]) 75 76zfboemcmds_lib = library( 77 'zfboemcmds', 78 'src/commandutils.cpp', 79 'src/oemcommands.cpp', 80 'src/appcommands.cpp', 81 'src/storagecommands.cpp', 82 'src/usb-dbg.cpp', 83 'src/selcommands.cpp', 84 'src/transportcommands.cpp', 85 'src/biccommands.cpp', 86 implicit_include_directories: false, 87 dependencies: zfboemcmds_pre, 88 version: meson.project_version(), 89 override_options: ['b_lundef=false'], 90 install: true, 91 install_dir: get_option('libdir') / 'ipmid-providers') 92 93if get_option('machine') != '' 94 configfile = [ 95 'cri_sensors.json', 96 'gpio_desc.json', 97 'post_desc.json' 98 ] 99 foreach c : configfile 100 file = join_paths('configs', get_option('machine'), c) 101 if not fs.is_file(file) 102 warning('Missing config file: ' + file) 103 else 104 install_data( 105 sources : file, 106 install_dir : get_option('datadir') / 'lcd-debug' 107 ) 108 endif 109 endforeach 110endif 111