Fix switching from local to global generation when cmake version changes or when things change inside version

This commit is contained in:
Andy Cedilnik 2002-12-16 12:13:37 -05:00
parent 21c0dda8d0
commit 1ac5fb545f
1 changed files with 12 additions and 3 deletions

View File

@ -869,11 +869,20 @@ int cmake::Run(const std::vector<std::string>& args)
// Add any cache args
this->SetCacheArgs(args);
std::string systemFile = this->GetHomeOutputDirectory();
systemFile += "/CMakeSystem.cmake";
int ret = 0;
// if not local or the cmake version has changed
// since the last run of cmake, run a global generate
if(!m_Local || !this->CacheVersionMatches())
// if not local or the cmake version has changed since the last run
// of cmake, or CMakeSystem.cmake file is not in the root binary
// directory, run a global generate
if(!m_Local || !this->CacheVersionMatches() ||
!cmSystemTools::FileExists(systemFile.c_str()) )
{
// If we are doing global generate, we better set start and start
// output directory to the root of the project.
this->SetStartDirectory(this->GetHomeDirectory());
this->SetStartOutputDirectory(this->GetHomeOutputDirectory());
bool saveLocalFlag = m_Local;
m_Local = false;
ret = this->Configure();