summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.clang-format2
-rw-r--r--CMakeLists.txt5
-rw-r--r--Source/cmConfigure.cmake.h.in1
-rw-r--r--Utilities/std/cm/memory3
-rw-r--r--Utilities/std/cmSTL.hxx.in9
-rwxr-xr-xbootstrap3
6 files changed, 22 insertions, 1 deletions
diff --git a/.clang-format b/.clang-format
index 8c015ef350..cba23d6047 100644
--- a/.clang-format
+++ b/.clang-format
@@ -20,6 +20,8 @@ SortUsingDeclarations: false
SpaceAfterTemplateKeyword: true
IncludeBlocks: Regroup
IncludeCategories:
+ - Regex: '^[<"]cmSTL\.hxx'
+ Priority: -2
- Regex: '^[<"]cmConfigure\.h'
Priority: -1
- Regex: '^<queue>'
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f62c666bd1..2d860d4a8b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -108,6 +108,11 @@ if(NOT CMake_TEST_EXTERNAL_CMAKE)
endif()
endif()
+# Inform STL library header wrappers whether to use system versions.
+configure_file(${CMake_SOURCE_DIR}/Utilities/std/cmSTL.hxx.in
+ ${CMake_BINARY_DIR}/Utilities/cmSTL.hxx
+ @ONLY)
+
# set the internal encoding of CMake to UTF-8
set(KWSYS_ENCODING_DEFAULT_CODEPAGE CP_UTF8)
diff --git a/Source/cmConfigure.cmake.h.in b/Source/cmConfigure.cmake.h.in
index 4de1c5d6f0..97e7856dd8 100644
--- a/Source/cmConfigure.cmake.h.in
+++ b/Source/cmConfigure.cmake.h.in
@@ -19,7 +19,6 @@
#cmakedefine HAVE_UNSETENV
#cmakedefine CMAKE_USE_ELF_PARSER
#cmakedefine CMAKE_USE_MACH_PARSER
-#cmakedefine CMake_HAVE_CXX_MAKE_UNIQUE
#define CMake_DEFAULT_RECURSION_LIMIT @CMake_DEFAULT_RECURSION_LIMIT@
#define CMAKE_BIN_DIR "/@CMAKE_BIN_DIR@"
#define CMAKE_DATA_DIR "/@CMAKE_DATA_DIR@"
diff --git a/Utilities/std/cm/memory b/Utilities/std/cm/memory
index dd0f8226d1..5611f6bb35 100644
--- a/Utilities/std/cm/memory
+++ b/Utilities/std/cm/memory
@@ -6,7 +6,10 @@
#ifndef cm_memory
#define cm_memory
+#include "cmSTL.hxx" // IWYU pragma: keep
+
#include <memory> // IWYU pragma: export
+
#if !defined(CMake_HAVE_CXX_MAKE_UNIQUE)
# include <cstddef>
# include <type_traits>
diff --git a/Utilities/std/cmSTL.hxx.in b/Utilities/std/cmSTL.hxx.in
new file mode 100644
index 0000000000..28fe226aaa
--- /dev/null
+++ b/Utilities/std/cmSTL.hxx.in
@@ -0,0 +1,9 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#ifndef cmSTL_hxx
+#define cmSTL_hxx
+
+/* Whether CMake is using its own STL implementation. */
+#cmakedefine CMake_HAVE_CXX_MAKE_UNIQUE
+
+#endif
diff --git a/bootstrap b/bootstrap
index 68218d5b72..6b37164156 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1272,6 +1272,9 @@ for feature in ${cmake_cxx_features}; do
fi
done
+cmake_generate_file "${cmake_bootstrap_dir}/cmSTL.hxx" ""
+
+
#-----------------------------------------------------------------------------
# Test Make