Strip consecutive semicolons when preprocessing genex strings.
This commit is contained in:
parent
3367d0cc7f
commit
b279f2b431
@ -147,6 +147,38 @@ cmCompiledGeneratorExpression::~cmCompiledGeneratorExpression()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
static std::string stripEmptyListElements(const std::string &input)
|
||||||
|
{
|
||||||
|
std::string result;
|
||||||
|
|
||||||
|
const char *c = input.c_str();
|
||||||
|
bool skipSemiColons = true;
|
||||||
|
for ( ; *c; ++c)
|
||||||
|
{
|
||||||
|
if(c[0] == ';')
|
||||||
|
{
|
||||||
|
if(skipSemiColons)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
skipSemiColons = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
skipSemiColons = false;
|
||||||
|
}
|
||||||
|
result += *c;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!result.empty() && *(result.end() - 1) == ';')
|
||||||
|
{
|
||||||
|
result.resize(result.size() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
static std::string stripAllGeneratorExpressions(const std::string &input)
|
static std::string stripAllGeneratorExpressions(const std::string &input)
|
||||||
{
|
{
|
||||||
@ -186,7 +218,7 @@ static std::string stripAllGeneratorExpressions(const std::string &input)
|
|||||||
lastPos = pos;
|
lastPos = pos;
|
||||||
}
|
}
|
||||||
result += input.substr(lastPos);
|
result += input.substr(lastPos);
|
||||||
return result;
|
return stripEmptyListElements(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
@ -247,7 +279,7 @@ static std::string stripExportInterface(const std::string &input,
|
|||||||
}
|
}
|
||||||
result += input.substr(lastPos);
|
result += input.substr(lastPos);
|
||||||
|
|
||||||
return result;
|
return stripEmptyListElements(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user