]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: detect if std::map::merge() is supported
authorKefu Chai <kchai@redhat.com>
Tue, 3 Apr 2018 12:00:14 +0000 (20:00 +0800)
committerKefu Chai <kchai@redhat.com>
Sat, 7 Apr 2018 05:25:19 +0000 (13:25 +0800)
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/CMakeLists.txt
src/include/config-h.in.cmake

index d0a2d9e66d6c0f96e2d0e73dd249c4397bbd3b7f..be1ebaf2d5c1a315c2f6eefbf1deb7c010752a74 100644 (file)
@@ -167,6 +167,17 @@ else()
   set(C_STANDARD_REQUIRED ON)
 endif()
 
+if(CXX_STDLIB STREQUAL "libc++")
+  include(CheckCXXSourceCompiles)
+  CHECK_CXX_SOURCE_COMPILES("
+#include <map>
+using Map = std::map<int, int>;
+int main() {
+  Map m;
+  m.merge(Map{});
+}
+" HAVE_STDLIB_MAP_SPLICING)
+endif()
 
 if(CMAKE_COMPILER_IS_GNUCXX AND
     CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.1)
index d621ac0e0173277c07d0b6728996f071da2960ea..ba3d27b2c92c9b3473c30f6b43254fedda7c1d5a 100644 (file)
 /* Defined if OpenSSL is available for the rgw beast frontend */
 #cmakedefine WITH_RADOSGW_BEAST_OPENSSL
 
+/* Defined if std::map::merge() is supported */
+#cmakedefine HAVE_STDLIB_MAP_SPLICING
+
 #endif /* CONFIG_H */