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:
parent
d1470b7d7c
commit
42bc978b5b
@ -81,15 +81,6 @@ bool cmCreateTestSourceList::InitialPass(std::vector<std::string> const& args)
|
|||||||
driver += *i;
|
driver += *i;
|
||||||
++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 =
|
std::string configFile =
|
||||||
m_Makefile->GetDefinition("CMAKE_ROOT");
|
m_Makefile->GetDefinition("CMAKE_ROOT");
|
||||||
configFile += "/Templates/TestDriver.cxx.in";
|
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_FORWARD_DECLARE_TESTS", forwardDeclareCode.c_str());
|
||||||
m_Makefile->AddDefinition("CMAKE_FUNCTION_TABLE_ENTIRES", functionMapCode.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
|
// Create the source list
|
||||||
cmSourceFile cfile;
|
cmSourceFile cfile;
|
||||||
@ -194,7 +189,7 @@ bool cmCreateTestSourceList::InitialPass(std::vector<std::string> const& args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_Makefile->AddDefinition(sourceList, sourceListValue.c_str());
|
m_Makefile->AddDefinition(sourceList, sourceListValue.c_str());
|
||||||
return true;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user