diff options
author | Brad King <brad.king@kitware.com> | 2020-06-15 13:00:07 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2020-06-15 13:00:12 (GMT) |
commit | ca727a5ff1dbf79b0cb47b5ae3efd6b14a434e55 (patch) | |
tree | d2243617412a8fe4f59562d5d0e33aa7fdb8e7ab | |
parent | 109ded58ab1c0d70c00cdfad11cb51edca54f3ac (diff) | |
parent | 9710790a39e2c075eeef06ed529d568385a4f445 (diff) | |
download | CMake-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.rst | 25 | ||||
-rw-r--r-- | Help/release/dev/deprecate-policy-old.rst | 8 | ||||
-rw-r--r-- | Source/cmMakefile.cxx | 2 | ||||
-rw-r--r-- | Tests/RunCMake/FindOpenGL/CMP0072-OLD-stderr.txt | 10 |
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\)$ |