ENH: Do not auto-create out-dated cache variables

- We used to always put LIBRARY_OUTPUT_PATH and EXECUTABLE_OUTPUT_PATH
    in the cache if the project did not.
  - In CMake 2.6 these variables should no longer be used.
  - Now add them only if CMAKE_BACKWARDS_COMPATIBILITY is also cached.
  - This happens only when CMP0001 is set to OLD or WARN or if
    the user or project sets it.  In any case compatibility is needed.
  - Reported by Miguel A. Figueroa-Villanueva and Philip Lowman.
This commit is contained in:
Brad King 2008-07-03 13:55:33 -04:00
parent 1342965b05
commit dd1ee6975f

View File

@ -2091,22 +2091,30 @@ int cmake::ActualConfigure()
// Before saving the cache // Before saving the cache
// if the project did not define one of the entries below, add them now // if the project did not define one of the entries below, add them now
// so users can edit the values in the cache: // so users can edit the values in the cache:
// LIBRARY_OUTPUT_PATH
// EXECUTABLE_OUTPUT_PATH // We used to always present LIBRARY_OUTPUT_PATH and
if(!this->CacheManager->GetCacheValue("LIBRARY_OUTPUT_PATH")) // EXECUTABLE_OUTPUT_PATH. They are now documented as old-style and
// should no longer be used. Therefore we present them only if the
// project requires compatibility with CMake 2.4. We detect this
// here by looking for the old CMAKE_BACKWARDS_COMPATABILITY
// variable created when CMP0001 is not set to NEW.
if(this->GetCacheManager()->GetCacheValue("CMAKE_BACKWARDS_COMPATIBILITY"))
{ {
this->CacheManager->AddCacheEntry if(!this->CacheManager->GetCacheValue("LIBRARY_OUTPUT_PATH"))
("LIBRARY_OUTPUT_PATH", "", {
"Single output directory for building all libraries.", this->CacheManager->AddCacheEntry
cmCacheManager::PATH); ("LIBRARY_OUTPUT_PATH", "",
} "Single output directory for building all libraries.",
if(!this->CacheManager->GetCacheValue("EXECUTABLE_OUTPUT_PATH")) cmCacheManager::PATH);
{ }
this->CacheManager->AddCacheEntry if(!this->CacheManager->GetCacheValue("EXECUTABLE_OUTPUT_PATH"))
("EXECUTABLE_OUTPUT_PATH", "", {
"Single output directory for building all executables.", this->CacheManager->AddCacheEntry
cmCacheManager::PATH); ("EXECUTABLE_OUTPUT_PATH", "",
} "Single output directory for building all executables.",
cmCacheManager::PATH);
}
}
if(!this->CacheManager->GetCacheValue("CMAKE_USE_RELATIVE_PATHS")) if(!this->CacheManager->GetCacheValue("CMAKE_USE_RELATIVE_PATHS"))
{ {
this->CacheManager->AddCacheEntry this->CacheManager->AddCacheEntry