summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmCTest.cxx51
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;