BUG: When creating a test driver, do not remove the old file, so if nothing changes, it will not rebuild. Fixes Bug #885 - cmCreateTestSource overwrite file when running cmake

This commit is contained in:
Andy Cedilnik 2004-05-27 12:56:52 -04:00
parent d1470b7d7c
commit 42bc978b5b
1 changed files with 6 additions and 11 deletions

View File

@ -81,15 +81,6 @@ bool cmCreateTestSourceList::InitialPass(std::vector<std::string> const& args)
driver += *i;
++i;
std::ofstream fout(driver.c_str());
if (!fout)
{
std::string err = "Could not create file ";
err += driver;
err += " for cmCreateTestSourceList command.";
this->SetError(err.c_str());
return false;
}
std::string configFile =
m_Makefile->GetDefinition("CMAKE_ROOT");
configFile += "/Templates/TestDriver.cxx.in";
@ -166,7 +157,11 @@ bool cmCreateTestSourceList::InitialPass(std::vector<std::string> const& args)
}
m_Makefile->AddDefinition("CMAKE_FORWARD_DECLARE_TESTS", forwardDeclareCode.c_str());
m_Makefile->AddDefinition("CMAKE_FUNCTION_TABLE_ENTIRES", functionMapCode.c_str());
m_Makefile->ConfigureFile(configFile.c_str(), driver.c_str(), false, true, false);
bool res = true;
if ( !m_Makefile->ConfigureFile(configFile.c_str(), driver.c_str(), false, true, false) )
{
res = false;
}
// Create the source list
cmSourceFile cfile;
@ -194,7 +189,7 @@ bool cmCreateTestSourceList::InitialPass(std::vector<std::string> const& args)
}
m_Makefile->AddDefinition(sourceList, sourceListValue.c_str());
return true;
return res;
}