164b75a5bSKrzysztof Grobelnyproject( 264b75a5bSKrzysztof Grobelny 'Telemetry', 364b75a5bSKrzysztof Grobelny 'cpp', 40e29f439SWludzik, Jozef meson_version: '>=0.54.3', 564b75a5bSKrzysztof Grobelny default_options: [ 664b75a5bSKrzysztof Grobelny 'buildtype=debugoptimized', 764b75a5bSKrzysztof Grobelny 'cpp_std=c++17', 8a4bf740cSWludzik, Jozef # TODO: Without RTTI telemetry does not build using Boost 1.74.0 9a4bf740cSWludzik, Jozef # https://github.com/chriskohlhoff/asio/issues/533 10a4bf740cSWludzik, Jozef #'cpp_rtti=false', 1164b75a5bSKrzysztof Grobelny 'warning_level=3', 1264b75a5bSKrzysztof Grobelny 'werror=true', 1364b75a5bSKrzysztof Grobelny 'b_lto=true', 1464b75a5bSKrzysztof Grobelny ], 1564b75a5bSKrzysztof Grobelny license: 'Apache-2.0', 1664b75a5bSKrzysztof Grobelny) 1764b75a5bSKrzysztof Grobelny 1864b75a5bSKrzysztof Grobelnycpp = meson.get_compiler('cpp') 1964b75a5bSKrzysztof Grobelnyadd_project_arguments( 2064b75a5bSKrzysztof Grobelny cpp.get_supported_arguments([ 2164b75a5bSKrzysztof Grobelny '-DBOOST_ASIO_DISABLE_THREADS', 2264b75a5bSKrzysztof Grobelny '-DBOOST_ALL_NO_LIB', 2364b75a5bSKrzysztof Grobelny '-DBOOST_SYSTEM_NO_DEPRECATED', 2464b75a5bSKrzysztof Grobelny '-DBOOST_ASIO_NO_DEPRECATED', 2564b75a5bSKrzysztof Grobelny '-DBOOST_NO_RTTI', 2664b75a5bSKrzysztof Grobelny '-DBOOST_NO_TYPEID', 27596a9945SWludzik, Jozef # TODO: Removed below arg after upgrade to Boost 1.75 28596a9945SWludzik, Jozef '-DBOOST_ALLOW_DEPRECATED_HEADERS', 2964b75a5bSKrzysztof Grobelny '-Wno-unused-parameter', 3064b75a5bSKrzysztof Grobelny ]), 3164b75a5bSKrzysztof Grobelny language: 'cpp' 3264b75a5bSKrzysztof Grobelny) 3364b75a5bSKrzysztof Grobelny 34b5645947SKrzysztof Grobelnyboost = dependency( 35b5645947SKrzysztof Grobelny 'boost', 36b5645947SKrzysztof Grobelny version: '>=1.74.0', 37b5645947SKrzysztof Grobelny required: false, 38b5645947SKrzysztof Grobelny modules: ['coroutine']) 39596a9945SWludzik, Jozefassert(boost.found(), 40596a9945SWludzik, Jozef 'Missing Boost 1.74.0 or higher, as WA you can set BOOST_ROOT ' + 41596a9945SWludzik, Jozef 'environemt to point at boost build. To build a boost you can use ' + 42596a9945SWludzik, Jozef 'script ./scripts/boost_build_1.74.0.sh') 4364b75a5bSKrzysztof Grobelny 4464b75a5bSKrzysztof Grobelnyphosphor_logging = dependency('phosphor-logging', required: false) 4564b75a5bSKrzysztof Grobelnyif not phosphor_logging.found() 4664b75a5bSKrzysztof Grobelny subproject('phosphor-logging', required: false) 4764b75a5bSKrzysztof Grobelny phosphor_logging = declare_dependency( 4864b75a5bSKrzysztof Grobelny include_directories: 'subprojects/phosphor-logging' 4964b75a5bSKrzysztof Grobelny ) 5064b75a5bSKrzysztof Grobelnyendif 5164b75a5bSKrzysztof Grobelny 52596a9945SWludzik, Jozefsdbusplus = dependency('sdbusplus', fallback: ['sdbusplus', 'sdbusplus_dep']) 5364b75a5bSKrzysztof Grobelnysystemd = dependency('systemd') 5464b75a5bSKrzysztof Grobelny 5573da6906SKrzysztof Grobelnyif cpp.has_header('nlohmann/json.hpp') 5673da6906SKrzysztof Grobelny nlohmann_json = declare_dependency() 5773da6906SKrzysztof Grobelnyelse 58596a9945SWludzik, Jozef nlohmann_json = dependency('nlohmann_json', 59596a9945SWludzik, Jozef fallback: ['nlohmann', 'nlohmann_json_dep']) 6073da6906SKrzysztof Grobelnyendif 6173da6906SKrzysztof Grobelny 62503c1589SWludzik, Jozefadd_project_arguments( 63503c1589SWludzik, Jozef '-DTELEMETRY_MAX_REPORTS=' + get_option('max-reports').to_string(), 64596a9945SWludzik, Jozef '-DTELEMETRY_MAX_READING_PARAMS=' + 65596a9945SWludzik, Jozef get_option('max-reading-parameters').to_string(), 66503c1589SWludzik, Jozef '-DTELEMETRY_MIN_INTERVAL=' + get_option('min-interval').to_string(), 6776833cb5SWludzik, Jozef '-DTELEMETRY_MAX_TRIGGERS=' + get_option('max-triggers').to_string(), 6832859b63SKarol Niczyj '-DTELEMETRY_MAX_REPORT_NAME_LENGTH=' + 6932859b63SKarol Niczyj get_option('max-report-name-length').to_string(), 70503c1589SWludzik, Jozef language: 'cpp' 71503c1589SWludzik, Jozef) 72503c1589SWludzik, Jozef 7364b75a5bSKrzysztof Grobelnyexecutable( 7464b75a5bSKrzysztof Grobelny 'telemetry', 7564b75a5bSKrzysztof Grobelny [ 76f763c9e3SSzymon Dompke 'src/discrete_threshold.cpp', 7764b75a5bSKrzysztof Grobelny 'src/main.cpp', 78c8e3a64aSKrzysztof Grobelny 'src/metric.cpp', 791477fe6aSWludzik, Jozef 'src/numeric_threshold.cpp', 80f763c9e3SSzymon Dompke 'src/on_change_threshold.cpp', 817f06f613SKrzysztof Grobelny 'src/persistent_json_storage.cpp', 82cb88cfdfSWludzik, Jozef 'src/report.cpp', 832f9f9b87SWludzik, Jozef 'src/report_factory.cpp', 8464b75a5bSKrzysztof Grobelny 'src/report_manager.cpp', 85b5645947SKrzysztof Grobelny 'src/sensor.cpp', 867f06f613SKrzysztof Grobelny 'src/sensor_cache.cpp', 8776833cb5SWludzik, Jozef 'src/trigger.cpp', 88d960e1f3SWludzik, Jozef 'src/trigger_actions.cpp', 8976833cb5SWludzik, Jozef 'src/trigger_factory.cpp', 9076833cb5SWludzik, Jozef 'src/trigger_manager.cpp', 91*dcc4e193SKrzysztof Grobelny 'src/types/report_types.cpp', 924416fce6SCezary Zwolak 'src/utils/conversion_trigger.cpp', 9364b75a5bSKrzysztof Grobelny ], 9464b75a5bSKrzysztof Grobelny dependencies: [ 9564b75a5bSKrzysztof Grobelny boost, 9673da6906SKrzysztof Grobelny nlohmann_json, 9764b75a5bSKrzysztof Grobelny sdbusplus, 9864b75a5bSKrzysztof Grobelny phosphor_logging, 9964b75a5bSKrzysztof Grobelny ], 10064b75a5bSKrzysztof Grobelny include_directories: 'src', 10164b75a5bSKrzysztof Grobelny install: true, 10264b75a5bSKrzysztof Grobelny install_dir: get_option('prefix') / get_option('bindir'), 10364b75a5bSKrzysztof Grobelny pie: true, 10464b75a5bSKrzysztof Grobelny) 10564b75a5bSKrzysztof Grobelny 10664b75a5bSKrzysztof Grobelnyconfigure_file( 10764b75a5bSKrzysztof Grobelny input: 'xyz.openbmc_project.Telemetry.service.in', 10864b75a5bSKrzysztof Grobelny output: 'xyz.openbmc_project.Telemetry.service', 10964b75a5bSKrzysztof Grobelny configuration: { 11064b75a5bSKrzysztof Grobelny 'bindir': get_option('prefix') / get_option('bindir'), 11164b75a5bSKrzysztof Grobelny }, 11264b75a5bSKrzysztof Grobelny install: true, 11364b75a5bSKrzysztof Grobelny install_dir: systemd.get_pkgconfig_variable('systemdsystemunitdir'), 11464b75a5bSKrzysztof Grobelny) 11573da6906SKrzysztof Grobelny 11673da6906SKrzysztof Grobelnyif get_option('buildtest') 11773da6906SKrzysztof Grobelny subdir('tests') 11873da6906SKrzysztof Grobelnyendif 119