blob: 28d4b1b8491cf66211b63ecbb202100cc4c26fd8 [file] [log] [blame]
project(
'phosphor-hwmon',
'cpp',
default_options: [
'warning_level=3',
'werror=true',
'cpp_std=c++23'
],
license: 'Apache-2.0',
version: '1.0',
meson_version: '>=1.1.1',
)
conf = configuration_data()
conf.set_quoted('BUSNAME_PREFIX', get_option('busname-prefix'))
conf.set_quoted('SENSOR_ROOT', get_option('sensor-root'))
conf.set10('NEGATIVE_ERRNO_ON_FAIL', get_option('negative-errno-on-fail'))
conf.set10('UPDATE_FUNCTIONAL_ON_FAIL', get_option('update-functional-on-fail'))
sysfs_headers = include_directories('.')
sysfs_deps = [
dependency('stdplus'),
]
sysfs_lib = static_library(
'sysfs',
'sysfs.cpp',
include_directories: sysfs_headers,
dependencies: sysfs_deps,
)
sysfs_dep = declare_dependency(
dependencies: sysfs_deps,
include_directories: sysfs_headers,
link_with: sysfs_lib)
hwmon_headers = include_directories('.')
hwmon_deps = [
dependency('gpioplus'),
dependency('phosphor-dbus-interfaces'),
dependency('phosphor-logging'),
dependency('sdbusplus'),
dependency('sdeventplus'),
dependency('stdplus'),
dependency('threads'),
sysfs_dep,
]
hwmon_lib = static_library(
'hwmon',
'average.cpp',
configure_file(output: 'config.h', configuration: conf),
'env.cpp',
'fan_pwm.cpp',
'fan_speed.cpp',
'gpio_handle.cpp',
'hwmon.cpp',
'hwmonio.cpp',
'mainloop.cpp',
'sensor.cpp',
'sensorset.cpp',
dependencies: hwmon_deps,
include_directories: hwmon_headers)
hwmon_dep = declare_dependency(
dependencies: hwmon_deps,
include_directories: hwmon_headers,
link_with: hwmon_lib)
# CLI11 might not have a pkg-config. It is header only so just make
# sure we can access the needed symbols from the header.
cli11_dep = dependency('cli11', required: false)
has_cli11 = meson.get_compiler('cpp').has_header_symbol(
'CLI/CLI.hpp',
'CLI::App',
dependencies: cli11_dep,
required: false)
if not has_cli11
cli11_proj = subproject('cli11', required: false)
assert(cli11_proj.found(), 'CLI11 is required')
cli11_dep = cli11_proj.get_variable('CLI11_dep')
endif
executable(
'phosphor-hwmon-readd',
'readd.cpp',
dependencies: [
cli11_dep,
hwmon_dep,
],
install: true)
systemd_system_unit_dir = dependency('systemd').get_variable(
'systemdsystemunitdir',
pkgconfig_define: ['prefix', get_option('prefix')])
udev_dir = dependency('udev').get_variable(
'udev_dir',
pkgconfig_define: ['prefix', get_option('prefix')])
install_data(
'xyz.openbmc_project.Hwmon@.service',
install_dir: systemd_system_unit_dir
)
install_data(
'phosphor-hwmon.conf',
install_dir: get_option('sysconfdir') / 'dbus-1/system.d'
)
install_data(
['70-hwmon.rules', '70-iio.rules'],
install_dir: udev_dir / 'rules.d'
)
configure_file(
input : 'start_hwmon.sh.in',
output : 'start_hwmon.sh',
configuration: {'OVERRIDE_WITH_DEVPATH': ' '.join(get_option('override-with-devpath'))},
install_dir: get_option('bindir'),
install_mode: 'rwxr-xr-x',
install: true,
)
subdir('msl')
if not get_option('tests').disabled()
subdir('test')
endif
subdir('tools')