Merge topic 'dev/static-regex'

1b003c1f cmTarget: Remove an unused variable
7492a7b8 regex: Search on strings where possible
3e7194a2 regex: Use static regexs where possible
This commit is contained in:
Brad King 2014-06-10 09:17:35 -04:00 committed by CMake Topic Stage
commit 0c73273b1a
6 changed files with 19 additions and 25 deletions

View File

@ -588,8 +588,8 @@ void cmCPackNSISGenerator::CreateMenuLinks( cmOStringStream& str,
return; return;
} }
cmsys::RegularExpression urlRegex; static cmsys::RegularExpression
urlRegex.compile("^(mailto:|(ftps?|https?|news)://).*$"); urlRegex("^(mailto:|(ftps?|https?|news)://).*$");
std::vector<std::string>::iterator it; std::vector<std::string>::iterator it;
for ( it = cpackMenuLinksVector.begin(); for ( it = cpackMenuLinksVector.begin();

View File

@ -1811,7 +1811,7 @@ cmComputeLinkInformation::AddLibraryRuntimeInfo(std::string const& fullPath)
} }
} }
is_shared_library = this->ExtractSharedLibraryName.find(file.c_str()); is_shared_library = this->ExtractSharedLibraryName.find(file);
if(!is_shared_library) if(!is_shared_library)
{ {
@ -1831,8 +1831,8 @@ cmComputeLinkInformation::AddLibraryRuntimeInfo(std::string const& fullPath)
{ {
if(fullPath.find(".framework") != std::string::npos) if(fullPath.find(".framework") != std::string::npos)
{ {
cmsys::RegularExpression splitFramework; static cmsys::RegularExpression
splitFramework.compile("^(.*)/(.*).framework/(.*)$"); splitFramework("^(.*)/(.*).framework/(.*)$");
if(splitFramework.find(fullPath) && if(splitFramework.find(fullPath) &&
(std::string::npos != (std::string::npos !=
splitFramework.match(3).find(splitFramework.match(2)))) splitFramework.match(3).find(splitFramework.match(2))))

View File

@ -469,12 +469,11 @@ std::string::size_type cmGeneratorExpression::Find(const std::string &input)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool cmGeneratorExpression::IsValidTargetName(const std::string &input) bool cmGeneratorExpression::IsValidTargetName(const std::string &input)
{ {
cmsys::RegularExpression targetNameValidator;
// The ':' is supported to allow use with IMPORTED targets. At least // The ':' is supported to allow use with IMPORTED targets. At least
// Qt 4 and 5 IMPORTED targets use ':' as the namespace delimiter. // Qt 4 and 5 IMPORTED targets use ':' as the namespace delimiter.
targetNameValidator.compile("^[A-Za-z0-9_.:+-]+$"); static cmsys::RegularExpression targetNameValidator("^[A-Za-z0-9_.:+-]+$");
return targetNameValidator.find(input.c_str()); return targetNameValidator.find(input);
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------

View File

@ -401,9 +401,8 @@ struct CompilerIdNode : public cmGeneratorExpressionNode
{ {
return compilerId ? compilerId : ""; return compilerId ? compilerId : "";
} }
cmsys::RegularExpression compilerIdValidator; static cmsys::RegularExpression compilerIdValidator("^[A-Za-z0-9_]*$");
compilerIdValidator.compile("^[A-Za-z0-9_]*$"); if (!compilerIdValidator.find(*parameters.begin()))
if (!compilerIdValidator.find(parameters.begin()->c_str()))
{ {
reportError(context, content->GetOriginalExpression(), reportError(context, content->GetOriginalExpression(),
"Expression syntax not recognized."); "Expression syntax not recognized.");
@ -509,9 +508,8 @@ struct CompilerVersionNode : public cmGeneratorExpressionNode
return compilerVersion ? compilerVersion : ""; return compilerVersion ? compilerVersion : "";
} }
cmsys::RegularExpression compilerIdValidator; static cmsys::RegularExpression compilerIdValidator("^[0-9\\.]*$");
compilerIdValidator.compile("^[0-9\\.]*$"); if (!compilerIdValidator.find(*parameters.begin()))
if (!compilerIdValidator.find(parameters.begin()->c_str()))
{ {
reportError(context, content->GetOriginalExpression(), reportError(context, content->GetOriginalExpression(),
"Expression syntax not recognized."); "Expression syntax not recognized.");
@ -711,9 +709,8 @@ static const struct ConfigurationTestNode : public cmGeneratorExpressionNode
{ {
return configurationNode.Evaluate(parameters, context, content, 0); return configurationNode.Evaluate(parameters, context, content, 0);
} }
cmsys::RegularExpression configValidator; static cmsys::RegularExpression configValidator("^[A-Za-z0-9_]*$");
configValidator.compile("^[A-Za-z0-9_]*$"); if (!configValidator.find(*parameters.begin()))
if (!configValidator.find(parameters.begin()->c_str()))
{ {
reportError(context, content->GetOriginalExpression(), reportError(context, content->GetOriginalExpression(),
"Expression syntax not recognized."); "Expression syntax not recognized.");
@ -884,8 +881,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
"$<TARGET_PROPERTY:...> expression requires one or two parameters"); "$<TARGET_PROPERTY:...> expression requires one or two parameters");
return std::string(); return std::string();
} }
cmsys::RegularExpression propertyNameValidator; static cmsys::RegularExpression propertyNameValidator("^[A-Za-z0-9_]+$");
propertyNameValidator.compile("^[A-Za-z0-9_]+$");
cmTarget const* target = context->HeadTarget; cmTarget const* target = context->HeadTarget;
std::string propertyName = *parameters.begin(); std::string propertyName = *parameters.begin();
@ -973,7 +969,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
return std::string(); return std::string();
} }
if (!propertyNameValidator.find(propertyName.c_str())) if (!propertyNameValidator.find(propertyName))
{ {
::reportError(context, content->GetOriginalExpression(), ::reportError(context, content->GetOriginalExpression(),
"Property name not supported."); "Property name not supported.");

View File

@ -39,8 +39,8 @@ public:
if(file.rfind(".framework") != std::string::npos) if(file.rfind(".framework") != std::string::npos)
{ {
cmsys::RegularExpression splitFramework; static cmsys::RegularExpression
splitFramework.compile("^(.*)/(.*).framework/(.*)$"); splitFramework("^(.*)/(.*).framework/(.*)$");
if(splitFramework.find(file) && if(splitFramework.find(file) &&
(std::string::npos != (std::string::npos !=
splitFramework.match(3).find(splitFramework.match(2)))) splitFramework.match(3).find(splitFramework.match(2))))
@ -326,8 +326,8 @@ void cmOrderDirectories::AddRuntimeLibrary(std::string const& fullPath,
if(fullPath.rfind(".framework") != std::string::npos) if(fullPath.rfind(".framework") != std::string::npos)
{ {
cmsys::RegularExpression splitFramework; static cmsys::RegularExpression
splitFramework.compile("^(.*)/(.*).framework/(.*)$"); splitFramework("^(.*)/(.*).framework/(.*)$");
if(splitFramework.find(fullPath) && if(splitFramework.find(fullPath) &&
(std::string::npos != (std::string::npos !=
splitFramework.match(3).find(splitFramework.match(2)))) splitFramework.match(3).find(splitFramework.match(2))))

View File

@ -6145,7 +6145,6 @@ void processILibs(const std::string& config,
if (emitted.insert(tgt).second) if (emitted.insert(tgt).second)
{ {
tgts.push_back(tgt); tgts.push_back(tgt);
std::vector<std::string> ilibs;
cmTarget::LinkInterface const* iface = cmTarget::LinkInterface const* iface =
tgt->GetLinkInterfaceLibraries(config, headTarget); tgt->GetLinkInterfaceLibraries(config, headTarget);
if (iface) if (iface)