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