Git Product home page Git Product logo

include_gardener's Introduction

Include Gardener

[TOC]

Include Gardener

Build Status

Introduction

This is a small C++ based commandline-tool which analyzes C/C++ code and creates a graph or include tree. The result can then further analyzed by other tools.

The following output formats are supported at the moment:

This tool

  • is used via command-line
  • supports recursive file search
  • is able to process the files via multiple threads
  • written in C++
  • tested on Linux (GCC, clang)

Build Description

Build dependecies

  • cmake

Runtime Dependencies:

  • boost

Test Dependencies:

  • Python 3.x
  • PyUnit
  • PyGraphviz
  • PyGraphml
  • XMLRunner

Note: pip requires GraphViz development files to install PyGraphViz and PyGraphML. To install these libraries using apt-get, run sudo apt-get libgraphviz-dev

mkdir build
cd build
cmake ..
make
make doc
make install

Usage

# analyzes recursively all files in path/to/files,
# the result is written to stdout
./include_gardener  -P path/to/files

# multiple P options can be provided, for example
./include_gardener  -P path/to/files1 -P path/to/files2

# analyzes recursively all files in the curren directory,
# the include path is set to ./inc and the result is
# written to the file graph.dot:
./include_gardener  -P ./ -I ./inc -o graph.dot

# the result can then be further converted to a scalable vector graphics file.
dot -Tsvg graph.dot > graph.svg

Limitations

C/C++/Obj-C

This tool does not respect any #if #else #endif or other pre-processor statements than #include.

Versions

1.0.0

  • Drops configuration file
  • Re-organizes architecture to allow further languages in fugure
  • Improves C/C++/Obj-C include statement detection

0.2.0

  • Adds configuration file
  • Small stability and performance improvements

0.1.0

  • Initial Version

Contribution

If you find a bug, unexpected behaviour or if you have a interesting feature in your mind which fits to this tool, please add an issue / feature request.

Pull requests are always welcome.

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see http://www.gnu.org/licenses/.

include_gardener's People

Contributors

feddischson avatar gmn95 avatar harshajk avatar jubnzv avatar karjonas avatar kunalmuley avatar lesnyrumcajs avatar thedarksage avatar vjvishjn avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.