|
|
@@ -277,6 +277,17 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile* mf,
|
|
|
warnCompat);
|
|
|
}
|
|
|
|
|
|
+namespace {
|
|
|
+bool IsFromLegacyInstallEXPORT(cmMakefile* mf, unsigned int majorVer,
|
|
|
+ unsigned int minorVer, unsigned int patchVer)
|
|
|
+{
|
|
|
+ return majorVer == 2 && minorVer == 6 && patchVer == 0 &&
|
|
|
+ mf->GetStateSnapshot().CanPopPolicyScope() &&
|
|
|
+ cmSystemTools::Strucmp(mf->GetBacktrace().Top().Name.c_str(),
|
|
|
+ "cmake_policy") == 0;
|
|
|
+}
|
|
|
+}
|
|
|
+
|
|
|
bool cmPolicies::ApplyPolicyVersion(cmMakefile* mf, unsigned int majorVer,
|
|
|
unsigned int minorVer,
|
|
|
unsigned int patchVer,
|
|
|
@@ -285,12 +296,9 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile* mf, unsigned int majorVer,
|
|
|
// Warn about policy versions for which support will be removed.
|
|
|
if (warnCompat == WarnCompat::On &&
|
|
|
(majorVer < 3 || (majorVer == 3 && minorVer < 10)) &&
|
|
|
- // Avoid warning on calls generated by install(EXPORT)
|
|
|
+ // Silently tolerate cmake_policy calls generated by install(EXPORT)
|
|
|
// in CMake versions prior to 3.18.
|
|
|
- !(majorVer == 2 && minorVer == 6 && patchVer == 0 &&
|
|
|
- mf->GetStateSnapshot().CanPopPolicyScope() &&
|
|
|
- cmSystemTools::Strucmp(mf->GetBacktrace().Top().Name.c_str(),
|
|
|
- "cmake_policy") == 0)) {
|
|
|
+ !IsFromLegacyInstallEXPORT(mf, majorVer, minorVer, patchVer)) {
|
|
|
mf->IssueMessage(
|
|
|
MessageType::DEPRECATION_WARNING,
|
|
|
"Compatibility with CMake < 3.10 will be removed from "
|