summaryrefslogtreecommitdiffstats
path: root/Help/command
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-12-01 20:46:34 (GMT)
committerBrad King <brad.king@kitware.com>2016-12-06 13:58:42 (GMT)
commitf72ba42b7c643b1b217d1b8f6684cec3289e7201 (patch)
tree7277ccca7c933e26b2cfc4aba2401477d7125408 /Help/command
parent45aa03b97aeeb512264ac2bfbb2028330be254d1 (diff)
downloadCMake-f72ba42b7c643b1b217d1b8f6684cec3289e7201.zip
CMake-f72ba42b7c643b1b217d1b8f6684cec3289e7201.tar.gz
CMake-f72ba42b7c643b1b217d1b8f6684cec3289e7201.tar.bz2
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 'Help/command')
-rw-r--r--Help/command/try_compile.rst14
1 files changed, 14 insertions, 0 deletions
diff --git a/Help/command/try_compile.rst b/Help/command/try_compile.rst
index 3f16b63..cde3776 100644
--- a/Help/command/try_compile.rst
+++ b/Help/command/try_compile.rst
@@ -135,3 +135,17 @@ the type of target used for the source file signature.
Set the :variable:`CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable to specify
variables that must be propagated into the test project. This variable is
meant for use only in toolchain files.
+
+If :policy:`CMP0067` is set to ``NEW``, or any of the ``<LANG>_STANDARD``,
+``<LANG>_STANDARD_REQUIRED``, or ``<LANG>_EXTENSIONS`` options are used,
+then the language standard variables are honored:
+
+* :variable:`CMAKE_C_STANDARD`
+* :variable:`CMAKE_C_STANDARD_REQUIRED`
+* :variable:`CMAKE_C_EXTENSIONS`
+* :variable:`CMAKE_CXX_STANDARD`
+* :variable:`CMAKE_CXX_STANDARD_REQUIRED`
+* :variable:`CMAKE_CXX_EXTENSIONS`
+
+Their values are used to set the corresponding target properties in
+the generated project (unless overridden by an explicit option).