blob: d080492806f412d0f03479fe0582b832d05fe5c4 [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'),
Brandon Kim6d50c3e2019-08-09 15:38:53 -070048 dependency('threads'),
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070049 sysfs_dep,
50]
51
52hwmon_lib = static_library(
53 'hwmon',
54 'average.cpp',
55 configure_file(output: 'config.h', configuration: conf),
Brad Bishop59061732019-10-07 15:48:37 -040056 'env.cpp',
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070057 'fan_pwm.cpp',
Brad Bishop59061732019-10-07 15:48:37 -040058 'fan_speed.cpp',
59 'gpio_handle.cpp',
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070060 'hwmon.cpp',
61 'hwmonio.cpp',
Brad Bishop59061732019-10-07 15:48:37 -040062 'mainloop.cpp',
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070063 'sensor.cpp',
Brad Bishop59061732019-10-07 15:48:37 -040064 'sensorset.cpp',
William A. Kennington IIIf9aff802021-05-05 12:06:24 -070065 dependencies: hwmon_deps,
66 include_directories: hwmon_headers)
67
68hwmon_dep = declare_dependency(
69 dependencies: hwmon_deps,
70 include_directories: hwmon_headers,
71 link_with: hwmon_lib)
Brad Bishop59061732019-10-07 15:48:37 -040072
William A. Kennington IIId3e87942021-05-05 12:26:53 -070073# CLI11 might not have a pkg-config. It is header only so just make
74# sure we can access the needed symbols from the header.
75cli11_dep = dependency('cli11', required: false)
76has_cli11 = meson.get_compiler('cpp').has_header_symbol(
77 'CLI/CLI.hpp',
78 'CLI::App',
79 dependencies: cli11_dep,
80 required: false)
81if not has_cli11
82 cli11_proj = subproject('cli11', required: false)
83 assert(cli11_proj.found(), 'CLI11 is required')
84 cli11_dep = cli11_proj.get_variable('CLI11_dep')
85endif
86
Brad Bishop59061732019-10-07 15:48:37 -040087executable(
88 'phosphor-hwmon-readd',
89 'readd.cpp',
William A. Kennington IIId3e87942021-05-05 12:26:53 -070090 dependencies: [
91 cli11_dep,
92 hwmon_dep,
93 ],
94 install: true)
Brad Bishop59061732019-10-07 15:48:37 -040095
Anton D. Kachalov5b520cf2021-02-03 23:19:39 +010096systemd_system_unit_dir = dependency('systemd').get_pkgconfig_variable(
97 'systemdsystemunitdir',
98 define_variable: ['prefix', get_option('prefix')])
99udev_dir = dependency('udev').get_pkgconfig_variable(
100 'udev_dir',
101 define_variable: ['prefix', get_option('prefix')])
102
103install_data(
104 'xyz.openbmc_project.Hwmon@.service',
105 install_dir: systemd_system_unit_dir
106)
107
108install_data(
109 'phosphor-hwmon.conf',
110 install_dir: get_option('sysconfdir') / 'dbus-1/system.d'
111)
112
113install_data(
114 ['70-hwmon.rules', '70-iio.rules'],
115 install_dir: udev_dir / 'rules.d'
116)
117
118install_data(
119 'start_hwmon.sh',
120 install_dir: get_option('bindir'),
121 install_mode: 'rwxr-xr-x'
122)
123
Brad Bishop59061732019-10-07 15:48:37 -0400124subdir('msl')
William A. Kennington IIIbb259732021-05-05 12:35:01 -0700125if not get_option('tests').disabled()
126 subdir('test')
127endif
Brad Bishop59061732019-10-07 15:48:37 -0400128subdir('tools')