1project(
2    'openpower-debug-collector',
3    'cpp',
4    meson_version: '>= 0.57.0',
5    default_options: [
6        'warning_level=3',
7        'werror=true',
8        'cpp_std=c++20'
9    ],
10    license: 'Apache-2.0',
11    version: '1.0.0',
12)
13
14systemd = dependency('systemd', required : true)
15
16sdbusplus = dependency(
17    'sdbusplus',
18    fallback: [
19        'sdbusplus',
20        'sdbusplus_dep'
21    ]
22)
23sdbusplusplus_prog = find_program('sdbus++', required : true)
24sdbuspp_gen_meson_prog = find_program('sdbus++-gen-meson', required : true)
25
26phosphorlogging = dependency(
27    'phosphor-logging',
28    fallback: [
29        'phosphor-logging',
30        'phosphor_logging_dep'
31    ]
32)
33
34deps = [
35    systemd, sdbusplus, phosphorlogging
36]
37
38realpath_prog = find_program('realpath')
39
40selected_subdirs = []
41selected_subdirs += 'org/open_power'
42
43generated_root = meson.current_build_dir() / 'gen'
44generated_others = []
45generated_sources = []
46
47# Source the generated meson files
48subdir('gen')
49foreach d : selected_subdirs
50    subdir('gen' / d)
51endforeach
52
53# Parse through the list from sdbus++-gendir and put into sets.
54generated_headers = []
55generated_cpp = []
56generated_others_files = []
57
58foreach g : generated_sources generated_others
59    foreach f : g.to_list()
60        rel_path = run_command(
61            realpath_prog,
62            '--relative-to', generated_root,
63            f.full_path(),
64        ).stdout().strip().split('\n')[-1]
65
66        if rel_path.endswith('.hpp')
67            generated_headers += rel_path
68        elif rel_path.endswith('.cpp')
69            generated_cpp += rel_path
70        else
71            generated_others_files += rel_path
72        endif
73    endforeach
74endforeach
75
76executable('watchdog_timeout',
77    'watchdog_timeout.cpp',
78    generated_sources,
79    dependencies: deps,
80    include_directories: include_directories('gen'),
81    implicit_include_directories: true,
82    install: true
83)
84
85executable('checkstop_app',
86    'checkstop_app.cpp',
87    generated_sources,
88    dependencies: deps,
89    include_directories: include_directories('gen'),
90    implicit_include_directories: true,
91    install: true
92)
93