1project( 2 'openpower-debug-collector', 3 'cpp', 4 meson_version: '>=1.1.1', 5 default_options: [ 6 'warning_level=3', 7 'werror=true', 8 'cpp_std=c++23' 9 ], 10 license: 'Apache-2.0', 11 version: '1.0.0', 12) 13 14systemd = dependency('systemd', required : true) 15 16sdbusplus_dep = dependency('sdbusplus') 17sdbusplusplus_prog = find_program('sdbus++') 18sdbuspp_gen_meson_prog = find_program('sdbus++-gen-meson') 19sdbusplusplus_depfiles = files() 20if sdbusplus_dep.type_name() == 'internal' 21 sdbusplusplus_depfiles = subproject('sdbusplus').get_variable('sdbusplusplus_depfiles') 22endif 23 24phosphorlogging = dependency( 25 'phosphor-logging', 26 fallback: [ 27 'phosphor-logging', 28 'phosphor_logging_dep' 29 ] 30) 31 32realpath_prog = find_program('realpath') 33 34selected_subdirs = [] 35selected_subdirs += 'org/open_power' 36 37generated_root = meson.current_build_dir() / 'gen' 38generated_others = [] 39generated_sources = [] 40 41# Source the generated meson files 42subdir('gen') 43foreach d : selected_subdirs 44 subdir('gen' / d) 45endforeach 46 47# Parse through the list from sdbus++-gendir and put into sets. 48generated_headers = [] 49generated_cpp = [] 50generated_others_files = [] 51 52foreach g : generated_sources generated_others 53 foreach f : g.to_list() 54 rel_path = run_command( 55 realpath_prog, 56 '--relative-to', generated_root, 57 f.full_path(), 58 ).stdout().strip().split('\n')[-1] 59 60 if rel_path.endswith('.hpp') 61 generated_headers += rel_path 62 elif rel_path.endswith('.cpp') 63 generated_cpp += rel_path 64 else 65 generated_others_files += rel_path 66 endif 67 endforeach 68endforeach 69 70cxx = meson.get_compiler('cpp') 71conf_data = configuration_data() 72if get_option('hostboot-dump-collection').enabled() 73 conf_data.set('WATCHDOG_DUMP_COLLECTION', true) 74 extra_deps = [ 75 cxx.find_library('pdbg'), 76 cxx.find_library('libdt-api'), 77 cxx.find_library('phal') 78 ] 79 subdir('watchdog') 80else 81 conf_data.set('WATCHDOG_DUMP_COLLECTION', false) 82 watchdog_lib = [] 83 extra_deps = [] 84endif 85 86configure_file(output: 'config.h', configuration: conf_data) 87 88deps = [ 89 systemd, 90 sdbusplus_dep, 91 phosphorlogging, 92 extra_deps 93] 94 95executable('watchdog_timeout', 96 'watchdog_timeout.cpp', 97 generated_sources, 98 dependencies: deps, 99 link_with: watchdog_lib, 100 include_directories: include_directories('gen'), 101 implicit_include_directories: true, 102 install: true 103) 104 105executable('checkstop_app', 106 'checkstop_app.cpp', 107 generated_sources, 108 dependencies: deps, 109 include_directories: include_directories('gen'), 110 implicit_include_directories: true, 111 install: true 112) 113