| 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 |