Git Product home page Git Product logo

flowgen's Introduction

FLOWGEN SOFTWARE PREREQUISITES:
=====

• Python3 
http://www.python.org/getit/

• PlantUML (already provided; NO need to install)
http://plantuml.sourceforge.net/

• LLVM-Clang 3.1 (or superior) 
http://clang.llvm.org/

• Clang-Python3 bindings (already provided+fixed some bugs; NO need to install)
https://github.com/kennytm/clang-cindex-python3


ACKNOWLEDGMENTS:
=====
Thanks to the PlantUML team, specially to Arnaud Roques; to cldoc’s developer, Jesse Van Den Kieboom; 
and to the big LLVM+Clang developer community. This tool would not be possible without them.


INSTALLATION:
=====

[FOR UNIX-LIKE SYSTEMS: MAC/LINUX]

- Install Python3 (if not present)

- Install LLVM+Clang 3.1 (or superior). 

For MAC, you may try using a package management solution such as MacPorts or Fink.
For Linux (type?), you may try using a package management solution such as…

LLVM+Clang pre-built binaries are available from
http://llvm.org/releases/download.html

After installation, the environment variable
$LD_LIBRARY_PATH=path_to_llvm/lib
pointing to the libraries should have been set, or it can be set manually.
That folder contains required library files such as "libclang.dylib". 

- Download Flowgen from GitHub.


[FOR WINDOWS]

- Install Python3 (does not seem to work with a portable version, needs a normal installation)

- Install LLVM+Clang 3.1 (or superior). 

Prebuilt binaries available (3.4 or superior) from
http://llvm.org/releases/download.html
Choose the option 'Add LLVM to system PATH for all users’

- Download Flowgen from GitHub.



CONFIGURING AND RUNNING FLOWGEN:
=====

There is an example in the folder EXAMPLE, with some C++ code. 

[FOR UNIX-LIKE SYSTEMS: MAC/LINUX]

The makefile is configured to either compile the sample program, by typing
> make a.out
or to run Flowgen and generate the documentation, by typing
> make flowdoc
The documentation is generated as .html files inside flowdoc/

Note: erase the folder flowdoc/ to regenerate completely the documentation.
Note: it may be necessary to adjust the variables FLOWGEN_DIR and CXX to run the makefile. 
Note: type ‘make’ to do both actions (compiling and generating documentation) in the same run.
Note [MAC SPECIFIC]: by default, makefiles are not recognized on Mac systems. In order to check, 
      you can do 'make --version'. If it says: ‘-bash: make: command not found’, then you should install it. 
      The easiest is to install the xCode addition to Mac OS X. 

The //$ annotations and the code can be changed in the test C++ code to experiment with Flowgen.

[FOR WINDOWS]

Set FLOWGEN_DIR environment variable to the FLOWGEN folder
The make batch file ‘make_WIN.bat’ is configured to run the example
The documentation is generated as .html files inside flowdoc/

NOTE: FOR THE MOMENT, the user has to copy manually the folder '/htmlCSSandJS' from the Flowgen folder
      into the /flowdoc folder of the documentation project
      This should be done automatically by make_WIN.bat

The //$ annotations and the code can be changed in the test C++ code to experiment with Flowgen.



MAP OF FILES
=====

build_db.py —> Flowgen Python3 executable
makeflows.py —> Flowgen Python3 executable
makehtml.py —> Flowgen Python3 executable
plantuml.jar —> PlantUML java executable, used by Flowgen
ToDoList.txt —> To Do list, for continued development of the open source Flowgen tool.
LICENSE.txt —> License agreement
README.txt —> Information
clang/ —> FOLDER with Clang-Python3 bindings, used by Flowgen
htmlCSSandJS/ --> FOLDER with CSS and Javascript files that are copied 
                  into the '/flowdoc' SUBFOLDER of any project by the Flowgen script, 
                  and which are needed by the output HTML files
example/  —> FOLDER with sample application
      /make_WIN.bat —> Flowgen executable for WINDOWS
      /Makefile —> Makefile for systems that have the Make utility. 
                   It can be used to compile the C++ code or to run Flowgen
      /simple_demo_src.cpp —> sample C++ source file with main() function  
      /include/ —> SUB-FOLDER with sample C++  headers
      /src/ —> SUB-FOLDER with sample C++  source files
      /flowdoc/ —> SUB-FOLDER with documentation generated by flowgen 
                   (this whole folder can be erased and regenerated via Flowgen)
              /*.html —> the output HTML documentation files
              /aux_files/ —> SUB-SUB-FOLDER with auxiliary files created by Flowgen: 
                             - database files (.flowdb)
                             - diagrams (.png), 
                             - CMAPX files which are used by the HTML output files 
                               to generate hyperlinks in the PNG diagram files.
                             - PlantUML diagram-descriptions (*.txt)  
                               (they can be used as input to PlantUML)




flowgen's People

Contributors

aserebrenik avatar jlopezvi avatar rimathia avatar

Watchers

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