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

  4. PyYAML

  5. 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.3.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for cppdep-0.2.3.tar.gz
Algorithm Hash digest
SHA256 4c6cd8471118b615e9a4e8d8662256985d1a72daa0b70a28b1ba0fa26a62b135
MD5 d48632d54aee0698b86ddb3e228ca33c
BLAKE2b-256 26956d850dce6015dcbdc6100b36f9ddf6f0e76456115edd718fbe3bc07089f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cppdep-0.2.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c95ec6c988e6a741e0b2593ae9b3e2c9226db3116844f02eacbbf179f379b0b4
MD5 8bde48bfb4ba2f6e7fdccaa190481ee3
BLAKE2b-256 ffd090e5cd135b7a0fa3e8562a5113ba346c65918e1f02035c567a99792b5ddd

See more details on using hashes here.

Supported by

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