diff options
author | Brad King <brad.king@kitware.com> | 2016-09-19 12:55:09 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2016-09-19 12:55:09 (GMT) |
commit | 0a4d15a9e2c6605ad22b61fd3ede697bef17b366 (patch) | |
tree | d3eba52d9ed53c5336a8966aab4662eacc6275cf | |
parent | 4c40cf681b8a5aa821e051c83af151209b60740e (diff) | |
parent | aa50cdac439121f9e40ff2638368dc913a0e2361 (diff) | |
download | CMake-0a4d15a9e2c6605ad22b61fd3ede697bef17b366.zip CMake-0a4d15a9e2c6605ad22b61fd3ede697bef17b366.tar.gz CMake-0a4d15a9e2c6605ad22b61fd3ede697bef17b366.tar.bz2 |
Merge topic 'check-for-unique_ptr'
aa50cdac Check for availability of unique_ptr and make_unique when building CMake
-rw-r--r-- | Source/Checks/cm_cxx_features.cmake | 5 | ||||
-rw-r--r-- | Source/Checks/cm_cxx_make_unique.cxx | 6 | ||||
-rw-r--r-- | Source/Checks/cm_cxx_unique_ptr.cxx | 6 | ||||
-rw-r--r-- | Source/cmConfigure.cmake.h.in | 2 |
4 files changed, 19 insertions, 0 deletions
diff --git a/Source/Checks/cm_cxx_features.cmake b/Source/Checks/cm_cxx_features.cmake index 6fde7b6..c6a532f 100644 --- a/Source/Checks/cm_cxx_features.cmake +++ b/Source/Checks/cm_cxx_features.cmake @@ -32,8 +32,13 @@ function(cm_check_cxx_feature name) endfunction() if(CMAKE_CXX_STANDARD) + cm_check_cxx_feature(make_unique) + if(CMake_HAVE_CXX_MAKE_UNIQUE) + set(CMake_HAVE_CXX_UNIQUE_PTR 1) + endif() cm_check_cxx_feature(nullptr) cm_check_cxx_feature(override) + cm_check_cxx_feature(unique_ptr) cm_check_cxx_feature(unordered_map) cm_check_cxx_feature(unordered_set) endif() diff --git a/Source/Checks/cm_cxx_make_unique.cxx b/Source/Checks/cm_cxx_make_unique.cxx new file mode 100644 index 0000000..a3ff68f --- /dev/null +++ b/Source/Checks/cm_cxx_make_unique.cxx @@ -0,0 +1,6 @@ +#include <memory> +int main() +{ + std::unique_ptr<int> u = std::make_unique<int>(0); + return *u; +} diff --git a/Source/Checks/cm_cxx_unique_ptr.cxx b/Source/Checks/cm_cxx_unique_ptr.cxx new file mode 100644 index 0000000..a9d4ce5 --- /dev/null +++ b/Source/Checks/cm_cxx_unique_ptr.cxx @@ -0,0 +1,6 @@ +#include <memory> +int main() +{ + std::unique_ptr<int> u(new int(0)); + return *u; +} diff --git a/Source/cmConfigure.cmake.h.in b/Source/cmConfigure.cmake.h.in index ccea22d..8365367 100644 --- a/Source/cmConfigure.cmake.h.in +++ b/Source/cmConfigure.cmake.h.in @@ -30,8 +30,10 @@ #cmakedefine CMAKE_USE_MACH_PARSER #cmakedefine CMAKE_USE_LIBUV #cmakedefine CMAKE_ENCODING_UTF8 +#cmakedefine CMake_HAVE_CXX_MAKE_UNIQUE #cmakedefine CMake_HAVE_CXX_NULLPTR #cmakedefine CMake_HAVE_CXX_OVERRIDE +#cmakedefine CMake_HAVE_CXX_UNIQUE_PTR #cmakedefine CMake_HAVE_CXX_UNORDERED_MAP #cmakedefine CMake_HAVE_CXX_UNORDERED_SET #define CMAKE_BIN_DIR "/@CMAKE_BIN_DIR@" |