]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/chrono/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / chrono / CMakeLists.txt
index 038b475c196dea564b3af3e40fe085562a5205e9..8378cbf581be41ca91710dda007ef2fd6ec14f1d 100644 (file)
@@ -1,48 +1,54 @@
-# 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.Chrono is currently experimental at best
-#       and the interface is likely to change in the future
-
-cmake_minimum_required( VERSION 3.5 )
-project( BoostChrono LANGUAGES CXX)
-
-add_library( boost_chrono
-    src/chrono.cpp
-    src/process_cpu_clocks.cpp
-    src/thread_clock.cpp
+# https://www.boost.org/LICENSE_1_0.txt
+
+cmake_minimum_required(VERSION 3.5...3.16)
+
+project(boost_chrono VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
+
+add_library(boost_chrono
+  src/chrono.cpp
+  src/process_cpu_clocks.cpp
+  src/thread_clock.cpp
 )
-add_library( Boost::chrono ALIAS boost_chrono )
-
-target_include_directories( boost_chrono PUBLIC include )
-target_compile_definitions( boost_chrono
-    PUBLIC
-        # 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
-        BOOST_CHRONO_NO_LIB
-        $<$<STREQUAL:$<TARGET_PROPERTY:boost_chrono,TYPE>,SHARED_LIBRARY>:BOOST_CHRONO_DYN_LINK=1>
-        $<$<STREQUAL:$<TARGET_PROPERTY:boost_chrono,TYPE>,STATIC_LIBRARY>:BOOST_CHRONO_STATIC_LINK=1>
+
+add_library(Boost::chrono ALIAS boost_chrono)
+
+target_include_directories(boost_chrono PUBLIC include)
+
+target_link_libraries(boost_chrono
+  PUBLIC
+    Boost::assert
+    Boost::config
+    Boost::core
+    Boost::integer
+    Boost::move
+    Boost::mpl
+    Boost::predef
+    Boost::ratio
+    Boost::static_assert
+    Boost::system
+    Boost::throw_exception
+    Boost::type_traits
+    Boost::typeof
+    Boost::utility
+    Boost::winapi
 )
 
-target_link_libraries( boost_chrono
-    PUBLIC
-        Boost::assert
-        Boost::config
-        Boost::core
-        Boost::integer
-        Boost::move
-        Boost::mpl
-        Boost::predef
-        Boost::ratio
-        Boost::static_assert
-        Boost::system
-        Boost::throw_exception
-        Boost::type_traits
-        Boost::typeof
-        Boost::utility
-     PRIVATE
-        $<$<STREQUAL:Windows,$<PLATFORM_ID>>:Boost::winapi>
+target_compile_definitions(boost_chrono
+  PUBLIC BOOST_CHRONO_NO_LIB
+  # Source files already define BOOST_CHRONO_SOURCE
+  # PRIVATE BOOST_CHRONO_SOURCE
 )
+
+if(BUILD_SHARED_LIBS)
+  target_compile_definitions(boost_chrono PUBLIC BOOST_CHRONO_DYN_LINK)
+else()
+  target_compile_definitions(boost_chrono PUBLIC BOOST_CHRONO_STATIC_LINK)
+endif()
+
+if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
+
+  add_subdirectory(test)
+
+endif()