]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/container/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / container / CMakeLists.txt
index 8a6428e051cdab842cbc09a39b80ca94750151e6..88fbcac42cb9b5b8f3f37476d290bde9611563f6 100644 (file)
@@ -1,39 +1,51 @@
-# Copyright 2019 Mike Dev
+# Copyright 2020, 2021 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/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 )
-
-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
+add_library(Boost::container ALIAS boost_container)
+
+target_include_directories(boost_container PUBLIC include)
+
+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
+  # Source files already define BOOST_CONTAINER_SOURCE
+  # 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()