| William A. Kennington III | ac730af | 2021-06-24 03:15:38 -0700 | [diff] [blame] | 1 | project( | 
|  | 2 | 'google-ipmi-sys', | 
|  | 3 | 'cpp', | 
|  | 4 | version: '0.1', | 
| Patrick Williams | 9941341 | 2023-07-12 11:16:14 -0500 | [diff] [blame] | 5 | meson_version: '>=1.1.1', | 
| William A. Kennington III | ac730af | 2021-06-24 03:15:38 -0700 | [diff] [blame] | 6 | default_options: [ | 
| Patrick Williams | 9941341 | 2023-07-12 11:16:14 -0500 | [diff] [blame] | 7 | 'cpp_std=c++23', | 
| William A. Kennington III | ac730af | 2021-06-24 03:15:38 -0700 | [diff] [blame] | 8 | 'warning_level=3', | 
|  | 9 | 'werror=true', | 
|  | 10 | ]) | 
|  | 11 |  | 
| Willy Tu | 6c71b0f | 2021-10-10 13:34:41 -0700 | [diff] [blame] | 12 | root_inc = include_directories('.') | 
|  | 13 |  | 
|  | 14 | conf_data = configuration_data() | 
|  | 15 | conf_data.set_quoted('STATIC_BIFURCATION_CONFIG', get_option('static-bifurcation')) | 
|  | 16 | conf_h = configure_file( | 
|  | 17 | output: 'config.h', | 
|  | 18 | configuration: conf_data) | 
|  | 19 |  | 
| Nikhil Namjoshi | 5e70dc8 | 2022-09-16 00:36:07 +0000 | [diff] [blame] | 20 | bm_conf_data = configuration_data() | 
|  | 21 | bm_conf_data.set10('BARE_METAL', get_option('bare_metal')) | 
| Brandon Kim | 3f3ca03 | 2023-03-17 18:49:00 +0000 | [diff] [blame] | 22 | bm_conf_data.set_quoted('BM_SIGNAL_PATH', get_option('bm-signal-path')) | 
| Nikhil Namjoshi | 5e70dc8 | 2022-09-16 00:36:07 +0000 | [diff] [blame] | 23 | bm_conf_h = configure_file( | 
|  | 24 | output: 'bm_config.h', | 
|  | 25 | configuration: bm_conf_data) | 
|  | 26 |  | 
| William A. Kennington III | ac730af | 2021-06-24 03:15:38 -0700 | [diff] [blame] | 27 | meson.get_compiler('cpp').has_header_symbol( | 
|  | 28 | 'ipmid/api.h', | 
|  | 29 | 'ipmid_get_sd_bus_connection') | 
|  | 30 |  | 
|  | 31 | json_dep = dependency('nlohmann_json', required: false) | 
|  | 32 | meson.get_compiler('cpp').has_header_symbol( | 
|  | 33 | 'nlohmann/json.hpp', | 
|  | 34 | 'nlohmann::json', | 
|  | 35 | dependencies: json_dep) | 
|  | 36 |  | 
| Willy Tu | 6c71b0f | 2021-10-10 13:34:41 -0700 | [diff] [blame] | 37 | fmt_dep = dependency('fmt', required: false) | 
|  | 38 | if not fmt_dep.found() | 
|  | 39 | fmt_proj = import('cmake').subproject( | 
|  | 40 | 'fmt', | 
|  | 41 | cmake_options: [ | 
|  | 42 | '-DCMAKE_POSITION_INDEPENDENT_CODE=ON', | 
|  | 43 | '-DMASTER_PROJECT=OFF' | 
|  | 44 | ], | 
|  | 45 | required: false) | 
|  | 46 | assert(fmt_proj.found(), 'fmtlib is required') | 
|  | 47 | fmt_dep = fmt_proj.dependency('fmt') | 
|  | 48 | endif | 
|  | 49 |  | 
|  | 50 | subdir('bifurcation') | 
|  | 51 |  | 
| William A. Kennington III | ac730af | 2021-06-24 03:15:38 -0700 | [diff] [blame] | 52 | sys_pre = declare_dependency( | 
| Willy Tu | 6c71b0f | 2021-10-10 13:34:41 -0700 | [diff] [blame] | 53 | include_directories: root_inc, | 
| William A. Kennington III | ac730af | 2021-06-24 03:15:38 -0700 | [diff] [blame] | 54 | dependencies: [ | 
|  | 55 | json_dep, | 
| Willy Tu | 6c71b0f | 2021-10-10 13:34:41 -0700 | [diff] [blame] | 56 | fmt_dep, | 
| William A. Kennington III | ac730af | 2021-06-24 03:15:38 -0700 | [diff] [blame] | 57 | dependency('phosphor-dbus-interfaces'), | 
|  | 58 | dependency('phosphor-logging'), | 
|  | 59 | dependency('sdbusplus'), | 
| Michael Shen | 8d61853 | 2023-10-25 09:14:07 +0000 | [diff] [blame^] | 60 | dependency('stdplus'), | 
| Willy Tu | 6c71b0f | 2021-10-10 13:34:41 -0700 | [diff] [blame] | 61 | bifurcation_dep, | 
| William A. Kennington III | ac730af | 2021-06-24 03:15:38 -0700 | [diff] [blame] | 62 | ]) | 
|  | 63 |  | 
|  | 64 | sys_lib = static_library( | 
|  | 65 | 'sys', | 
| Nikhil Namjoshi | 5e70dc8 | 2022-09-16 00:36:07 +0000 | [diff] [blame] | 66 | 'bmc_mode.cpp', | 
| William A. Kennington III | ac730af | 2021-06-24 03:15:38 -0700 | [diff] [blame] | 67 | 'cable.cpp', | 
|  | 68 | 'cpld.cpp', | 
|  | 69 | 'entity_name.cpp', | 
|  | 70 | 'eth.cpp', | 
|  | 71 | 'flash_size.cpp', | 
|  | 72 | 'handler.cpp', | 
|  | 73 | 'host_power_off.cpp', | 
|  | 74 | 'ipmi.cpp', | 
| John Wedig | a92d0e6 | 2023-06-29 10:43:47 -0700 | [diff] [blame] | 75 | 'linux_boot_done.cpp', | 
| William A. Kennington III | ac730af | 2021-06-24 03:15:38 -0700 | [diff] [blame] | 76 | 'machine_name.cpp', | 
|  | 77 | 'pcie_i2c.cpp', | 
| Steve Foreman | 4f0d1de | 2021-09-20 14:06:32 -0700 | [diff] [blame] | 78 | 'google_accel_oob.cpp', | 
| Willy Tu | 6c71b0f | 2021-10-10 13:34:41 -0700 | [diff] [blame] | 79 | 'pcie_bifurcation.cpp', | 
| Hao Zhou | 15d4d21 | 2023-07-11 20:18:04 +0000 | [diff] [blame] | 80 | 'file_system_wrapper.cpp', | 
| William A. Kennington III | ac730af | 2021-06-24 03:15:38 -0700 | [diff] [blame] | 81 | 'psu.cpp', | 
|  | 82 | 'util.cpp', | 
|  | 83 | implicit_include_directories: false, | 
|  | 84 | dependencies: sys_pre) | 
|  | 85 |  | 
|  | 86 | sys_dep = declare_dependency( | 
|  | 87 | link_with: sys_lib, | 
|  | 88 | dependencies: sys_pre) | 
|  | 89 |  | 
|  | 90 | if not get_option('tests').disabled() | 
|  | 91 | subdir('test') | 
|  | 92 | endif | 
|  | 93 |  | 
|  | 94 | shared_module( | 
|  | 95 | 'googlesys', | 
|  | 96 | 'main.cpp', | 
|  | 97 | implicit_include_directories: false, | 
|  | 98 | dependencies: [ | 
|  | 99 | dependency('libipmid'), | 
|  | 100 | sys_dep, | 
|  | 101 | ], | 
|  | 102 | install: true, | 
|  | 103 | install_dir: get_option('libdir') / 'ipmid-providers') | 
|  | 104 |  | 
|  | 105 | systemd_dep = dependency('systemd') | 
|  | 106 | if systemd_dep.found() | 
|  | 107 | install_data( | 
| John Wedig | a92d0e6 | 2023-06-29 10:43:47 -0700 | [diff] [blame] | 108 | 'gbmc-bare-metal-active.target', | 
| William A. Kennington III | ac730af | 2021-06-24 03:15:38 -0700 | [diff] [blame] | 109 | 'gbmc-host-poweroff.target', | 
|  | 110 | 'gbmc-psu-hardreset.target', | 
| William A. Kennington III | 0e22d32 | 2022-04-07 12:32:36 -0700 | [diff] [blame] | 111 | 'gbmc-psu-hardreset-pre.target', | 
|  | 112 | 'gbmc-psu-hardreset-time.service', | 
| Willy Tu | 1209ccc | 2023-05-19 00:49:51 -0700 | [diff] [blame] | 113 | install_dir: systemd_dep.get_variable('systemdsystemunitdir')) | 
| William A. Kennington III | ac730af | 2021-06-24 03:15:38 -0700 | [diff] [blame] | 114 | endif |