ReadCpp

Analyse ANSI C++ code.

Process a list of sln, vcxproj, cpp and h files or a CMakeLists.txt file.

Expected usage: DeepEnds ReadCpp <options> filenames
<options> available:
      --extract              Default(coupling). Whether to perform a coupling,
                               cohesion or callgraph analysis
      --output               Required. Path of DGML file (*.dgml) for Visual
                               Studio
      --externals            Default(true). Whether to write the links to the
                               sources
      --binary               Default(). Directory containing CMakeCache.txt
      --configPlatform       Default(Debug|Win32). Visual Studio build
                               configuration and platform
      --standard             Default(). Path to the standard library

Examples:
  DeepEnds ReadCpp --output=C:\Results\Constructor2.dgml --extract=cohesion C:\Source\Constructor2.h
      - read a C++ file to produce a cohesion graph
  DeepEnds ReadCpp --output=C:\Results\SharedProject.dgml C:\Source\Shared.sln
      - read a Visual Studio solution file to produce a coupling graph
  DeepEnds ReadCpp --output=C:\Results\CMake.dgml C:\Source\CMakeLists.txt
      - recursively read a CMake project

If reading the code for a coupling analysis then the namespaces, enumerants, classes, structures, etc. are extracted into a nested node structure where individual leaf nodes are joined based on whether they reference each other.

If reading the code for a cohesion analysis then the namespaces, classes, structures, etc. are extracted into a nested node structure where individual member variables and methods are joined based on whether they reference each other.

The resulting DGML file can be viewed in Visual Studio where, if externals was set to true, right clicking on a node will produce a pop up menu with the option to Go To Reference that will open the relevant source code. Any unused node should be shaded in pastel yellow. Alternatively it can be processed in other tools.