CMP0067ΒΆ
Honor language standard in try_compile()
source-file signature.
The 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:
CMAKE_C_STANDARD
CMAKE_C_STANDARD_REQUIRED
CMAKE_C_EXTENSIONS
CMAKE_CXX_STANDARD
CMAKE_CXX_STANDARD_REQUIRED
CMAKE_CXX_EXTENSIONS
CMAKE_CUDA_STANDARD
CMAKE_CUDA_STANDARD_REQUIRED
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 3.9.6 does not warn by default when this policy
is not set and simply uses OLD behavior. See documentation of the
CMAKE_POLICY_WARNING_CMP0067
variable to control the warning.
Note
The OLD
behavior of a policy is
deprecated by definition
and may be removed in a future version of CMake.