[CMake] CMake and Dia , colorize cmake graphviz output
Alexander Neundorf
a.neundorf-work at gmx.net
Wed Sep 11 15:06:43 EDT 2013
On Wednesday 11 September 2013, Sankar P wrote:
> Hi,
>
> Two questions.
>
> I found the `cmake --graphviz=<somename>.out ` to be extremely useful.
> However, is it possible to generate a .dia file instead of a .out file
> ? I see that graphviz has removed support for .dia export and that is
> probably the reason why this is not working. But is there any other
> way to generate a .dia file from a CMake based project ? I ask this
> because the dot files are not edit friendly and even the lefty tool is
> very rudimentary. I will prefer to use Dia. Suppose if I am interested
> in contributing this as a patch, if it is not available, can someone
> show a pointer on where I should start looking for cmake dependency
> graph related things ?
>
> Is it possible to colorize the CMake graphviz output ? I looked at the
> .cmake files generated by CMake in openSUSE 12.3 and I could not find
> any .cmake file that I could tweak to customize the graphviz output.
> Can someone help me understand how to colorize cmake graphviz output ?
>
> I am not subscribed to the mails in the list. So please reply-all or
> CC me in your replies.
>
> Thanks.
cmake 2.8.12 has some documentation for the graphviz-related options.
Maybe there is something which helps you:
$ cmake --help-module CMakeGraphVizOptions
cmake version 2.8.11.20130729-g03f4a-dirty
CMakeGraphVizOptions
The builtin graphviz support of CMake.
CMake can generate graphviz files, showing the dependencies between
the targets in a project and also external libraries which are linked
against. When CMake is run with the --graphiz=foo option, it will produce
* a foo.dot file showing all dependencies in the project
* a foo.dot.<target> file for each target, file showing on which other
targets the respective target depends
* a foo.dot.<target>.dependers file, showing which other targets depend on
the respective target
This can result in huge graphs. Using the file
CMakeGraphVizOptions.cmake the look and content of the generated
graphs can be influenced. This file is searched first in
${CMAKE_BINARY_DIR} and then in ${CMAKE_SOURCE_DIR}. If found, it is
read and the variables set in it are used to adjust options for the
generated graphviz files.
GRAPHVIZ_GRAPH_TYPE - The graph type
Mandatory : NO
Default : "digraph"
GRAPHVIZ_GRAPH_NAME - The graph name.
Mandatory : NO
Default : "GG"
GRAPHVIZ_GRAPH_HEADER - The header written at the top of the graphviz file.
Mandatory : NO
Default : "node [n fontsize = "12"];"
GRAPHVIZ_NODE_PREFIX - The prefix for each node in the graphviz file.
Mandatory : NO
Default : "node"
GRAPHVIZ_EXECUTABLES - Set this to FALSE to exclude executables from the
generated graphs.
Mandatory : NO
Default : TRUE
GRAPHVIZ_STATIC_LIBS - Set this to FALSE to exclude static libraries from
the generated graphs.
Mandatory : NO
Default : TRUE
GRAPHVIZ_SHARED_LIBS - Set this to FALSE to exclude shared libraries from
the generated graphs.
Mandatory : NO
Default : TRUE
GRAPHVIZ_MODULE_LIBS - Set this to FALSE to exclude module libraries from
the generated graphs.
Mandatory : NO
Default : TRUE
GRAPHVIZ_EXTERNAL_LIBS - Set this to FALSE to exclude external libraries
from the generated graphs.
Mandatory : NO
Default : TRUE
GRAPHVIZ_IGNORE_TARGETS - A list of regular expressions for ignoring
targets.
Mandatory : NO
Default : empty
Alex
More information about the CMake
mailing list