Skip to main content

Dependency analyzer for C/C++ projects

Project description

https://travis-ci.org/rakhimov/cppdep.svg?branch=master 'Build status' https://codecov.io/gh/rakhimov/cppdep/branch/master/graph/badge.svg Code Health https://badge.fury.io/py/cppdep.svg

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).

Limitations

  • 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.

Requirements

  1. Python 2.7 or 3.4+

  2. NetworkX

  3. pydot

  4. pydotplus

  5. PyYAML

  6. PyKwalify 1.6.0+

The dependencies can be installed with pip.

$ sudo pip install -r requirements.txt

Installation

From the source:

$ ./setup.py install

The latest stable release from PyPi:

$ pip install cppdep

Usage

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.

Acknowledgments

  • John Lakos for inventing the analysis and providing dep_utils.

  • Zhichang Yu for rewriting dep_utils into Python.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cppdep-0.2.4.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

cppdep-0.2.4-py2.py3-none-any.whl (18.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file cppdep-0.2.4.tar.gz.

File metadata

  • Download URL: cppdep-0.2.4.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cppdep-0.2.4.tar.gz
Algorithm Hash digest
SHA256 a1c28b2f57de73cebe7b6c5285e33403101c6a090ddba7442ed070aace1ee55b
MD5 10b0224d85eb2633309725ead5ed86c4
BLAKE2b-256 4f0b3b6a0853fd112d8e56018f2c0922393caf6c83a95ecd6ca7db608a81f27f

See more details on using hashes here.

File details

Details for the file cppdep-0.2.4-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for cppdep-0.2.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 50041b3fdf9b16207559ce4ffa707ed9aada6fe89dfbbff12e37af480fcba880
MD5 c19af0099f33826e004bac6b6b8ddca0
BLAKE2b-256 1528615b806bb1d663da692ee13ee2ba4cfc3ca8d20a2926032031bbefa90bc5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page