1project( 2 'power-control', 3 'cpp', 4 default_options: [ 5 'warning_level=3', 6 'cpp_std=c++23' 7 ], 8 license: 'Apache-2.0', 9 version: '0.1', 10 meson_version: '>=1.1.1', 11) 12 13add_project_arguments( 14 '-Wno-psabi', 15 '-DBOOST_SYSTEM_NO_DEPRECATED', 16 '-DBOOST_ERROR_CODE_HEADER_ONLY', 17 '-DBOOST_NO_RTTI', 18 '-DBOOST_NO_TYPEID', 19 '-DBOOST_ALL_NO_LIB', 20 '-DBOOST_ASIO_DISABLE_THREADS', 21 language: 'cpp', 22) 23 24cpp_args = [] 25 26if get_option('chassis-system-reset').allowed() 27 cpp_args += '-DCHASSIS_SYSTEM_RESET' 28endif 29if get_option('use-plt-rst').allowed() 30 cpp_args += '-DUSE_PLT_RST' 31endif 32if get_option('use-acboot').allowed() 33 cpp_args += '-DUSE_ACBOOT' 34endif 35if get_option('ignore-soft-resets-during-post').allowed() 36 cpp_args += '-DIGNORE_SOFT_RESETS_DURING_POST' 37endif 38 39deps = [ 40 dependency('libgpiodcxx', default_options: ['bindings=cxx']), 41 dependency('systemd'), 42 dependency('sdbusplus'), 43 dependency('phosphor-logging'), 44 dependency('nlohmann_json', include_type: 'system'), 45 dependency('boost'), 46] 47 48executable( 49 'power-control', 50 'src/power_control.cpp', 51 include_directories: include_directories('src'), 52 cpp_args: cpp_args, 53 dependencies: deps, 54 install: true, 55 install_dir: get_option('bindir')) 56 57systemd = dependency('systemd') 58if systemd.found() 59 install_data( 60 'service_files/chassis-system-reset.service', 61 'service_files/chassis-system-reset.target', 62 'service_files/xyz.openbmc_project.Chassis.Control.Power@.service', 63 install_dir: systemd.get_variable('systemdsystemunitdir')) 64endif 65 66install_data( 67 'config/power-config-host0.json', 68 install_dir: '/usr/share/x86-power-control/') 69