summaryrefslogtreecommitdiff
path: root/Tests/RunCMake/try_compile/CxxStandardGNU.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-12-01 15:46:34 -0500
committerBrad King <brad.king@kitware.com>2016-12-06 08:58:42 -0500
commitf72ba42b7c643b1b217d1b8f6684cec3289e7201 (patch)
tree7277ccca7c933e26b2cfc4aba2401477d7125408 /Tests/RunCMake/try_compile/CxxStandardGNU.cmake
parent45aa03b97aeeb512264ac2bfbb2028330be254d1 (diff)
downloadcmake-f72ba42b7c643b1b217d1b8f6684cec3289e7201.tar.gz
try_compile: Add policy CMP0067 to honor language standards
Projects use `try_compile` to check if they will be able to compile some particular source code. When a language standard variable like `CMAKE_CXX_STANDARD` is set, then the project intends to compile source code using a compiler mode for that standard. Therefore it makes sense for `try_compile` to use that standard in the test project too. Unfortunately this was not done when support for the `CMAKE_CXX_STANDARD` variable was first implemented. Add a policy to introduce the improved behavior in a compatible way. Closes: #16456
Diffstat (limited to 'Tests/RunCMake/try_compile/CxxStandardGNU.cmake')
-rw-r--r--Tests/RunCMake/try_compile/CxxStandardGNU.cmake12
1 files changed, 12 insertions, 0 deletions
diff --git a/Tests/RunCMake/try_compile/CxxStandardGNU.cmake b/Tests/RunCMake/try_compile/CxxStandardGNU.cmake
index cc16bea5a4..e714fe4d01 100644
--- a/Tests/RunCMake/try_compile/CxxStandardGNU.cmake
+++ b/Tests/RunCMake/try_compile/CxxStandardGNU.cmake
@@ -9,3 +9,15 @@ try_compile(result ${CMAKE_CURRENT_BINARY_DIR}
if(NOT result)
message(FATAL_ERROR "try_compile failed:\n${out}")
endif()
+
+cmake_policy(SET CMP0067 NEW)
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED 1)
+set(CMAKE_CXX_EXTENSIONS 0)
+try_compile(result ${CMAKE_CURRENT_BINARY_DIR}
+ SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/CxxStandardGNU.cxx
+ OUTPUT_VARIABLE out
+ )
+if(NOT result)
+ message(FATAL_ERROR "try_compile failed:\n${out}")
+endif()