ENH: Improve performance by compiling regular expressions when needed
This commit is contained in:
parent
e712c7c05e
commit
bd44dc14fe
|
@ -167,23 +167,6 @@ cmCTestBuildHandler::cmCTestBuildHandler()
|
|||
|
||||
m_LastErrorOrWarning = m_ErrorsAndWarnings.end();
|
||||
|
||||
int cc;
|
||||
for ( cc = 0; cmCTestWarningErrorFileLine[cc].m_RegularExpressionString; ++ cc )
|
||||
{
|
||||
cmCTestBuildHandler::cmCTestCompileErrorWarningRex r;
|
||||
if ( r.m_RegularExpression.compile(
|
||||
cmCTestWarningErrorFileLine[cc].m_RegularExpressionString) )
|
||||
{
|
||||
r.m_FileIndex = cmCTestWarningErrorFileLine[cc].m_FileIndex;
|
||||
r.m_LineIndex = cmCTestWarningErrorFileLine[cc].m_LineIndex;
|
||||
m_ErrorWarningFileLineRegex.push_back(r);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmCTestLog(m_CTest, ERROR_MESSAGE, "Problem Compiling regular expression: "
|
||||
<< cmCTestWarningErrorFileLine[cc].m_RegularExpressionString << std::endl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -226,24 +209,6 @@ void cmCTestBuildHandler::Initialize()
|
|||
|
||||
m_MaxErrors = 50;
|
||||
m_MaxWarnings = 50;
|
||||
|
||||
int cc;
|
||||
for ( cc = 0; cmCTestWarningErrorFileLine[cc].m_RegularExpressionString; ++ cc )
|
||||
{
|
||||
cmCTestBuildHandler::cmCTestCompileErrorWarningRex r;
|
||||
if ( r.m_RegularExpression.compile(
|
||||
cmCTestWarningErrorFileLine[cc].m_RegularExpressionString) )
|
||||
{
|
||||
r.m_FileIndex = cmCTestWarningErrorFileLine[cc].m_FileIndex;
|
||||
r.m_LineIndex = cmCTestWarningErrorFileLine[cc].m_LineIndex;
|
||||
m_ErrorWarningFileLineRegex.push_back(r);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmCTestLog(m_CTest, ERROR_MESSAGE, "Problem Compiling regular expression: "
|
||||
<< cmCTestWarningErrorFileLine[cc].m_RegularExpressionString << std::endl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -266,6 +231,24 @@ int cmCTestBuildHandler::ProcessHandler()
|
|||
{
|
||||
cmCTestLog(m_CTest, HANDLER_OUTPUT, "Build project" << std::endl);
|
||||
|
||||
int entry;
|
||||
for ( entry = 0; cmCTestWarningErrorFileLine[entry].m_RegularExpressionString; ++ entry )
|
||||
{
|
||||
cmCTestBuildHandler::cmCTestCompileErrorWarningRex r;
|
||||
if ( r.m_RegularExpression.compile(
|
||||
cmCTestWarningErrorFileLine[entry].m_RegularExpressionString) )
|
||||
{
|
||||
r.m_FileIndex = cmCTestWarningErrorFileLine[entry].m_FileIndex;
|
||||
r.m_LineIndex = cmCTestWarningErrorFileLine[entry].m_LineIndex;
|
||||
m_ErrorWarningFileLineRegex.push_back(r);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmCTestLog(m_CTest, ERROR_MESSAGE, "Problem Compiling regular expression: "
|
||||
<< cmCTestWarningErrorFileLine[entry].m_RegularExpressionString << std::endl);
|
||||
}
|
||||
}
|
||||
|
||||
// Determine build command and build directory
|
||||
const std::string &makeCommand = m_CTest->GetCTestConfiguration("MakeCommand");
|
||||
if ( makeCommand.size() == 0 )
|
||||
|
|
Loading…
Reference in New Issue