Преглед на файлове

ENH: Apply new implicit link directory find_library policy when loading a cache from an earlier CMake.

Brad King преди 18 години
родител
ревизия
3a462fa673
променени са 1 файла, в които са добавени 20 реда и са изтрити 0 реда
  1. 20 0
      Source/cmFindLibraryCommand.cxx

+ 20 - 0
Source/cmFindLibraryCommand.cxx

@@ -86,6 +86,26 @@ bool cmFindLibraryCommand
                                          this->VariableDocumentation.c_str(),
                                          cmCacheManager::FILEPATH);
       }
+
+    // If the existing value was loaded from a cache written by CMake
+    // 2.4 or below then force the implicit link directory fix on the
+    // value.
+    if(this->Makefile->NeedCacheCompatibility(2, 4))
+      {
+      if(const char* v =
+         this->Makefile->GetDefinition(this->VariableName.c_str()))
+        {
+        std::string nv = this->FixForImplicitLocations(v);
+        if(nv != v)
+          {
+          this->Makefile
+            ->AddCacheDefinition(this->VariableName.c_str(),
+                                 nv.c_str(),
+                                 this->VariableDocumentation.c_str(),
+                                 cmCacheManager::FILEPATH);
+          }
+        }
+      }
     return true;
     }