https://github.com/Kitware/CMake
Raw File
Tip revision: 2a5e5b25ba4d6eb68dbee29381774562c98e228f authored by Brad King on 30 October 2019, 13:44:41 UTC
CMake 3.15.5
Tip revision: 2a5e5b2
CMP0067.rst
CMP0067
-------

Honor language standard in :command:`try_compile` source-file signature.

The :command:`try_compile` source file signature is intended to allow
callers to check whether they will be able to compile a given source file
with the current toolchain.  In order to match compiler behavior, any
language standard mode should match.  However, CMake 3.7 and below did not
do this.  CMake 3.8 and above prefer to honor the language standard settings
for ``C``, ``CXX`` (C++), and ``CUDA`` using the values of the variables:

* :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`
* :variable:`CMAKE_CUDA_STANDARD`
* :variable:`CMAKE_CUDA_STANDARD_REQUIRED`
* :variable:`CMAKE_CUDA_EXTENSIONS`

This policy provides compatibility for projects that do not expect
the language standard settings to be used automatically.

The ``OLD`` behavior of this policy is to ignore language standard
setting variables when generating the ``try_compile`` test project.
The ``NEW`` behavior of this policy is to honor language standard
setting variables.

This policy was introduced in CMake version 3.8.  Unlike most policies,
CMake version |release| does *not* warn by default when this policy
is not set and simply uses ``OLD`` behavior.  See documentation of the
:variable:`CMAKE_POLICY_WARNING_CMP0067 <CMAKE_POLICY_WARNING_CMP<NNNN>>`
variable to control the warning.

.. include:: DEPRECATED.txt
back to top