summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-06-15 13:00:07 (GMT)
committerKitware Robot <kwrobot@kitware.com>2020-06-15 13:00:12 (GMT)
commitca727a5ff1dbf79b0cb47b5ae3efd6b14a434e55 (patch)
treed2243617412a8fe4f59562d5d0e33aa7fdb8e7ab
parent109ded58ab1c0d70c00cdfad11cb51edca54f3ac (diff)
parent9710790a39e2c075eeef06ed529d568385a4f445 (diff)
downloadCMake-ca727a5ff1dbf79b0cb47b5ae3efd6b14a434e55.zip
CMake-ca727a5ff1dbf79b0cb47b5ae3efd6b14a434e55.tar.gz
CMake-ca727a5ff1dbf79b0cb47b5ae3efd6b14a434e55.tar.bz2
Merge topic 'deprecate-policy-old'
9710790a39 Help/dev: Add maintainer guide step for initial post-release development 6f6651f728 Add deprecation warnings for policies CMP0072 and below Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4884
-rw-r--r--Help/dev/maint.rst25
-rw-r--r--Help/release/dev/deprecate-policy-old.rst8
-rw-r--r--Source/cmMakefile.cxx2
-rw-r--r--Tests/RunCMake/FindOpenGL/CMP0072-OLD-stderr.txt10
4 files changed, 44 insertions, 1 deletions
diff --git a/Help/dev/maint.rst b/Help/dev/maint.rst
index a1c1a6f..9b6774b 100644
--- a/Help/dev/maint.rst
+++ b/Help/dev/maint.rst
@@ -299,3 +299,28 @@ announcing that post-release development is open::
before staging or merging.
.. _`CMake Discourse Forum Development Category`: https://discourse.cmake.org/c/development
+
+Initial Post-Release Development
+--------------------------------
+
+Deprecate policies more than 8 release series old by updating the
+policy range check in ``cmMakefile::SetPolicy``.
+Commit with a message such as::
+
+ Add deprecation warnings for policies CMP#### and below
+
+ The OLD behaviors of all policies are deprecated, but only by
+ documentation. Add an explicit deprecation diagnostic for policies
+ introduced in CMake $OLDVER and below to encourage projects to port
+ away from setting policies to OLD.
+
+Update the ``cmake_policy`` version range generated by ``install(EXPORT)``
+in ``cmExportFileGenerator::GeneratePolicyHeaderCode`` to end at the
+previous release. We use one release back since we now know all the
+policies added for that version. Commit with a message such as::
+
+ export: Increase maximum policy version in exported files to $prev
+
+ The files generatd by `install(EXPORT)` and `export()` commands
+ are known to work with policies as of CMake $prev, so enable them
+ in sufficiently new CMake versions.
diff --git a/Help/release/dev/deprecate-policy-old.rst b/Help/release/dev/deprecate-policy-old.rst
new file mode 100644
index 0000000..f92aea7
--- /dev/null
+++ b/Help/release/dev/deprecate-policy-old.rst
@@ -0,0 +1,8 @@
+deprecate-policy-old
+--------------------
+
+* An explicit deprecation diagnostic was added for policy ``CMP0071``
+ (``CMP0071`` and below were already deprecated).
+ The :manual:`cmake-policies(7)` manual explains that the OLD behaviors
+ of all policies are deprecated and that projects should port to the
+ NEW behaviors.
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index c78b751..5c3063b 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -4554,7 +4554,7 @@ bool cmMakefile::SetPolicy(cmPolicies::PolicyID id,
// Deprecate old policies, especially those that require a lot
// of code to maintain the old behavior.
- if (status == cmPolicies::OLD && id <= cmPolicies::CMP0071 &&
+ if (status == cmPolicies::OLD && id <= cmPolicies::CMP0072 &&
!(this->GetCMakeInstance()->GetIsInTryCompile() &&
(
// Policies set by cmCoreTryCompile::TryCompileCode.
diff --git a/Tests/RunCMake/FindOpenGL/CMP0072-OLD-stderr.txt b/Tests/RunCMake/FindOpenGL/CMP0072-OLD-stderr.txt
new file mode 100644
index 0000000..68d23d4
--- /dev/null
+++ b/Tests/RunCMake/FindOpenGL/CMP0072-OLD-stderr.txt
@@ -0,0 +1,10 @@
+^CMake Deprecation Warning at CMP0072-OLD.cmake:1 \(cmake_policy\):
+ The OLD behavior for policy CMP0072 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:3 \(include\)$