summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Pfeifer <daniel@pfeifer-mail.de>2016-06-27 21:23:35 (GMT)
committerDaniel Pfeifer <daniel@pfeifer-mail.de>2016-06-27 21:24:39 (GMT)
commitb4b73f56a26c1e1d630e3f262d2d4bafee8231c4 (patch)
treed1cd9d291b59476041057b2154693a2c430e228c
parenta7a92390964ea5aa7021f71ee69fcc71c4229516 (diff)
downloadCMake-b4b73f56a26c1e1d630e3f262d2d4bafee8231c4.zip
CMake-b4b73f56a26c1e1d630e3f262d2d4bafee8231c4.tar.gz
CMake-b4b73f56a26c1e1d630e3f262d2d4bafee8231c4.tar.bz2
cxx features: add check for nullptr
-rw-r--r--Source/Checks/cm_cxx_features.cmake1
-rw-r--r--Source/Checks/cm_cxx_nullptr.cxx14
-rw-r--r--Source/cmConfigure.cmake.h.in7
-rwxr-xr-xbootstrap1
4 files changed, 23 insertions, 0 deletions
diff --git a/Source/Checks/cm_cxx_features.cmake b/Source/Checks/cm_cxx_features.cmake
index 18dbaf8..6fde7b6 100644
--- a/Source/Checks/cm_cxx_features.cmake
+++ b/Source/Checks/cm_cxx_features.cmake
@@ -32,6 +32,7 @@ function(cm_check_cxx_feature name)
endfunction()
if(CMAKE_CXX_STANDARD)
+ cm_check_cxx_feature(nullptr)
cm_check_cxx_feature(override)
cm_check_cxx_feature(unordered_map)
cm_check_cxx_feature(unordered_set)
diff --git a/Source/Checks/cm_cxx_nullptr.cxx b/Source/Checks/cm_cxx_nullptr.cxx
new file mode 100644
index 0000000..500684a
--- /dev/null
+++ b/Source/Checks/cm_cxx_nullptr.cxx
@@ -0,0 +1,14 @@
+int test(int)
+{
+ return -1;
+}
+
+int test(int*)
+{
+ return 0;
+}
+
+int main()
+{
+ return test(nullptr);
+}
diff --git a/Source/cmConfigure.cmake.h.in b/Source/cmConfigure.cmake.h.in
index a8d4f58..7e48b2d 100644
--- a/Source/cmConfigure.cmake.h.in
+++ b/Source/cmConfigure.cmake.h.in
@@ -29,12 +29,19 @@
#cmakedefine CMAKE_USE_ELF_PARSER
#cmakedefine CMAKE_USE_MACH_PARSER
#cmakedefine CMAKE_ENCODING_UTF8
+#cmakedefine CMake_HAVE_CXX_NULLPTR
#cmakedefine CMake_HAVE_CXX_OVERRIDE
#cmakedefine CMake_HAVE_CXX_UNORDERED_MAP
#cmakedefine CMake_HAVE_CXX_UNORDERED_SET
#define CMAKE_BIN_DIR "/@CMAKE_BIN_DIR@"
#define CMAKE_DATA_DIR "/@CMAKE_DATA_DIR@"
+#ifdef CMake_HAVE_CXX_NULLPTR
+#define CM_NULLPTR nullptr
+#else
+#define CM_NULLPTR 0
+#endif
+
#ifdef CMake_HAVE_CXX_OVERRIDE
#define CM_OVERRIDE override
#else
diff --git a/bootstrap b/bootstrap
index a9f3402..60d63c3 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1272,6 +1272,7 @@ cmake_report cmConfigure.h${_tmp} "#define CMAKE_BOOTSTRAP_BINARY_DIR \"${CMAKE_
cmake_report cmConfigure.h${_tmp} "#define CMAKE_BIN_DIR \"/bootstrap-not-insalled\""
cmake_report cmConfigure.h${_tmp} "#define CMAKE_DATA_DIR \"/bootstrap-not-insalled\""
cmake_report cmConfigure.h${_tmp} "#define CMAKE_BOOTSTRAP"
+cmake_report cmConfigure.h${_tmp} "#define CM_NULLPTR 0"
cmake_report cmConfigure.h${_tmp} "#define CM_OVERRIDE"
# Regenerate configured headers