ENH: clean up output

This commit is contained in:
Bill Hoffman 2004-01-09 14:05:55 -05:00
parent 67f1dab2b5
commit c47409d9e9
1 changed files with 47 additions and 24 deletions

View File

@ -3851,6 +3851,7 @@ void CMakeStdoutCallback(const char* m, int len, void* s)
int cmCTest::RunCMakeAndTest(std::string* outstring)
{
cmSystemTools::ResetErrorOccuredFlag();
cmListFileCache::GetInstance()->ClearCache();
std::string cmakeOutString;
cmSystemTools::SetErrorCallback(CMakeMessageCallback, &cmakeOutString);
cmSystemTools::SetStdoutCallback(CMakeStdoutCallback, &cmakeOutString);
@ -3888,38 +3889,54 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
}
if (cm.Run(args) != 0)
{
std::cerr << "Error: cmake execution failed\n";
std::cerr << cmakeOutString << "\n";
out << "Error: cmake execution failed\n";
out << cmakeOutString << "\n";
// return to the original directory
cmSystemTools::ChangeDirectory(cwd.c_str());
if(outstring)
{
*outstring = out.str();
}
else
{
std::cerr << out << "\n";
}
return 1;
}
if(m_BuildTwoConfig)
{
if (cm.Run(args) != 0)
{
std::cerr << "Error: cmake execution failed\n";
std::cerr << cmakeOutString << "\n";
out << "Error: cmake execution failed\n";
out << cmakeOutString << "\n";
// return to the original directory
cmSystemTools::ChangeDirectory(cwd.c_str());
if(outstring)
{
*outstring = out.str();
}
else
{
std::cerr << out << "\n";
}
return 1;
}
}
cmSystemTools::SetErrorCallback(0, 0);
if(outstring)
{
*outstring += cmakeOutString;
}
else
{
std::cout << cmakeOutString << "\n";
}
cmListFileCache::GetInstance()->ClearCache();
out << cmakeOutString << "\n";
if(m_BuildMakeProgram.size() == 0)
{
std::cerr << "Error: cmake does not have a valid MAKEPROGRAM\n";
std::cerr << "Did you specify a --build-makeprogram and a --build-generator?\n";
out << "Error: cmake does not have a valid MAKEPROGRAM\n";
out << "Did you specify a --build-makeprogram and a --build-generator?\n";
if(outstring)
{
*outstring = out.str();
}
else
{
std::cerr << out << "\n";
}
return 1;
}
int retVal = 0;
std::string makeCommand = cmSystemTools::ConvertToOutputPath(m_BuildMakeProgram.c_str());
@ -4001,6 +4018,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
}
return 1;
}
out << output;
}
if(m_BuildTarget.size())
@ -4036,6 +4054,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
{
if(outstring)
{
*outstring = out.str();
*outstring += "Building of project failed\n";
*outstring += output;
*outstring += "\n";
@ -4043,20 +4062,25 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
else
{
std::cerr << "Building of project failed\n";
std::cout << output << "\n";
std::cerr << out << output << "\n";
}
// return to the original directory
cmSystemTools::ChangeDirectory(cwd.c_str());
return 1;
}
if(outstring)
{
*outstring += output;
}
out << output;
if(m_TestCommand.size() == 0)
{
if(outstring)
{
*outstring = out.str();
}
else
{
std::cout << out << "\n";
}
return retVal;
}
@ -4138,7 +4162,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
}
if(outstring)
{
*outstring += out.str();
*outstring = out.str();
}
else
{
@ -4153,7 +4177,6 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
testCommand.push_back(fullPath.c_str());
for(k=0; k < m_TestCommandArgs.size(); ++k)
{
out << m_TestCommandArgs[k].c_str() << "\n";
testCommand.push_back(m_TestCommandArgs[k].c_str());
}
testCommand.push_back(0);
@ -4169,7 +4192,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
out << outs << "\n";
if(outstring)
{
*outstring += out.str();
*outstring = out.str();
}
else
{