cppdep
performs dependency analysis
among components/packages/package groups of a large C/C++ project.
This is a rewrite of dep_utils(adep/cdep/ldep)
,
which is provided by John Lakos' book
"Large-Scale C++ Software Design", Addison Wesley (1996).
- Indirect extern declarations of global variables or functions instead of including the proper component header with the declarations.
- Embedded dynamic dependencies, such as dynamic loading and configurable internal services.
- Preprocessing or macro expansion is not performed. Dependency inclusion via preprocessor meta-programming is not handled.
- Dependency exclusion with C style multi-line comments or macros is not respected.
- Python 2.7 or 3.4+
- NetworkX
- pydot
- pydotplus
- PyYAML
- PyKwalify 1.6.0+
The dependencies can be installed with pip
.
$ sudo pip install -r requirements.txt
From the source:
$ ./setup.py install
The latest stable release from PyPi:
$ pip install cppdep
Create a configuration file
that describes the project for analysis.
config_schema.yml
is given for guidance.
In the root directory of the project with the configuration file, run the following command to generate dependency analysis reports and graphs.
$ cppdep -c /path/to/config/file
More documentation and example configurations can be found in project wiki.
- John Lakos for inventing the analysis and providing
dep_utils
. - Zhichang Yu for rewriting
dep_utils
into Python.