summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Pfeifer <daniel@pfeifer-mail.de>2014-02-09 22:58:44 +0100
committerBrad King <brad.king@kitware.com>2014-02-10 10:30:50 -0500
commit18bef4cd66e62b0cb167767f121e54161749c2f8 (patch)
tree8f867124946e7164cc0c73c3c2b127191923db3b
parent6abdc6c16acec3cb6601cc0bdeba4dec30857a02 (diff)
downloadcmake-18bef4cd66e62b0cb167767f121e54161749c2f8.tar.gz
graphviz: allow to disable per target graphs (#14746)
In CMakeGraphVizOptions.cmake, allow the options GRAPHVIZ_GENERATE_PER_TARGET and GRAPHVIZ_GENERATE_DEPENDERS to enable the generation of per target graphs and subgraphs respectively. Both options are TRUE per default to maintain current behavior.
-rw-r--r--Modules/CMakeGraphVizOptions.cmake14
-rw-r--r--Source/cmGraphVizWriter.cxx14
-rw-r--r--Source/cmGraphVizWriter.h2
3 files changed, 30 insertions, 0 deletions
diff --git a/Modules/CMakeGraphVizOptions.cmake b/Modules/CMakeGraphVizOptions.cmake
index f2b8e59765..64c89b91d8 100644
--- a/Modules/CMakeGraphVizOptions.cmake
+++ b/Modules/CMakeGraphVizOptions.cmake
@@ -93,6 +93,20 @@
#
# * Mandatory : NO
# * Default : empty
+#
+# .. variable:: GRAPHVIZ_GENERATE_PER_TARGET
+#
+# Set this to FALSE to exclude per target graphs ``foo.dot.<target>``.
+#
+# * Mandatory : NO
+# * Default : TRUE
+#
+# .. variable:: GRAPHVIZ_GENERATE_DEPENDERS
+#
+# Set this to FALSE to exclude depender graphs ``foo.dot.<target>.dependers``.
+#
+# * Mandatory : NO
+# * Default : TRUE
#=============================================================================
# Copyright 2007-2009 Kitware, Inc.
diff --git a/Source/cmGraphVizWriter.cxx b/Source/cmGraphVizWriter.cxx
index 3a7070e5de..db964a9890 100644
--- a/Source/cmGraphVizWriter.cxx
+++ b/Source/cmGraphVizWriter.cxx
@@ -53,6 +53,8 @@ cmGraphVizWriter::cmGraphVizWriter(const std::vector<cmLocalGenerator*>&
,GenerateForSharedLibs(true)
,GenerateForModuleLibs(true)
,GenerateForExternals(true)
+,GeneratePerTarget(true)
+,GenerateDependers(true)
,LocalGenerators(localGenerators)
,HaveTargetsAndLibs(false)
{
@@ -116,6 +118,8 @@ void cmGraphVizWriter::ReadSettings(const char* settingsFileName,
__set_bool_if_set(this->GenerateForSharedLibs, "GRAPHVIZ_SHARED_LIBS");
__set_bool_if_set(this->GenerateForModuleLibs, "GRAPHVIZ_MODULE_LIBS");
__set_bool_if_set(this->GenerateForExternals, "GRAPHVIZ_EXTERNAL_LIBS");
+ __set_bool_if_set(this->GeneratePerTarget, "GRAPHVIZ_GENERATE_PER_TARGET");
+ __set_bool_if_set(this->GenerateDependers, "GRAPHVIZ_GENERATE_DEPENDERS");
cmStdString ignoreTargetsRegexes;
__set_if_set(ignoreTargetsRegexes, "GRAPHVIZ_IGNORE_TARGETS");
@@ -149,6 +153,11 @@ void cmGraphVizWriter::ReadSettings(const char* settingsFileName,
// which other targets depend on it.
void cmGraphVizWriter::WriteTargetDependersFiles(const char* fileName)
{
+ if(this->GenerateDependers == false)
+ {
+ return;
+ }
+
this->CollectTargetsAndLibs();
for(std::map<cmStdString, const cmTarget*>::const_iterator ptrIt =
@@ -195,6 +204,11 @@ void cmGraphVizWriter::WriteTargetDependersFiles(const char* fileName)
// on which targets it depends.
void cmGraphVizWriter::WritePerTargetFiles(const char* fileName)
{
+ if(this->GeneratePerTarget == false)
+ {
+ return;
+ }
+
this->CollectTargetsAndLibs();
for(std::map<cmStdString, const cmTarget*>::const_iterator ptrIt =
diff --git a/Source/cmGraphVizWriter.h b/Source/cmGraphVizWriter.h
index f784aa0a1f..17b97f8c90 100644
--- a/Source/cmGraphVizWriter.h
+++ b/Source/cmGraphVizWriter.h
@@ -74,6 +74,8 @@ protected:
bool GenerateForSharedLibs;
bool GenerateForModuleLibs;
bool GenerateForExternals;
+ bool GeneratePerTarget;
+ bool GenerateDependers;
std::vector<cmsys::RegularExpression> TargetsToIgnoreRegex;