blob: 9805fcb7930937a2808d4f67ba4f5fffe7b06559 [file] [log] [blame]
William A. Kennington IIIac730af2021-06-24 03:15:38 -07001project(
Patrick Williams4d6a7b32025-02-01 08:38:43 -05002 '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)
William A. Kennington IIIac730af2021-06-24 03:15:38 -07008
Willy Tu6c71b0f2021-10-10 13:34:41 -07009root_inc = include_directories('.')
10
11conf_data = configuration_data()
Patrick Williams4d6a7b32025-02-01 08:38:43 -050012conf_data.set_quoted(
13 'STATIC_BIFURCATION_CONFIG',
14 get_option('static-bifurcation'),
15)
16conf_h = configure_file(output: 'config.h', configuration: conf_data)
Willy Tu6c71b0f2021-10-10 13:34:41 -070017
Nikhil Namjoshi5e70dc82022-09-16 00:36:07 +000018bm_conf_data = configuration_data()
19bm_conf_data.set10('BARE_METAL', get_option('bare_metal'))
Brandon Kim3f3ca032023-03-17 18:49:00 +000020bm_conf_data.set_quoted('BM_SIGNAL_PATH', get_option('bm-signal-path'))
Patrick Williams4d6a7b32025-02-01 08:38:43 -050021bm_conf_h = configure_file(output: 'bm_config.h', configuration: bm_conf_data)
Nikhil Namjoshi5e70dc82022-09-16 00:36:07 +000022
William A. Kennington IIIac730af2021-06-24 03:15:38 -070023meson.get_compiler('cpp').has_header_symbol(
Patrick Williams4d6a7b32025-02-01 08:38:43 -050024 'ipmid/api.h',
25 'ipmid_get_sd_bus_connection',
26)
William A. Kennington IIIac730af2021-06-24 03:15:38 -070027
Willy Tuc5b55232023-11-01 09:27:40 -070028stdplus = dependency('stdplus')
Willy Tu6c71b0f2021-10-10 13:34:41 -070029subdir('bifurcation')
30
William A. Kennington IIIac730af2021-06-24 03:15:38 -070031sys_pre = declare_dependency(
Patrick Williams4d6a7b32025-02-01 08:38:43 -050032 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)
William A. Kennington IIIac730af2021-06-24 03:15:38 -070042
43sys_lib = static_library(
Patrick Williams4d6a7b32025-02-01 08:38:43 -050044 '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)
William A. Kennington IIIac730af2021-06-24 03:15:38 -070067
Patrick Williams4d6a7b32025-02-01 08:38:43 -050068sys_dep = declare_dependency(link_with: sys_lib, dependencies: sys_pre)
William A. Kennington IIIac730af2021-06-24 03:15:38 -070069
Patrick Williamse01f0b22025-01-30 17:48:29 -050070if get_option('tests').allowed()
Patrick Williams4d6a7b32025-02-01 08:38:43 -050071 subdir('test')
William A. Kennington IIIac730af2021-06-24 03:15:38 -070072endif
73
74shared_module(
Patrick Williams4d6a7b32025-02-01 08:38:43 -050075 '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)
William A. Kennington IIIac730af2021-06-24 03:15:38 -070082
83systemd_dep = dependency('systemd')
84if systemd_dep.found()
Patrick Williams4d6a7b32025-02-01 08:38:43 -050085 install_data(
86 'gbmc-host-poweroff.target',
87 'gbmc-psu-hardreset.target',
88 'gbmc-psu-hardreset-pre.target',
89 'gbmc-psu-hardreset-time.service',
90 install_dir: systemd_dep.get_variable('systemdsystemunitdir'),
91 )
William A. Kennington IIIac730af2021-06-24 03:15:38 -070092endif
Willy Tu40b2a0c2023-10-31 10:09:42 -070093
94install_data(
Patrick Williams4d6a7b32025-02-01 08:38:43 -050095 'gbmc-enqueue-powercycle.sh',
96 install_dir: get_option('bindir'),
97 install_mode: 'rwxr-xr-x',
Willy Tu40b2a0c2023-10-31 10:09:42 -070098)