From dc24d88062d1cdca4aa5540a99fd7e5bb03a0e0f Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 9 Dec 2024 19:39:34 -0500 Subject: [PATCH] Remove compatibility with CMake versions older than 3.1 This compatibility has been deprecated since commit 3a4791548d (Deprecate compatibility with CMake versions older than 3.5, 2023-02-09, v3.27.0-rc1~508^2). The behavior itself has been deprecated since CMake 3.1. Issue: #26613 --- Help/command/DEPRECATED_POLICY_VERSIONS.txt | 4 ++-- Help/release/dev/remove-old-compatibility.rst | 2 +- Source/cmMakefile.cxx | 2 +- Source/cmPolicies.cxx | 6 +++--- .../cmake_minimum_required/BeforeVersionRemoved-stderr.txt | 2 +- .../cmake_minimum_required/BeforeVersionRemoved.cmake | 2 +- .../PolicyBeforeVersionRemoved-stderr.txt | 2 +- .../cmake_minimum_required/PolicyBeforeVersionRemoved.cmake | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Help/command/DEPRECATED_POLICY_VERSIONS.txt b/Help/command/DEPRECATED_POLICY_VERSIONS.txt index abfc8145d3..b6eb8f46c7 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 3.0 is removed. + Compatibility with versions of CMake older than 3.1 is removed. Calls to :command:`cmake_minimum_required(VERSION)` or :command:`cmake_policy(VERSION)` that do not specify at least - 3.0 as their policy version (optionally via ``...``) + 3.1 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 6c0582f9fd..9c9b2f095b 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 3.0 has been removed. +* Compatibility with versions of CMake older than 3.1 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 ad72486e24..f46ebd858f 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -1600,7 +1600,7 @@ void cmMakefile::Configure() this->SetCheckCMP0000(true); // Implicitly set the version for the user. - cmPolicies::ApplyPolicyVersion(this, 3, 0, 0, + cmPolicies::ApplyPolicyVersion(this, 3, 1, 0, cmPolicies::WarnCompat::Off); } } diff --git a/Source/cmPolicies.cxx b/Source/cmPolicies.cxx index 8b944b225b..9005dbb6ec 100644 --- a/Source/cmPolicies.cxx +++ b/Source/cmPolicies.cxx @@ -295,16 +295,16 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile* mf, unsigned int majorVer, WarnCompat warnCompat) { // Error on policy versions for which support has been removed. - if (majorVer < 3) { + if (majorVer < 3 || (majorVer == 3 && minorVer < 1)) { if (IsFromLegacyInstallEXPORT(mf, majorVer, minorVer, patchVer)) { // Silently tolerate cmake_policy calls generated by install(EXPORT) // in CMake versions prior to 3.18. majorVer = 3; - minorVer = 0; + minorVer = 1; patchVer = 0; } else { mf->IssueMessage(MessageType::FATAL_ERROR, - "Compatibility with CMake < 3.0 has been removed " + "Compatibility with CMake < 3.1 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 792d314e43..0cdd272b04 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 < 3\.0 has been removed from CMake\. + Compatibility with CMake < 3\.1 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 acf4817023..03be826d84 100644 --- a/Tests/RunCMake/cmake_minimum_required/BeforeVersionRemoved.cmake +++ b/Tests/RunCMake/cmake_minimum_required/BeforeVersionRemoved.cmake @@ -1 +1 @@ -cmake_minimum_required(VERSION 2.8.12) +cmake_minimum_required(VERSION 3.0) diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyBeforeVersionRemoved-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyBeforeVersionRemoved-stderr.txt index 3628be0ac9..34e9ce4297 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 < 3\.0 has been removed from CMake\. + Compatibility with CMake < 3\.1 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 01443d588c..644d3b7564 100644 --- a/Tests/RunCMake/cmake_minimum_required/PolicyBeforeVersionRemoved.cmake +++ b/Tests/RunCMake/cmake_minimum_required/PolicyBeforeVersionRemoved.cmake @@ -1 +1 @@ -cmake_policy(VERSION 2.8.12) +cmake_policy(VERSION 3.0)