blob: 2b5d5a340bc9bae0dd272019fa712085223019ed [file] [log] [blame]
Ed Tanous2b314e42025-08-19 15:46:18 -07001project(
2 'platform-init',
3 'cpp',
4 meson_version: '>=1.7.0',
5 version: '0.1',
6 default_options: ['warning_level=3', 'cpp_std=c++23'],
7)
8
9gpiodcxx_dep = dependency('libgpiodcxx', default_options: ['bindings=cxx'])
10systemd_dep = dependency('systemd')
11libsystemd_dep = dependency('libsystemd')
Marc Olberdingc9c86122025-09-08 17:45:21 -070012sdbusplus = dependency('sdbusplus', include_type: 'system')
13
Ed Tanous2b314e42025-08-19 15:46:18 -070014
15cli11_dep = dependency('CLI11', required: true, include_type: 'system')
Marc Olberding5d50e522025-09-03 18:23:32 -070016i2c_dep = meson.get_compiler('cpp').find_library('i2c')
Ed Tanous2b314e42025-08-19 15:46:18 -070017
Marc Olberding5d50e522025-09-03 18:23:32 -070018platform_srcs = files('nvidia/gb200.cpp', 'nvidia/nvl32.cpp')
Marc Olberding801bc902025-08-27 12:55:42 -070019util_srcs = files('gpio.cpp', 'i2c.cpp', 'utilities.cpp')
20
Ed Tanous2b314e42025-08-19 15:46:18 -070021exe = executable(
22 'platform',
Marc Olberding801bc902025-08-27 12:55:42 -070023 ['platform.cpp'] + platform_srcs + util_srcs,
Marc Olberdingc9c86122025-09-08 17:45:21 -070024 dependencies: [gpiodcxx_dep, libsystemd_dep, cli11_dep, i2c_dep, sdbusplus],
Marc Olberding801bc902025-08-27 12:55:42 -070025 include_directories: ['.', 'nvidia'],
Ed Tanous2b314e42025-08-19 15:46:18 -070026 install: true,
27 install_dir: get_option('libexecdir'),
28)
29
30systemd_system_unit_dir = systemd_dep.get_variable('systemd_system_unit_dir')
31configure_file(
32 input: 'platform_init.service.in',
33 output: 'platform_init.service',
34 install_dir: systemd_system_unit_dir,
35 install: true,
36 configuration: configuration_data(
37 {'PLATFORM_NAME': get_option('platform-name')},
38 ),
39)