cmPolicies: Factor out helper to recognize generated cmake_policy calls
diff --git a/Source/cmPolicies.cxx b/Source/cmPolicies.cxx index 57a3b81..9fb6fc3 100644 --- a/Source/cmPolicies.cxx +++ b/Source/cmPolicies.cxx
@@ -277,6 +277,17 @@ 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 @@ // 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 "