diff options
author | Alex Neundorf <neundorf@kde.org> | 2011-02-05 18:09:54 (GMT) |
---|---|---|
committer | Alex Neundorf <neundorf@kde.org> | 2011-02-05 18:09:54 (GMT) |
commit | 4f96a7621fe57cd42dc659572eb2a31c84c65abd (patch) | |
tree | d5e1d959baf054a45ee1dae94937d1c5aacd8a93 /Source/cmGraphVizWriter.cxx | |
parent | 5698ad2047002529ff095fb9be2eb5c1d2f7a485 (diff) | |
download | CMake-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.cxx | 52 |
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; } |