blob: 0f5912bf7a5b7a3ee9eb81632b2dab9d10b22e67 [file] [log] [blame]
project(
'ipmbbridge',
'cpp',
version: '0.1',
meson_version: '>=1.1.1',
default_options: [
'warning_level=3',
'werror=true',
'cpp_std=c++23',
'b_lto=true',
],
)
cpp = meson.get_compiler('cpp')
add_project_arguments(
cpp.get_supported_arguments(
[
'-DBOOST_ERROR_CODE_HEADER_ONLY',
'-DBOOST_SYSTEM_NO_DEPRECATED',
'-DBOOST_ALL_NO_LIB',
'-DBOOST_NO_RTTI',
'-DBOOST_NO_TYPEID',
'-DBOOST_ASIO_DISABLE_THREADS',
],
),
language: 'cpp',
)
boost_dep = dependency(
'boost',
modules: ['coroutine'],
include_type: 'system',
required: false,
)
if not boost_dep.found()
cmake = import('cmake')
opt = cmake.subproject_options()
opt.add_cmake_defines(
{'BOOST_INCLUDE_LIBRARIES': 'asio;callable_traits;context;coroutine'},
)
boost_cmake = cmake.subproject('boost', required: true, options: opt)
boost_asio = boost_cmake.dependency('boost_asio').as_system()
boost_callable_traits = boost_cmake.dependency('boost_callable_traits').as_system()
boost_context = boost_cmake.dependency('boost_context').as_system()
boost_coroutine = boost_cmake.dependency('boost_coroutine').as_system()
boost_dep = [
boost_asio,
boost_callable_traits,
boost_context,
boost_coroutine,
]
endif
i2c_dep = cpp.find_library('i2c')
nlohmann_json_dep = dependency('nlohmann_json', include_type: 'system')
phosphor_logging_dep = dependency('phosphor-logging')
sdbusplus_dep = dependency('sdbusplus')
systemd_dep = dependency('systemd')
executable(
'ipmbbridged',
'ipmbbridged.cpp',
'ipmbutils.cpp',
dependencies: [
boost_dep,
i2c_dep,
nlohmann_json_dep,
phosphor_logging_dep,
sdbusplus_dep,
],
install: true,
)
install_data(
'ipmb.service',
install_dir: systemd_dep.get_variable('systemdsystemunitdir'),
)
install_data(
'ipmb-channels.json',
install_dir: get_option('datadir') / 'ipmbbridge',
)