xref: /openbmc/phosphor-virtual-sensor/meson.build (revision 4b98de56a69895d0c26e9abd6e236a73a236263a)
1abcc94faSVijay Khemkaproject(
2abcc94faSVijay Khemka    'phosphor-virtual-sensor',
3abcc94faSVijay Khemka    'cpp',
4abcc94faSVijay Khemka    version: '1.0',
5abcc94faSVijay Khemka    default_options: [
6ff2df996SPatrick Williams        'buildtype=debugoptimized',
7ce4241cbSPatrick Williams        'cpp_std=c++23',
8ff2df996SPatrick Williams        'warning_level=3',
9ff2df996SPatrick Williams        'werror=true',
10abcc94faSVijay Khemka    ],
11ce4241cbSPatrick Williams    meson_version: '>=1.1.1',
12abcc94faSVijay Khemka)
13abcc94faSVijay Khemka
143ed9a516SVijay Khemkacpp = meson.get_compiler('cpp')
153ed9a516SVijay Khemkaif cpp.has_header('exprtk.hpp')
163ed9a516SVijay Khemka    exprtk = declare_dependency()
173ed9a516SVijay Khemkaelse
183ed9a516SVijay Khemka    subproject('exprtk', required: false)
19*4b98de56SPatrick Williams    exprtk = declare_dependency(include_directories: 'subprojects/exprtk')
203ed9a516SVijay Khemkaendif
213ed9a516SVijay Khemka
22abcc94faSVijay Khemkaexecutable(
23abcc94faSVijay Khemka    'virtual-sensor',
24abcc94faSVijay Khemka    [
257f41a0d4SGeorge Liu        'calculate.cpp',
26f2e94221STao Lin        'dbusSensor.cpp',
27f2e94221STao Lin        'dbusUtils.cpp',
28d98174e9SGeorge Liu        'main.cpp',
29d98174e9SGeorge Liu        'virtualSensor.cpp',
30abcc94faSVijay Khemka    ],
31abcc94faSVijay Khemka    dependencies: [
3296439f1fSPatrick Williams        dependency('nlohmann_json', include_type: 'system'),
33b729eac5SPatrick Williams        dependency('phosphor-dbus-interfaces'),
34b729eac5SPatrick Williams        dependency('phosphor-logging'),
35b729eac5SPatrick Williams        dependency('sdbusplus'),
363ed9a516SVijay Khemka        exprtk,
37abcc94faSVijay Khemka    ],
38abcc94faSVijay Khemka    install: true,
39*4b98de56SPatrick Williams    install_dir: get_option('bindir'),
40abcc94faSVijay Khemka)
41abcc94faSVijay Khemka
42abcc94faSVijay Khemkapackagedir = join_paths(
43abcc94faSVijay Khemka    get_option('prefix'),
44abcc94faSVijay Khemka    get_option('datadir'),
45abcc94faSVijay Khemka    meson.project_name(),
46abcc94faSVijay Khemka)
47abcc94faSVijay Khemka
4832dff21bSPatrick Williamsinstall_data(sources: 'virtual_sensor_config.json', install_dir: packagedir)
49abcc94faSVijay Khemka
50abcc94faSVijay Khemkasystemd = dependency('systemd')
51abcc94faSVijay Khemkaconf_data = configuration_data()
52abcc94faSVijay Khemkaconf_data.set('bindir', get_option('prefix') / get_option('bindir'))
53abcc94faSVijay Khemkaconfigure_file(
54abcc94faSVijay Khemka    input: 'phosphor-virtual-sensor.service.in',
55abcc94faSVijay Khemka    output: 'phosphor-virtual-sensor.service',
56abcc94faSVijay Khemka    configuration: conf_data,
57abcc94faSVijay Khemka    install: true,
58*4b98de56SPatrick Williams    install_dir: systemd.get_variable('systemdsystemunitdir'),
59*4b98de56SPatrick Williams)
6014ef8742SLei YU
6114ef8742SLei YUbuild_tests = get_option('tests')
6276e6c5afSPatrick Williamsif build_tests.allowed()
6314ef8742SLei YU    subdir('test')
6414ef8742SLei YUendif
65