{"id":13936553,"url":"https://github.com/rakhimov/cppdep","last_synced_at":"2025-04-30T14:11:30.501Z","repository":{"id":44947605,"uuid":"69170389","full_name":"rakhimov/cppdep","owner":"rakhimov","description":"C/C++ Dependency Analyzer: a rewrite of John Lakos' dep_utils (adep/cdep/ldep) from \"Large-Scale C++ Software Design\"","archived":false,"fork":false,"pushed_at":"2022-01-16T22:55:07.000Z","size":305,"stargazers_count":140,"open_issues_count":17,"forks_count":19,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-02-18T07:07:58.365Z","etag":null,"topics":["c-plus-plus","dependency-analysis","metrics","quality"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rakhimov.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-25T14:47:27.000Z","updated_at":"2024-12-27T03:47:23.000Z","dependencies_parsed_at":"2022-09-04T22:30:11.043Z","dependency_job_id":null,"html_url":"https://github.com/rakhimov/cppdep","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakhimov%2Fcppdep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakhimov%2Fcppdep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakhimov%2Fcppdep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakhimov%2Fcppdep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rakhimov","download_url":"https://codeload.github.com/rakhimov/cppdep/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240627961,"owners_count":19831599,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","dependency-analysis","metrics","quality"],"created_at":"2024-08-07T23:02:46.707Z","updated_at":"2025-02-25T08:15:13.638Z","avatar_url":"https://github.com/rakhimov.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"######\n|logo|\n######\n\n.. image:: https://travis-ci.org/rakhimov/cppdep.svg?branch=master\n    :target: https://travis-ci.org/rakhimov/cppdep\n.. image:: https://ci.appveyor.com/api/projects/status/1ff39sfjp7ija3j8/branch/master?svg=true\n    :target: https://ci.appveyor.com/project/rakhimov/cppdep/branch/master\n    :alt: 'Build status'\n.. image:: https://codecov.io/gh/rakhimov/cppdep/branch/master/graph/badge.svg\n  :target: https://codecov.io/gh/rakhimov/cppdep\n.. image:: https://landscape.io/github/rakhimov/cppdep/master/landscape.svg?style=flat\n   :target: https://landscape.io/github/rakhimov/cppdep/master\n   :alt: Code Health\n.. image:: https://badge.fury.io/py/cppdep.svg\n    :target: https://badge.fury.io/py/cppdep\n\n|\n\n``cppdep`` performs dependency analysis\namong components/packages/package groups of a large C/C++ project.\nThis is a rewrite of ``dep_utils(adep/cdep/ldep)``,\nwhich is provided by John Lakos' book\n\"Large-Scale C++ Software Design\", Addison Wesley (1996).\n\n.. |logo| image:: logo.png\n\n\nLimitations\n===========\n\n- Indirect `extern` declarations of global variables or functions\n  instead of including the proper component header with the declarations.\n- Embedded dynamic dependencies,\n  such as dynamic loading and configurable internal services.\n- Preprocessing or macro expansion is not performed.\n  Dependency inclusion via preprocessor *meta-programming* is not handled.\n- Dependency exclusion with C style multi-line comments or macros\n  is not respected.\n\n\nRequirements\n============\n\n#. Python 2.7 or 3.4+\n#. `NetworkX \u003chttp://networkx.lanl.gov/\u003e`_\n#. pydot\n#. pydotplus\n#. PyYAML\n#. PyKwalify 1.6.0+\n\nThe dependencies can be installed with ``pip``.\n\n.. code-block:: bash\n\n    $ sudo pip install -r requirements.txt\n\n\nInstallation\n============\n\nFrom the source:\n\n.. code-block:: bash\n\n    $ ./setup.py install\n\nThe latest stable release from PyPi:\n\n.. code-block:: bash\n\n    $ pip install cppdep\n\n\nUsage\n=====\n\nCreate a configuration file\nthat describes the project for analysis.\n``config_schema.yml`` is given for guidance.\n\nIn the root directory of the project with the configuration file,\nrun the following command to generate dependency analysis reports and graphs.\n\n.. code-block:: bash\n\n    $ cppdep -c /path/to/config/file\n\nMore documentation and example configurations\ncan be found in project `wiki \u003chttps://github.com/rakhimov/cppdep/wiki\u003e`_.\n\n\nAcknowledgments\n===============\n\n- John Lakos for inventing the analysis and providing ``dep_utils``.\n- `Zhichang Yu \u003chttps://github.com/yuzhichang\u003e`_ for rewriting ``dep_utils`` into Python.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frakhimov%2Fcppdep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frakhimov%2Fcppdep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frakhimov%2Fcppdep/lists"}