浏览代码

ENH: more policy changes

Ken Martin 17 年之前
父节点
当前提交
cd4d2acbe6
共有 3 个文件被更改,包括 18 次插入27 次删除
  1. 3 0
      Source/cmCMakeMinimumRequired.cxx
  2. 15 1
      Source/cmPolicies.cxx
  3. 0 26
      Source/cmake.cxx

+ 3 - 0
Source/cmCMakeMinimumRequired.cxx

@@ -121,6 +121,9 @@ bool cmCMakeMinimumRequired
       }
     }
 
+  // set the policy version as well
+  this->Makefile->SetPolicyVersion(version_string.c_str());
+
   return true;
 }
 

+ 15 - 1
Source/cmPolicies.cxx

@@ -184,7 +184,21 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile *mf,
   {
     patchVer = atoi(patch.c_str());
   }
- 
+
+  // add in the old CMAKE_BACKWARDS_COMPATIBILITY var for old CMake compatibility
+  if ((majorVer == 2 && minorVer <= 4) || majorVer < 2)
+  {
+    if (!mf->GetCacheManager()->GetCacheValue("CMAKE_BACKWARDS_COMPATIBILITY"))
+    {
+      mf->AddCacheDefinition
+        ("CMAKE_BACKWARDS_COMPATIBILITY",version, 
+         "For backwards compatibility, what version of CMake commands and "
+         "syntax should this version of CMake try to support.",
+         cmCacheManager::STRING);
+    }
+  }
+
+  
   // now loop over all the policies and set them as appropriate
   std::map<cmPolicies::PolicyID,cmPolicy *>::iterator i 
     = this->Policies.begin();

+ 0 - 26
Source/cmake.cxx

@@ -1899,19 +1899,6 @@ int cmake::ActualConfigure()
        cmCacheManager::INTERNAL);
     }
 
-  // set the default BACKWARDS compatibility to the current version
-  if(!this->CacheManager->GetCacheValue("CMAKE_BACKWARDS_COMPATIBILITY"))
-    {
-    char ver[256];
-    sprintf(ver,"%i.%i",cmVersion::GetMajorVersion(),
-            cmVersion::GetMinorVersion());
-    this->CacheManager->AddCacheEntry
-      ("CMAKE_BACKWARDS_COMPATIBILITY",ver, 
-       "For backwards compatibility, what version of CMake commands and "
-       "syntax should this version of CMake allow.",
-       cmCacheManager::STRING);
-    }
-
   // no generator specified on the command line
   if(!this->GlobalGenerator)
     {
@@ -2393,19 +2380,6 @@ int cmake::LoadCache()
     return -3;
     }
 
-  // set the default BACKWARDS compatibility to the current version
-  if(!this->CacheManager->GetCacheValue("CMAKE_BACKWARDS_COMPATIBILITY"))
-    {
-    char ver[256];
-    sprintf(ver,"%i.%i",cmVersion::GetMajorVersion(),
-            cmVersion::GetMinorVersion());
-    this->CacheManager->AddCacheEntry
-      ("CMAKE_BACKWARDS_COMPATIBILITY",ver, 
-       "For backwards compatibility, what version of CMake commands and "
-       "syntax should this version of CMake allow.",
-       cmCacheManager::STRING);
-    }
-
   return 0;
 }