|
|
@@ -119,28 +119,28 @@ void cmGraphVizWriter::ReadSettings(const char* settingsFileName,
|
|
|
__set_bool_if_set(this->GenerateForModuleLibs, "GRAPHVIZ_MODULE_LIBS");
|
|
|
__set_bool_if_set(this->GenerateForExternals, "GRAPHVIZ_EXTERNAL_LIBS");
|
|
|
|
|
|
- cmStdString tmpRegexString;
|
|
|
- __set_if_set(tmpRegexString, "GRAPHVIZ_TARGET_IGNORE_REGEX");
|
|
|
- if (tmpRegexString.size() > 0)
|
|
|
- {
|
|
|
- if (!this->TargetIgnoreRegex.compile(tmpRegexString.c_str()))
|
|
|
- {
|
|
|
- std::cerr << "Could not compile bad regex \"" << tmpRegexString << "\""
|
|
|
- << std::endl;
|
|
|
- }
|
|
|
- }
|
|
|
+ cmStdString ignoreTargetsRegexes;
|
|
|
+ __set_if_set(ignoreTargetsRegexes, "GRAPHVIZ_IGNORE_TARGETS");
|
|
|
|
|
|
- this->TargetsToIgnore.clear();
|
|
|
- const char* ignoreTargets = mf->GetDefinition("GRAPHVIZ_IGNORE_TARGETS");
|
|
|
- if ( ignoreTargets )
|
|
|
+ this->TargetsToIgnoreRegex.clear();
|
|
|
+ if (ignoreTargetsRegexes.size() > 0)
|
|
|
{
|
|
|
- std::vector<std::string> ignoreTargetsVector;
|
|
|
- cmSystemTools::ExpandListArgument(ignoreTargets,ignoreTargetsVector);
|
|
|
- for(std::vector<std::string>::iterator itvIt = ignoreTargetsVector.begin();
|
|
|
- itvIt != ignoreTargetsVector.end();
|
|
|
+ std::vector<std::string> ignoreTargetsRegExVector;
|
|
|
+ cmSystemTools::ExpandListArgument(ignoreTargetsRegexes,
|
|
|
+ ignoreTargetsRegExVector);
|
|
|
+ for(std::vector<std::string>::const_iterator itvIt
|
|
|
+ = ignoreTargetsRegExVector.begin();
|
|
|
+ itvIt != ignoreTargetsRegExVector.end();
|
|
|
++ itvIt )
|
|
|
{
|
|
|
- this->TargetsToIgnore.insert(itvIt->c_str());
|
|
|
+ cmStdString currentRegexString(*itvIt);
|
|
|
+ cmsys::RegularExpression currentRegex;
|
|
|
+ if (!currentRegex.compile(currentRegexString.c_str()))
|
|
|
+ {
|
|
|
+ std::cerr << "Could not compile bad regex \"" << currentRegexString
|
|
|
+ << "\"" << std::endl;
|
|
|
+ }
|
|
|
+ this->TargetsToIgnoreRegex.push_back(currentRegex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -415,14 +415,22 @@ int cmGraphVizWriter::CollectAllExternalLibs(int cnt)
|
|
|
|
|
|
bool cmGraphVizWriter::IgnoreThisTarget(const char* name)
|
|
|
{
|
|
|
- if (this->TargetIgnoreRegex.is_valid())
|
|
|
+ for(std::vector<cmsys::RegularExpression>::iterator itvIt
|
|
|
+ = this->TargetsToIgnoreRegex.begin();
|
|
|
+ itvIt != this->TargetsToIgnoreRegex.end();
|
|
|
+ ++ itvIt )
|
|
|
{
|
|
|
- if (this->TargetIgnoreRegex.find(name))
|
|
|
+ cmsys::RegularExpression& regEx = *itvIt;
|
|
|
+ if (regEx.is_valid())
|
|
|
{
|
|
|
- return true;
|
|
|
+ if (regEx.find(name))
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- return (this->TargetsToIgnore.find(name) != this->TargetsToIgnore.end());
|
|
|
+
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
|