diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a6428e..8701467 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,39 +1,54 @@ -# Copyright 2019 Mike Dev +# Generated by `boostdep --cmake container` +# Copyright 2020 Peter Dimov # Distributed under the Boost Software License, Version 1.0. -# See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -# -# NOTE: CMake support for Boost.Container is currently experimental at best -# and the interface is likely to change in the future +# https://www.boost.org/LICENSE_1_0.txt -cmake_minimum_required( VERSION 3.5 ) -project( BoostContainer LANGUAGES C CXX ) +cmake_minimum_required(VERSION 3.5...3.16) -file( GLOB boost_container_cpp_files src/*.cpp ) +project(boost_container VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES C CXX) add_library(boost_container - ${boost_container_cpp_files} - src/alloc_lib.c + src/alloc_lib.c + src/dlmalloc.cpp + src/dlmalloc_2_8_6.c + src/dlmalloc_ext_2_8_6.c + src/global_resource.cpp + src/monotonic_buffer_resource.cpp + src/pool_resource.cpp + src/synchronized_pool_resource.cpp + src/unsynchronized_pool_resource.cpp ) -# This is the public target name, other libraries should link to -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 PUBLIC include) -# NOTE: -# We deactivate autolinking, because cmake based builds don't need it and -# we don't implement name mangling for the library file anyway. -# Ususally the parent CMakeLists.txt file should already have globally defined BOOST_ALL_NO_LIB -target_compile_definitions( boost_container PUBLIC BOOST_CONTAINER_NO_LIB ) - -target_link_libraries( boost_container - PUBLIC - Boost::assert - Boost::config - Boost::container_hash - Boost::core - Boost::intrusive - Boost::move - Boost::static_assert - Boost::type_traits +target_link_libraries(boost_container + PUBLIC + Boost::assert + Boost::config + Boost::core + Boost::intrusive + Boost::move + Boost::static_assert + Boost::type_traits + Boost::winapi ) + +target_compile_definitions(boost_container + PUBLIC BOOST_CONTAINER_NO_LIB + PRIVATE BOOST_CONTAINER_SOURCE +) + +if(BUILD_SHARED_LIBS) + target_compile_definitions(boost_container PUBLIC BOOST_CONTAINER_DYN_LINK) +else() + target_compile_definitions(boost_container PUBLIC BOOST_CONTAINER_STATIC_LINK) +endif() + +if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt") + + add_subdirectory(test) + +endif() +