blob: fb9fa0e4794d3253b0ea29941be42e079bb9822e [file] [log] [blame]
Tony Lee84d430c2019-06-13 15:26:15 +08001project(
2 'phosphor-nvme',
3 'cpp',
4 version: '1.0',
Patrick Williams7fa34ca2025-02-01 08:37:08 -05005 default_options: ['cpp_std=c++23'],
Patrick Williams839141e2023-07-12 11:15:33 -05006 meson_version: '>=1.1.1',
Tony Lee84d430c2019-06-13 15:26:15 +08007)
8
9executable(
10 'nvme_main',
Patrick Williams7fa34ca2025-02-01 08:37:08 -050011 ['nvme_main.cpp', 'nvme_manager.cpp', 'smbus.cpp', 'nvmes.cpp'],
Tony Lee84d430c2019-06-13 15:26:15 +080012 dependencies: [
13 dependency('phosphor-logging'),
14 dependency('sdbusplus'),
15 dependency('phosphor-dbus-interfaces'),
16 dependency('sdeventplus'),
Patrick Williams7fa34ca2025-02-01 08:37:08 -050017 dependency('nlohmann_json'),
Tony Lee84d430c2019-06-13 15:26:15 +080018 ],
19 install: true,
Patrick Williams7fa34ca2025-02-01 08:37:08 -050020 install_dir: get_option('bindir'),
Tony Lee84d430c2019-06-13 15:26:15 +080021)
22
Patrick Williams7fa34ca2025-02-01 08:37:08 -050023install_data(sources: 'nvme_config.json', install_dir: '/etc/nvme')
Tony Lee6c595012019-06-19 10:54:59 +080024
Tony Lee84d430c2019-06-13 15:26:15 +080025conf_data = configuration_data()
26conf_data.set('NVME_REQUEST_NAME', '"xyz.openbmc_project.nvme.manager"')
27conf_data.set('NVME_OBJ_PATH_ROOT', '"/xyz/openbmc_project/sensors/temperature"')
28conf_data.set('NVME_OBJ_PATH', '"/xyz/openbmc_project/sensors/temperature/nvme"')
29conf_data.set('DBUS_PROPERTY_IFACE', '"org.freedesktop.DBus.Properties"')
Tony Lee89659212019-06-21 17:34:14 +080030conf_data.set('LED_GROUP_BUSNAME', '"xyz.openbmc_project.LED.GroupManager"')
31conf_data.set('LED_GROUP_IFACE', '"xyz.openbmc_project.Led.Group"')
32conf_data.set('LED_CONTROLLER_IFACE', '"xyz.openbmc_project.Led.Physical"')
33conf_data.set('ITEM_IFACE', '"xyz.openbmc_project.Inventory.Item"')
34conf_data.set('NVME_STATUS_IFACE', '"xyz.openbmc_project.Nvme.Status"')
35conf_data.set('ASSET_IFACE', '"xyz.openbmc_project.Inventory.Decorator.Asset"')
36conf_data.set('INVENTORY_BUSNAME', '"xyz.openbmc_project.Inventory.Manager"')
Patrick Williams7fa34ca2025-02-01 08:37:08 -050037conf_data.set(
38 'NVME_INVENTORY_PATH',
39 '"/xyz/openbmc_project/inventory/system/chassis/motherboard/nvme"',
40)
Tony Lee89659212019-06-21 17:34:14 +080041conf_data.set('INVENTORY_NAMESPACE', '"/xyz/openbmc_project/inventory"')
Patrick Williams7fa34ca2025-02-01 08:37:08 -050042conf_data.set(
43 'INVENTORY_MANAGER_IFACE',
44 '"xyz.openbmc_project.Inventory.Manager"',
45)
Tony Lee84d430c2019-06-13 15:26:15 +080046
Patrick Williams7fa34ca2025-02-01 08:37:08 -050047configure_file(output: 'config.h', configuration: conf_data)
Benjamin Fairfc8472c2020-04-10 13:33:54 -070048
49systemd = dependency('systemd')
50conf_data = configuration_data()
51conf_data.set('bindir', get_option('prefix') / get_option('bindir'))
52configure_file(
Patrick Williams7fa34ca2025-02-01 08:37:08 -050053 input: 'xyz.openbmc_project.nvme.manager.service.in',
54 output: 'xyz.openbmc_project.nvme.manager.service',
55 configuration: conf_data,
56 install: true,
57 install_dir: systemd.get_variable('systemdsystemunitdir'),
58)