1# needed to find external libraries not registered with package manager 2cmplr = meson.get_compiler('cpp') 3 4# async gpio monitor needs boost library 5boost_args = ['-DBOOST_ASIO_DISABLE_THREADS', 6 '-DBOOST_ERROR_CODE_HEADER_ONLY', 7 '-DBOOST_SYSTEM_NO_DEPRECATED'] 8 9# dependency to link sdbusplus support 10sdbusplus = dependency('sdbusplus', version : '>=1.0') 11 12# dependency to link gpiod support 13libgpiod = dependency('libgpiod', version : '>=1.4.1') 14 15# dependency to link libpdbg support 16libpdbg = cmplr.find_library('pdbg') 17 18# libpdbg requires linking with "whole-archive" option 19whole_archive = declare_dependency(link_args : '-Wl,--whole-archive') 20no_whole_archive = declare_dependency(link_args : '-Wl,--no-whole-archive') 21 22# install systemd unit file 23configure_file( 24 input: 'attn_handler.service', 25 output: 'attn_handler.service', 26 copy: true, 27 install_dir: 28 dependency('systemd').get_pkgconfig_variable( 29 'systemdsystemunitdir') 30) 31 32# see if phosphor-logging is available, if not use test case logging code 33h = 'phosphor-logging/log.hpp' 34if cmplr.compiles('#include <@0@>'.format(h), name : '#include <@0@>'.format(h)) 35 logging_src = 'logging.cpp' 36else 37 logging_src = '../test/end2end/logging.cpp' 38endif 39 40# gather attention sources to be used here and elsewhere if needed 41attn_src = files('attn_main.cpp', 'attn_handler.cpp', 'attn_monitor.cpp', 42 'bp_handler.cpp', 'ti_handler.cpp', logging_src, 43 'attention.cpp', 'attn_config.cpp') 44 45# Create attention handler library 46attn = static_library('attn_handler', 47 attn_src, 48 include_directories : incdir, 49 dependencies : [whole_archive, libpdbg, 50 no_whole_archive, sdbusplus, libgpiod], 51 cpp_args : boost_args, 52 install : true) 53