diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmCTest.cxx | 51 |
1 files changed, 37 insertions, 14 deletions
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 4e941af..c9e7dfc 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -1876,30 +1876,53 @@ int cmCTest::ReadCustomConfigurationFileTree(const char* dir) lg->SetGlobalGenerator(&gg); cmMakefile *mf = lg->GetMakefile(); - std::string rexpr = dir; - rexpr += "/CTestCustom.ctest"; - cmsys::Glob gl; - gl.RecurseOn(); - gl.FindFiles(rexpr); - std::vector<std::string>& files = gl.GetFiles(); - std::vector<std::string>::iterator fileIt; - for ( fileIt = files.begin(); fileIt != files.end(); - ++ fileIt ) + bool found = false; + std::string fname = dir; + fname += "/CTestCustom.cmake"; + if ( cmSystemTools::FileExists(fname.c_str()) ) { cmCTestLog(this, DEBUG, "* Read custom CTest configuration file: " - << fileIt->c_str() << std::endl); - if ( !lg->GetMakefile()->ReadListFile(0, fileIt->c_str()) || + << fname.c_str() << std::endl); + if ( !lg->GetMakefile()->ReadListFile(0, fname.c_str()) || cmSystemTools::GetErrorOccuredFlag() ) { cmCTestLog(this, ERROR_MESSAGE, "Problem reading custom configuration: " + << fname.c_str() << std::endl); + } + found = true; + } + + std::string rexpr = dir; + rexpr += "/CTestCustom.ctest"; + if ( !found && cmSystemTools::FileExists(fname.c_str()) ) + { + cmsys::Glob gl; + gl.RecurseOn(); + gl.FindFiles(rexpr); + std::vector<std::string>& files = gl.GetFiles(); + std::vector<std::string>::iterator fileIt; + for ( fileIt = files.begin(); fileIt != files.end(); + ++ fileIt ) + { + cmCTestLog(this, DEBUG, "* Read custom CTest configuration file: " << fileIt->c_str() << std::endl); + if ( !lg->GetMakefile()->ReadListFile(0, fileIt->c_str()) || + cmSystemTools::GetErrorOccuredFlag() ) + { + cmCTestLog(this, ERROR_MESSAGE, "Problem reading custom configuration: " + << fileIt->c_str() << std::endl); + } } + found = true; } - cmCTest::t_TestingHandlers::iterator it; - for ( it = this->TestingHandlers.begin(); it != this->TestingHandlers.end(); ++ it ) + if ( found ) { - it->second->PopulateCustomVectors(mf); + cmCTest::t_TestingHandlers::iterator it; + for ( it = this->TestingHandlers.begin(); it != this->TestingHandlers.end(); ++ it ) + { + it->second->PopulateCustomVectors(mf); + } } return 1; |