xref: /openbmc/google-ipmi-sys/meson.build (revision f25863642da84ba8d73dca606475a1ebfe4f4ef7)
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