blob: 764cdd6200745bb0120e076e9c7597f024f19655 [file] [log] [blame]
Brad Bishop59061732019-10-07 15:48:37 -04001project(
2 'phosphor-hwmon',
3 'cpp',
4 default_options: [
5 'warning_level=3',
6 'werror=true',
7 'cpp_std=c++17'
8 ],
9 license: 'Apache-2.0',
10 version: '1.0',
11)
12
Matt Spinler5e034af2020-06-24 15:21:53 -050013fmt = dependency('fmt')
Brad Bishop59061732019-10-07 15:48:37 -040014
15conf = configuration_data()
16conf.set_quoted('BUSNAME_PREFIX', get_option('busname-prefix'))
17conf.set_quoted('SENSOR_ROOT', get_option('sensor-root'))
18conf.set10('NEGATIVE_ERRNO_ON_FAIL', get_option('negative-errno-on-fail'))
19conf.set10('UPDATE_FUNCTIONAL_ON_FAIL', get_option('update-functional-on-fail'))
20
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070021sysfs_headers = include_directories('.')
Brad Bishop59061732019-10-07 15:48:37 -040022
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070023sysfs_deps = [
24 fmt,
25]
Brad Bishop59061732019-10-07 15:48:37 -040026
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070027sysfs_lib = static_library(
Brad Bishop59061732019-10-07 15:48:37 -040028 'sysfs',
29 'sysfs.cpp',
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070030 include_directories: sysfs_headers,
31 dependencies: sysfs_deps)
Brad Bishop59061732019-10-07 15:48:37 -040032
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070033sysfs_dep = declare_dependency(
34 dependencies: sysfs_deps,
35 include_directories: sysfs_headers,
36 link_with: sysfs_lib)
37
38hwmon_headers = include_directories('.')
39
40hwmon_deps = [
41 fmt,
42 dependency('gpioplus'),
43 dependency('phosphor-dbus-interfaces'),
44 dependency('phosphor-logging'),
45 dependency('sdbusplus'),
46 dependency('sdeventplus'),
47 dependency('stdplus'),
48 sysfs_dep,
49]
50
51hwmon_lib = static_library(
52 'hwmon',
53 'average.cpp',
54 configure_file(output: 'config.h', configuration: conf),
Brad Bishop59061732019-10-07 15:48:37 -040055 'env.cpp',
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070056 'fan_pwm.cpp',
Brad Bishop59061732019-10-07 15:48:37 -040057 'fan_speed.cpp',
58 'gpio_handle.cpp',
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070059 'hwmon.cpp',
60 'hwmonio.cpp',
Brad Bishop59061732019-10-07 15:48:37 -040061 'mainloop.cpp',
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070062 'sensor.cpp',
Brad Bishop59061732019-10-07 15:48:37 -040063 'sensorset.cpp',
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070064 dependencies: hwmon_deps,
65 include_directories: hwmon_headers)
66
67hwmon_dep = declare_dependency(
68 dependencies: hwmon_deps,
69 include_directories: hwmon_headers,
70 link_with: hwmon_lib)
Brad Bishop59061732019-10-07 15:48:37 -040071
William A. Kennington IIId3e87942021-05-05 12:26:53 -070072# CLI11 might not have a pkg-config. It is header only so just make
73# sure we can access the needed symbols from the header.
74cli11_dep = dependency('cli11', required: false)
75has_cli11 = meson.get_compiler('cpp').has_header_symbol(
76 'CLI/CLI.hpp',
77 'CLI::App',
78 dependencies: cli11_dep,
79 required: false)
80if not has_cli11
81 cli11_proj = subproject('cli11', required: false)
82 assert(cli11_proj.found(), 'CLI11 is required')
83 cli11_dep = cli11_proj.get_variable('CLI11_dep')
84endif
85
Brad Bishop59061732019-10-07 15:48:37 -040086executable(
87 'phosphor-hwmon-readd',
88 'readd.cpp',
William A. Kennington IIId3e87942021-05-05 12:26:53 -070089 dependencies: [
90 cli11_dep,
91 hwmon_dep,
92 ],
93 install: true)
Brad Bishop59061732019-10-07 15:48:37 -040094
Anton D. Kachalov5b520cf2021-02-03 23:19:39 +010095systemd_system_unit_dir = dependency('systemd').get_pkgconfig_variable(
96 'systemdsystemunitdir',
97 define_variable: ['prefix', get_option('prefix')])
98udev_dir = dependency('udev').get_pkgconfig_variable(
99 'udev_dir',
100 define_variable: ['prefix', get_option('prefix')])
101
102install_data(
103 'xyz.openbmc_project.Hwmon@.service',
104 install_dir: systemd_system_unit_dir
105)
106
107install_data(
108 'phosphor-hwmon.conf',
109 install_dir: get_option('sysconfdir') / 'dbus-1/system.d'
110)
111
112install_data(
113 ['70-hwmon.rules', '70-iio.rules'],
114 install_dir: udev_dir / 'rules.d'
115)
116
117install_data(
118 'start_hwmon.sh',
119 install_dir: get_option('bindir'),
120 install_mode: 'rwxr-xr-x'
121)
122
Brad Bishop59061732019-10-07 15:48:37 -0400123subdir('msl')
William A. Kennington IIIbb259732021-05-05 12:35:01 -0700124if not get_option('tests').disabled()
125 subdir('test')
126endif
Brad Bishop59061732019-10-07 15:48:37 -0400127subdir('tools')