diff --git a/Help/command/DEPRECATED_POLICY_VERSIONS.txt b/Help/command/DEPRECATED_POLICY_VERSIONS.txt index dbcbfc404c..92cdaeb11a 100644 --- a/Help/command/DEPRECATED_POLICY_VERSIONS.txt +++ b/Help/command/DEPRECATED_POLICY_VERSIONS.txt @@ -1,9 +1,9 @@ .. versionchanged:: 4.0 - Compatibility with versions of CMake older than 2.8.0 is removed. + Compatibility with versions of CMake older than 2.8.12 is removed. Calls to :command:`cmake_minimum_required(VERSION)` or :command:`cmake_policy(VERSION)` that do not specify at least - 2.8.0 as their policy version (optionally via ``...``) + 2.8.12 as their policy version (optionally via ``...``) will produce an error in CMake 4.0 and above. .. versionchanged:: 3.31 diff --git a/Help/release/dev/remove-old-compatibility.rst b/Help/release/dev/remove-old-compatibility.rst index 2d828977d8..a02da41104 100644 --- a/Help/release/dev/remove-old-compatibility.rst +++ b/Help/release/dev/remove-old-compatibility.rst @@ -1,7 +1,7 @@ remove-old-compatibility ------------------------ -* Compatibility with versions of CMake older than 2.8.0 has been removed. +* Compatibility with versions of CMake older than 2.8.12 has been removed. Calls to :command:`cmake_minimum_required` or :command:`cmake_policy` that set the policy version to an older value now issue an error. Note that calls to those commands can still support older versions of diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 50ef9458bb..e8f4454dc7 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -1741,7 +1741,7 @@ void cmMakefile::Configure() this->SetCheckCMP0000(true); // Implicitly set the version for the user. - cmPolicies::ApplyPolicyVersion(this, 2, 8, 0, + cmPolicies::ApplyPolicyVersion(this, 2, 8, 12, cmPolicies::WarnCompat::Off); } } diff --git a/Source/cmPolicies.cxx b/Source/cmPolicies.cxx index f506f09b98..206d4ffbfa 100644 --- a/Source/cmPolicies.cxx +++ b/Source/cmPolicies.cxx @@ -295,16 +295,17 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile* mf, unsigned int majorVer, WarnCompat warnCompat) { // Error on policy versions for which support has been removed. - if (majorVer < 2 || (majorVer == 2 && minorVer < 8)) { + if (majorVer < 2 || + (majorVer == 2 && (minorVer < 8 || (minorVer == 8 && patchVer < 12)))) { if (IsFromLegacyInstallEXPORT(mf, majorVer, minorVer, patchVer)) { // Silently tolerate cmake_policy calls generated by install(EXPORT) // in CMake versions prior to 3.18. majorVer = 2; minorVer = 8; - patchVer = 0; + patchVer = 12; } else { mf->IssueMessage(MessageType::FATAL_ERROR, - "Compatibility with CMake < 2.8.0 has been removed " + "Compatibility with CMake < 2.8.12 has been removed " "from CMake.\n" ADVICE_UPDATE_VERSION_ARGUMENT); cmSystemTools::SetFatalErrorOccurred(); return false; diff --git a/Tests/RunCMake/cmake_minimum_required/BeforeVersionRemoved-stderr.txt b/Tests/RunCMake/cmake_minimum_required/BeforeVersionRemoved-stderr.txt index 040a7c32c1..e20bf5b337 100644 --- a/Tests/RunCMake/cmake_minimum_required/BeforeVersionRemoved-stderr.txt +++ b/Tests/RunCMake/cmake_minimum_required/BeforeVersionRemoved-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error at BeforeVersionRemoved\.cmake:1 \(cmake_minimum_required\): - Compatibility with CMake < 2\.8\.0 has been removed from CMake\. + Compatibility with CMake < 2\.8\.12 has been removed from CMake\. Update the VERSION argument value\. Or, use the \.\.\. syntax to tell CMake that the project requires at least but has been updated diff --git a/Tests/RunCMake/cmake_minimum_required/BeforeVersionRemoved.cmake b/Tests/RunCMake/cmake_minimum_required/BeforeVersionRemoved.cmake index d20c1c8d5f..851745b4c8 100644 --- a/Tests/RunCMake/cmake_minimum_required/BeforeVersionRemoved.cmake +++ b/Tests/RunCMake/cmake_minimum_required/BeforeVersionRemoved.cmake @@ -1 +1 @@ -cmake_minimum_required(VERSION 2.6.4) +cmake_minimum_required(VERSION 2.8.11) diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyBeforeVersionRemoved-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyBeforeVersionRemoved-stderr.txt index 6824d8f203..273f103533 100644 --- a/Tests/RunCMake/cmake_minimum_required/PolicyBeforeVersionRemoved-stderr.txt +++ b/Tests/RunCMake/cmake_minimum_required/PolicyBeforeVersionRemoved-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error at PolicyBeforeVersionRemoved\.cmake:1 \(cmake_policy\): - Compatibility with CMake < 2\.8\.0 has been removed from CMake\. + Compatibility with CMake < 2\.8\.12 has been removed from CMake\. Update the VERSION argument value\. Or, use the \.\.\. syntax to tell CMake that the project requires at least but has been updated diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyBeforeVersionRemoved.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyBeforeVersionRemoved.cmake index 1a41499365..0e2c8fe788 100644 --- a/Tests/RunCMake/cmake_minimum_required/PolicyBeforeVersionRemoved.cmake +++ b/Tests/RunCMake/cmake_minimum_required/PolicyBeforeVersionRemoved.cmake @@ -1 +1 @@ -cmake_policy(VERSION 2.6.4) +cmake_policy(VERSION 2.8.11)