From 42bc978b5b4bffb64db2be7f2fdb28094ecd4661 Mon Sep 17 00:00:00 2001 From: Andy Cedilnik Date: Thu, 27 May 2004 12:56:52 -0400 Subject: [PATCH] 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 --- Source/cmCreateTestSourceList.cxx | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/Source/cmCreateTestSourceList.cxx b/Source/cmCreateTestSourceList.cxx index 51931baea..5dddb9e8e 100644 --- a/Source/cmCreateTestSourceList.cxx +++ b/Source/cmCreateTestSourceList.cxx @@ -81,15 +81,6 @@ bool cmCreateTestSourceList::InitialPass(std::vector 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 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 const& args) } m_Makefile->AddDefinition(sourceList, sourceListValue.c_str()); - return true; + return res; }