1project( 2 'phosphor-virtual-sensor', 3 'cpp', 4 version: '1.0', 5 default_options: [ 6 'buildtype=debugoptimized', 7 'cpp_std=c++20', 8 'warning_level=3', 9 'werror=true', 10 ], 11 meson_version: '>=0.57.0', 12) 13 14cpp = 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 24if cpp.has_header('nlohmann/json.hpp') 25 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 35 36executable( 37 'virtual-sensor', 38 [ 39 'virtualSensor.cpp', 40 ], 41 dependencies: [ 42 dependency('phosphor-dbus-interfaces'), 43 dependency('phosphor-logging'), 44 dependency('sdbusplus'), 45 dependency('sdeventplus'), 46 exprtk, 47 nlohmann_json, 48 ], 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, 81 install_dir: systemd.get_variable(pkgconfig: 'systemdsystemunitdir')) 82