blob: 49ce8cb543b4fa7d829222989b1da9743537d3ec [file] [log] [blame]
Vijay Khemkaabcc94f2020-08-11 15:27:44 -07001project(
2 'phosphor-virtual-sensor',
3 'cpp',
4 version: '1.0',
5 default_options: [
Patrick Williamsff2df992021-08-26 10:23:08 -05006 'buildtype=debugoptimized',
Patrick Williams202842d2021-04-16 16:23:39 -05007 'cpp_std=c++20',
Patrick Williamsff2df992021-08-26 10:23:08 -05008 'warning_level=3',
9 'werror=true',
Vijay Khemkaabcc94f2020-08-11 15:27:44 -070010 ],
Patrick Williams202842d2021-04-16 16:23:39 -050011 meson_version: '>=0.57.0',
Vijay Khemkaabcc94f2020-08-11 15:27:44 -070012)
13
Vijay Khemka3ed9a512020-08-21 16:13:05 -070014cpp = meson.get_compiler('cpp')
15if cpp.has_header('exprtk.hpp')
16 exprtk = declare_dependency()
17else
18 subproject('exprtk', required: false)
19 exprtk = declare_dependency(
20 include_directories: 'subprojects/exprtk'
21 )
22endif
23
Patrick Williamsd9aa2272021-04-27 16:38:07 -050024if cpp.has_header('nlohmann/json.hpp')
Patrick Williams8d5dff52021-04-16 10:52:54 -050025 nlohmann_json = declare_dependency()
26else
27 subproject('nlohmann-json')
28 nlohmann_json = declare_dependency(
29 include_directories: [
30 'subprojects/nlohmann-json/single_include',
31 'subprojects/nlohmann-json/single_include/nlohmann',
32 ]
33 )
34endif
Vijay Khemka3ed9a512020-08-21 16:13:05 -070035
Vijay Khemkaabcc94f2020-08-11 15:27:44 -070036executable(
37 'virtual-sensor',
38 [
39 'virtualSensor.cpp',
40 ],
41 dependencies: [
Patrick Williamsb729eac2022-03-21 10:14:47 -050042 dependency('phosphor-dbus-interfaces'),
43 dependency('phosphor-logging'),
44 dependency('sdbusplus'),
45 dependency('sdeventplus'),
Vijay Khemka3ed9a512020-08-21 16:13:05 -070046 exprtk,
Patrick Williams8d5dff52021-04-16 10:52:54 -050047 nlohmann_json,
Vijay Khemkaabcc94f2020-08-11 15:27:44 -070048 ],
49 install: true,
50 install_dir: get_option('bindir')
51)
52
53packagedir = join_paths(
54 get_option('prefix'),
55 get_option('datadir'),
56 meson.project_name(),
57)
58
59configfile = 'virtual_sensor_config.json'
60confpath = '"' + join_paths(
61 packagedir,
62 configfile,
63) + '"'
64
65install_data(sources : configfile, install_dir : packagedir)
66
67conf_data = configuration_data()
68conf_data.set('VIRTUAL_SENSOR_CONFIG_FILE', confpath)
69
70configure_file(output : 'config.hpp',
71 configuration : conf_data)
72
73systemd = dependency('systemd')
74conf_data = configuration_data()
75conf_data.set('bindir', get_option('prefix') / get_option('bindir'))
76configure_file(
77 input: 'phosphor-virtual-sensor.service.in',
78 output: 'phosphor-virtual-sensor.service',
79 configuration: conf_data,
80 install: true,
George Liufe3214e2021-12-29 15:00:57 +080081 install_dir: systemd.get_variable(pkgconfig: 'systemdsystemunitdir'))