summaryrefslogtreecommitdiffstats
path: root/Source/cmGraphVizWriter.cxx
diff options
context:
space:
mode:
authorAlex Neundorf <neundorf@kde.org>2011-02-05 18:09:54 (GMT)
committerAlex Neundorf <neundorf@kde.org>2011-02-05 18:09:54 (GMT)
commit4f96a7621fe57cd42dc659572eb2a31c84c65abd (patch)
treed5e1d959baf054a45ee1dae94937d1c5aacd8a93 /Source/cmGraphVizWriter.cxx
parent5698ad2047002529ff095fb9be2eb5c1d2f7a485 (diff)
downloadCMake-4f96a7621fe57cd42dc659572eb2a31c84c65abd.zip
CMake-4f96a7621fe57cd42dc659572eb2a31c84c65abd.tar.gz
CMake-4f96a7621fe57cd42dc659572eb2a31c84c65abd.tar.bz2
GRAPHVIZ_IGNORE_TARGETS is now a list of regular expressions
This is similar e.g. to CTEST_CUSTOM_WARNING_EXCEPTION from ctest. GRAPHVIZ_TARGET_IGNORE_REGEX is not supported anymore. I hope this is ok, since this was 100% undocumented and can't break a build. Alex
Diffstat (limited to 'Source/cmGraphVizWriter.cxx')
-rw-r--r--Source/cmGraphVizWriter.cxx52
1 files changed, 30 insertions, 22 deletions
diff --git a/Source/cmGraphVizWriter.cxx b/Source/cmGraphVizWriter.cxx
index 5a08ca6..079d30e 100644
--- a/Source/cmGraphVizWriter.cxx
+++ b/Source/cmGraphVizWriter.cxx
@@ -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;
}