mirror of
https://github.com/boostorg/container.git
synced 2026-01-19 04:02:17 +00:00
Add option to use header-only Boost::container
This commit is contained in:
@@ -6,22 +6,31 @@ cmake_minimum_required(VERSION 3.5...3.16)
|
|||||||
|
|
||||||
project(boost_container VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES C CXX)
|
project(boost_container VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES C CXX)
|
||||||
|
|
||||||
add_library(boost_container
|
option(BOOST_CONTAINER_HEADER_ONLY "Disable Extended Allocators and some Polymorphic Memory Resources classes" OFF)
|
||||||
src/alloc_lib.c
|
|
||||||
src/dlmalloc.cpp
|
if(BOOST_CONTAINER_HEADER_ONLY)
|
||||||
src/global_resource.cpp
|
add_library(boost_container INTERFACE)
|
||||||
src/monotonic_buffer_resource.cpp
|
set(_populate INTERFACE)
|
||||||
src/pool_resource.cpp
|
else()
|
||||||
src/synchronized_pool_resource.cpp
|
add_library(boost_container
|
||||||
src/unsynchronized_pool_resource.cpp
|
src/alloc_lib.c
|
||||||
)
|
src/dlmalloc.cpp
|
||||||
|
src/global_resource.cpp
|
||||||
|
src/monotonic_buffer_resource.cpp
|
||||||
|
src/pool_resource.cpp
|
||||||
|
src/synchronized_pool_resource.cpp
|
||||||
|
src/unsynchronized_pool_resource.cpp
|
||||||
|
)
|
||||||
|
set(_populate PUBLIC)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
add_library(Boost::container ALIAS boost_container)
|
add_library(Boost::container ALIAS boost_container)
|
||||||
|
|
||||||
target_include_directories(boost_container PUBLIC include)
|
target_include_directories(boost_container ${_populate} include)
|
||||||
|
|
||||||
target_link_libraries(boost_container
|
target_link_libraries(boost_container
|
||||||
PUBLIC
|
${_populate}
|
||||||
Boost::assert
|
Boost::assert
|
||||||
Boost::config
|
Boost::config
|
||||||
Boost::intrusive
|
Boost::intrusive
|
||||||
@@ -29,15 +38,17 @@ target_link_libraries(boost_container
|
|||||||
)
|
)
|
||||||
|
|
||||||
target_compile_definitions(boost_container
|
target_compile_definitions(boost_container
|
||||||
PUBLIC BOOST_CONTAINER_NO_LIB
|
${_populate} BOOST_CONTAINER_NO_LIB
|
||||||
# Source files already define BOOST_CONTAINER_SOURCE
|
# Source files already define BOOST_CONTAINER_SOURCE
|
||||||
# PRIVATE BOOST_CONTAINER_SOURCE
|
# PRIVATE BOOST_CONTAINER_SOURCE
|
||||||
)
|
)
|
||||||
|
|
||||||
if(BUILD_SHARED_LIBS)
|
if(NOT BOOST_CONTAINER_HEADER_ONLY)
|
||||||
target_compile_definitions(boost_container PUBLIC BOOST_CONTAINER_DYN_LINK)
|
if(BUILD_SHARED_LIBS)
|
||||||
else()
|
target_compile_definitions(boost_container ${_populate} BOOST_CONTAINER_DYN_LINK)
|
||||||
target_compile_definitions(boost_container PUBLIC BOOST_CONTAINER_STATIC_LINK)
|
else()
|
||||||
|
target_compile_definitions(boost_container ${_populate} BOOST_CONTAINER_STATIC_LINK)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
|
if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
|
||||||
|
|||||||
Reference in New Issue
Block a user