mirror of
https://github.com/XRPLF/rippled.git
synced 2026-04-29 15:37:57 +00:00
61 lines
1.4 KiB
CMake
61 lines
1.4 KiB
CMake
include(CompilationEnv)
|
|
include(XrplSanitizers)
|
|
|
|
find_package(
|
|
Boost
|
|
REQUIRED
|
|
COMPONENTS
|
|
chrono
|
|
container
|
|
coroutine
|
|
date_time
|
|
filesystem
|
|
json
|
|
program_options
|
|
regex
|
|
system
|
|
thread
|
|
)
|
|
|
|
add_library(xrpl_boost INTERFACE)
|
|
add_library(Xrpl::boost ALIAS xrpl_boost)
|
|
|
|
target_link_libraries(
|
|
xrpl_boost
|
|
INTERFACE
|
|
Boost::headers
|
|
Boost::chrono
|
|
Boost::container
|
|
Boost::coroutine
|
|
Boost::date_time
|
|
Boost::filesystem
|
|
Boost::json
|
|
Boost::process
|
|
Boost::program_options
|
|
Boost::regex
|
|
Boost::thread
|
|
)
|
|
if(Boost_COMPILER)
|
|
target_link_libraries(xrpl_boost INTERFACE Boost::disable_autolinking)
|
|
endif()
|
|
if(SANITIZERS_ENABLED AND is_clang)
|
|
# TODO: gcc does not support -fsanitize-blacklist...can we do something else for gcc ?
|
|
if(NOT Boost_INCLUDE_DIRS AND TARGET Boost::headers)
|
|
get_target_property(
|
|
Boost_INCLUDE_DIRS
|
|
Boost::headers
|
|
INTERFACE_INCLUDE_DIRECTORIES
|
|
)
|
|
endif()
|
|
message(STATUS "Adding [${Boost_INCLUDE_DIRS}] to sanitizer blacklist")
|
|
file(
|
|
WRITE ${CMAKE_CURRENT_BINARY_DIR}/san_bl.txt
|
|
"src:${Boost_INCLUDE_DIRS}/*"
|
|
)
|
|
target_compile_options(
|
|
opts
|
|
INTERFACE # ignore boost headers for sanitizing
|
|
-fsanitize-blacklist=${CMAKE_CURRENT_BINARY_DIR}/san_bl.txt
|
|
)
|
|
endif()
|