Initial implementation of Telemetry service
Implemented main application of Telemetry service.
Added ReportManager interface. Added MaxReports and
PollRateResolution properties to ReportManager interface.
Implemented simple logger.
Tested:
- Built without Yocto and ran on x86 platform with success
- Added telemetry to romulus image using
recipe-phosphor/telemetry from meta-phosphor repository
- Started as service in romulus image in QEMU with success
- Verified that all added properties are present in dbus
Change-Id: I26af7a19b1f9cac32e9e9da65523d72a36e13855
Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com>
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..ba126e4
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,77 @@
+project(
+ 'Telemetry',
+ 'cpp',
+ meson_version: '>=0.55.0',
+ default_options: [
+ 'buildtype=debugoptimized',
+ 'cpp_std=c++17',
+ 'cpp_rtti=false',
+ 'warning_level=3',
+ 'werror=true',
+ 'b_lto=true',
+ ],
+ license: 'Apache-2.0',
+)
+
+cpp = meson.get_compiler('cpp')
+add_project_arguments(
+ cpp.get_supported_arguments([
+ '-DBOOST_ASIO_DISABLE_THREADS',
+ '-DBOOST_ALL_NO_LIB',
+ '-DBOOST_SYSTEM_NO_DEPRECATED',
+ '-DBOOST_ASIO_NO_DEPRECATED',
+ '-DBOOST_NO_RTTI',
+ '-DBOOST_NO_TYPEID',
+ '-Wno-unused-parameter',
+ ]),
+ language: 'cpp'
+)
+
+boost = dependency('boost', version: '>=1.73.0', required: false)
+if not boost.found()
+ subproject('boost', required: false)
+ boost = declare_dependency(include_directories: 'subprojects/boost_1_73_0')
+endif
+
+phosphor_logging = dependency('phosphor-logging', required: false)
+if not phosphor_logging.found()
+ subproject('phosphor-logging', required: false)
+ phosphor_logging = declare_dependency(
+ include_directories: 'subprojects/phosphor-logging'
+ )
+endif
+
+sdbusplus = dependency('sdbusplus',required : false)
+if not sdbusplus.found()
+ sdbusplus_proj = subproject('sdbusplus', required: true)
+ sdbusplus = sdbusplus_proj.get_variable('sdbusplus_dep')
+endif
+
+systemd = dependency('systemd')
+
+executable(
+ 'telemetry',
+ [
+ 'src/main.cpp',
+ 'src/report_manager.cpp',
+ ],
+ dependencies: [
+ boost,
+ sdbusplus,
+ phosphor_logging,
+ ],
+ include_directories: 'src',
+ install: true,
+ install_dir: get_option('prefix') / get_option('bindir'),
+ pie: true,
+)
+
+configure_file(
+ input: 'xyz.openbmc_project.Telemetry.service.in',
+ output: 'xyz.openbmc_project.Telemetry.service',
+ configuration: {
+ 'bindir': get_option('prefix') / get_option('bindir'),
+ },
+ install: true,
+ install_dir: systemd.get_pkgconfig_variable('systemdsystemunitdir'),
+)