1project( 2 'google-ipmi-sys', 3 'cpp', 4 version: '0.1', 5 meson_version: '>=1.1.1', 6 default_options: ['cpp_std=c++23', 'warning_level=3', 'werror=true'], 7) 8 9root_inc = include_directories('.') 10 11conf_data = configuration_data() 12conf_data.set_quoted( 13 'STATIC_BIFURCATION_CONFIG', 14 get_option('static-bifurcation'), 15) 16conf_h = configure_file(output: 'config.h', configuration: conf_data) 17 18bm_conf_data = configuration_data() 19bm_conf_data.set10('BARE_METAL', get_option('bare_metal')) 20bm_conf_data.set_quoted('BM_SIGNAL_PATH', get_option('bm-signal-path')) 21bm_conf_h = configure_file(output: 'bm_config.h', configuration: bm_conf_data) 22 23meson.get_compiler('cpp').has_header_symbol( 24 'ipmid/api.h', 25 'ipmid_get_sd_bus_connection', 26) 27 28stdplus = dependency('stdplus') 29subdir('bifurcation') 30 31sys_pre = declare_dependency( 32 include_directories: root_inc, 33 dependencies: [ 34 dependency('nlohmann_json', include_type: 'system'), 35 dependency('phosphor-dbus-interfaces'), 36 dependency('phosphor-logging'), 37 dependency('sdbusplus'), 38 stdplus, 39 bifurcation_dep, 40 ], 41) 42 43sys_lib = static_library( 44 'sys', 45 'bios_setting.cpp', 46 'bm_instance.cpp', 47 'bmc_mode.cpp', 48 'cable.cpp', 49 'cpld.cpp', 50 'entity_name.cpp', 51 'eth.cpp', 52 'flash_size.cpp', 53 'handler.cpp', 54 'host_power_off.cpp', 55 'ipmi.cpp', 56 'linux_boot_done.cpp', 57 'machine_name.cpp', 58 'pcie_i2c.cpp', 59 'google_accel_oob.cpp', 60 'pcie_bifurcation.cpp', 61 'file_system_wrapper.cpp', 62 'psu.cpp', 63 'util.cpp', 64 implicit_include_directories: false, 65 dependencies: sys_pre, 66) 67 68sys_dep = declare_dependency(link_with: sys_lib, dependencies: sys_pre) 69 70if get_option('tests').allowed() 71 subdir('test') 72endif 73 74shared_module( 75 'googlesys', 76 'main.cpp', 77 implicit_include_directories: false, 78 dependencies: [dependency('libipmid'), sys_dep], 79 install: true, 80 install_dir: get_option('libdir') / 'ipmid-providers', 81) 82 83systemd_dep = dependency('systemd') 84if systemd_dep.found() 85 install_data( 86 'gbmc-host-poweroff.target', 87 install_dir: systemd_dep.get_variable('systemdsystemunitdir'), 88 ) 89endif 90