mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-25 00:59:19 -06:00
Add deprecation warnings for policies CMP0128 and below
The OLD behaviors of all policies are deprecated, but only by documentation. Add an explicit deprecation diagnostic for policies introduced in CMake 3.22 and below to encourage projects to port away from setting policies to OLD.
This commit is contained in:
@@ -4657,13 +4657,14 @@ bool cmMakefile::SetPolicy(cmPolicies::PolicyID id,
|
||||
}
|
||||
|
||||
// Deprecate old policies.
|
||||
if (status == cmPolicies::OLD && id <= cmPolicies::CMP0126 &&
|
||||
if (status == cmPolicies::OLD && id <= cmPolicies::CMP0128 &&
|
||||
!(this->GetCMakeInstance()->GetIsInTryCompile() &&
|
||||
(
|
||||
// Policies set by cmCoreTryCompile::TryCompileCode.
|
||||
id == cmPolicies::CMP0065 || id == cmPolicies::CMP0083 ||
|
||||
id == cmPolicies::CMP0091 || id == cmPolicies::CMP0104 ||
|
||||
id == cmPolicies::CMP0123 || id == cmPolicies::CMP0126)) &&
|
||||
id == cmPolicies::CMP0123 || id == cmPolicies::CMP0126 ||
|
||||
id == cmPolicies::CMP0128)) &&
|
||||
(!this->IsSet("CMAKE_WARN_DEPRECATED") ||
|
||||
this->IsOn("CMAKE_WARN_DEPRECATED"))) {
|
||||
this->IssueMessage(MessageType::DEPRECATION_WARNING,
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
^CMake Deprecation Warning at [^
|
||||
]*/Tests/RunCMake/CMakeDependentOption/Regex-CMP0127-OLD\.cmake:[0-9]+ \(cmake_policy\):
|
||||
The OLD behavior for policy CMP0127 will be removed from a future version
|
||||
of CMake\.
|
||||
|
||||
The cmake-policies\(7\) manual explains that the OLD behaviors of all
|
||||
policies are deprecated and that a policy should be set to OLD only under
|
||||
specific short-term circumstances\. Projects should be ported to the NEW
|
||||
behavior and not rely on setting a policy to OLD\.$
|
||||
@@ -1,3 +1,14 @@
|
||||
^CMake Deprecation Warning at CMP0128WarnMatch-(C|CXX)\.cmake:[0-9]+ \(cmake_policy\):
|
||||
The OLD behavior for policy CMP0128 will be removed from a future version
|
||||
of CMake\.
|
||||
|
||||
The cmake-policies\(7\) manual explains that the OLD behaviors of all
|
||||
policies are deprecated and that a policy should be set to OLD only under
|
||||
specific short-term circumstances\. Projects should be ported to the NEW
|
||||
behavior and not rely on setting a policy to OLD\.
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists\.txt:[0-9]+ \(include\)
|
||||
+
|
||||
CMake Warning \(dev\) in CMakeLists\.txt:
|
||||
Policy CMP0128 is not set: Selection of language standard and extension
|
||||
flags improved\. Run "cmake --help-policy CMP0128" for policy details\. Use
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
^CMake Deprecation Warning at CMP0128WarnUnset-(C|CXX)\.cmake:[0-9]+ \(cmake_policy\):
|
||||
The OLD behavior for policy CMP0128 will be removed from a future version
|
||||
of CMake\.
|
||||
|
||||
The cmake-policies\(7\) manual explains that the OLD behaviors of all
|
||||
policies are deprecated and that a policy should be set to OLD only under
|
||||
specific short-term circumstances\. Projects should be ported to the NEW
|
||||
behavior and not rely on setting a policy to OLD\.
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists\.txt:[0-9]+ \(include\)
|
||||
+
|
||||
CMake Warning \(dev\) in CMakeLists\.txt:
|
||||
Policy CMP0128 is not set: Selection of language standard and extension
|
||||
flags improved\. Run "cmake --help-policy CMP0128" for policy details\. Use
|
||||
|
||||
Reference in New Issue
Block a user