blob: ba126e413770d527b93c2f99bd70016e2aaaac91 [file] [log] [blame]
Krzysztof Grobelny64b75a52020-09-18 10:17:16 +02001project(
2 'Telemetry',
3 'cpp',
4 meson_version: '>=0.55.0',
5 default_options: [
6 'buildtype=debugoptimized',
7 'cpp_std=c++17',
8 'cpp_rtti=false',
9 'warning_level=3',
10 'werror=true',
11 'b_lto=true',
12 ],
13 license: 'Apache-2.0',
14)
15
16cpp = meson.get_compiler('cpp')
17add_project_arguments(
18 cpp.get_supported_arguments([
19 '-DBOOST_ASIO_DISABLE_THREADS',
20 '-DBOOST_ALL_NO_LIB',
21 '-DBOOST_SYSTEM_NO_DEPRECATED',
22 '-DBOOST_ASIO_NO_DEPRECATED',
23 '-DBOOST_NO_RTTI',
24 '-DBOOST_NO_TYPEID',
25 '-Wno-unused-parameter',
26 ]),
27 language: 'cpp'
28)
29
30boost = dependency('boost', version: '>=1.73.0', required: false)
31if not boost.found()
32 subproject('boost', required: false)
33 boost = declare_dependency(include_directories: 'subprojects/boost_1_73_0')
34endif
35
36phosphor_logging = dependency('phosphor-logging', required: false)
37if not phosphor_logging.found()
38 subproject('phosphor-logging', required: false)
39 phosphor_logging = declare_dependency(
40 include_directories: 'subprojects/phosphor-logging'
41 )
42endif
43
44sdbusplus = dependency('sdbusplus',required : false)
45if not sdbusplus.found()
46 sdbusplus_proj = subproject('sdbusplus', required: true)
47 sdbusplus = sdbusplus_proj.get_variable('sdbusplus_dep')
48endif
49
50systemd = dependency('systemd')
51
52executable(
53 'telemetry',
54 [
55 'src/main.cpp',
56 'src/report_manager.cpp',
57 ],
58 dependencies: [
59 boost,
60 sdbusplus,
61 phosphor_logging,
62 ],
63 include_directories: 'src',
64 install: true,
65 install_dir: get_option('prefix') / get_option('bindir'),
66 pie: true,
67)
68
69configure_file(
70 input: 'xyz.openbmc_project.Telemetry.service.in',
71 output: 'xyz.openbmc_project.Telemetry.service',
72 configuration: {
73 'bindir': get_option('prefix') / get_option('bindir'),
74 },
75 install: true,
76 install_dir: systemd.get_pkgconfig_variable('systemdsystemunitdir'),
77)