ENH: add no cmake option

This commit is contained in:
Bill Hoffman 2004-01-13 11:22:47 -05:00
parent f0f9b50770
commit 8907dad99e
2 changed files with 42 additions and 31 deletions

View File

@ -304,6 +304,7 @@ bool TryExecutable(const char *dir, const char *file,
cmCTest::cmCTest() cmCTest::cmCTest()
{ {
m_BuildNoCMake = false;
m_BuildNoClean = false; m_BuildNoClean = false;
m_BuildTwoConfig = false; m_BuildTwoConfig = false;
m_UseIncludeRegExp = false; m_UseIncludeRegExp = false;
@ -3703,6 +3704,11 @@ int cmCTest::Run(std::vector<std::string>const& args, std::string* output)
i++; i++;
m_BuildTarget = args[i]; m_BuildTarget = args[i];
} }
if(arg.find("--build-nocmake",0) == 0 && i < args.size() - 1)
{
i++;
m_BuildNoCMake = true;
}
if(arg.find("--build-run-dir",0) == 0 && i < args.size() - 1) if(arg.find("--build-run-dir",0) == 0 && i < args.size() - 1)
{ {
i++; i++;
@ -3848,8 +3854,10 @@ void CMakeStdoutCallback(const char* m, int len, void* s)
out->append(m, len); out->append(m, len);
} }
int cmCTest::RunCMakeAndTest(std::string* outstring) int cmCTest::RunCMakeAndTest(std::string* outstring)
{ {
unsigned int k;
cmSystemTools::ResetErrorOccuredFlag(); cmSystemTools::ResetErrorOccuredFlag();
cmListFileCache::GetInstance()->ClearCache(); cmListFileCache::GetInstance()->ClearCache();
std::string cmakeOutString; std::string cmakeOutString;
@ -3872,6 +3880,8 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
cmSystemTools::MakeDirectory(m_BinaryDir.c_str()); cmSystemTools::MakeDirectory(m_BinaryDir.c_str());
} }
cmSystemTools::ChangeDirectory(m_BinaryDir.c_str()); cmSystemTools::ChangeDirectory(m_BinaryDir.c_str());
if(!m_BuildNoCMake)
{
std::vector<std::string> args; std::vector<std::string> args;
args.push_back(m_CMakeSelf); args.push_back(m_CMakeSelf);
args.push_back(m_SourceDir); args.push_back(m_SourceDir);
@ -3882,7 +3892,6 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
args.push_back(generator); args.push_back(generator);
} }
unsigned int k;
for(k=0; k < m_BuildOptions.size(); ++k) for(k=0; k < m_BuildOptions.size(); ++k)
{ {
args.push_back(m_BuildOptions[k]); args.push_back(m_BuildOptions[k]);
@ -3922,6 +3931,8 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
return 1; return 1;
} }
} }
}
cmSystemTools::SetErrorCallback(0, 0); cmSystemTools::SetErrorCallback(0, 0);
out << cmakeOutString << "\n"; out << cmakeOutString << "\n";
if(m_BuildMakeProgram.size() == 0) if(m_BuildMakeProgram.size() == 0)
@ -4068,7 +4079,6 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
cmSystemTools::ChangeDirectory(cwd.c_str()); cmSystemTools::ChangeDirectory(cwd.c_str());
return 1; return 1;
} }
out << output; out << output;
if(m_TestCommand.size() == 0) if(m_TestCommand.size() == 0)

View File

@ -308,6 +308,7 @@ private:
std::vector<std::string> m_TestCommandArgs; std::vector<std::string> m_TestCommandArgs;
bool m_BuildTwoConfig; bool m_BuildTwoConfig;
bool m_BuildNoClean; bool m_BuildNoClean;
bool m_BuildNoCMake;
std::string m_NotesFiles; std::string m_NotesFiles;
//! Reread the configuration file //! Reread the configuration file