GithubHelp home page GithubHelp logo

rgfernandes / woboq_codebrowser Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kdab/codebrowser

0.0 2.0 0.0 245 KB

Woboq CodeBrowser

JavaScript 27.16% CSS 7.64% C++ 61.87% C 2.53% Shell 0.80%

woboq_codebrowser's Introduction

This is the generator for the woboq code browser.

See http://code.woboq.org for an example
See http://woboq.com/codebrowser.html for license information
See also the announcement http://woboq.com/blog/codebrowser-introduction.html

Browse the source code of the generator using the code browser itself:
http://code.woboq.org/userspace/codebrowser/


Licence information:
====================
Licensees holding valid commercial licenses provided by Woboq may use
this software in accordance with the terms contained in a written agreement
between the licensee and Woboq.
For further information see http://woboq.com/codebrowser.html

Alternatively, this work may be used under a Creative Commons
Attribution-NonCommercial-ShareAlike 3.0 (CC-BY-NC-SA 3.0) License.
http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_US
This license does not allow you to use the code browser to assist the
development of your commercial software. If you intent to do so, consider
purchasing a commercial licence.


Compiling the generator
=======================

You need:
 - The clang libraries version 3.1 or later (e.g. pre-3.2)
 - A recent C++ compiler (tested with clang 3.1 and gcc 4.7 on Linux)

You may optionaly apply the patch in the patches/ directory to clang
for better performances. (Note: the patch breaks binary compatibility!)


Example:
cmake . -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DLLVM_CONFIG_EXECUTABLE=/opt/llvm/bin/llvm-config -DCMAKE_BUILD_TYPE=Release
make
# because clang searches for includes files in ../lib relative to the executable: 
ln -s /opt/llvm/lib/ .  


If you have errors related to exceptions, edit generator/CMakeLists.txt and replace -fno-rtti by -fexceptions


Using the generator
===================

Step 1: Generate the compile_commands.json for your project

The code browser is built around the clang tooling infrastructure that uses compile_commands.json
http://clang.llvm.org/docs/JSONCompilationDatabase.html
If your build system is cmake, just pass -DCMAKE_EXPORT_COMPILE_COMMANDS=ON to cmake to generate the script.
For other build systems (e.g. qmake, make) you can use scripts/fake_compiler.sh as compiler (see comments in that file)

Step 2: Create code HTML using codebrowser_generator

Before generating, make sure the output directory is empty or does not contains stale files from a previous generation.
Call the codebrowser_generator. You use those arguments:
 -o with the output directory where the generated files will be put
 -b the "build directory" containing the compile_commands.json
 -p (one or more) with project specification. That is the name of the project, the absolute path of the source code, and the revision separated by comas
 
Step 3: Generate the index HTML files using codebrowser_indexer

By running the codebrowser_indexer with the path to the generated html as argument

Step 4: copy the data/ directory one level above the generated html

Example:
To generate the code for this project itself:

 cmake . -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
 git ls-files | egrep "\.cpp$" | xargs ./generator/codebrowser_generator -b $PWD -p codebrowser:$PWD:`git describe` -o ~/public_html/codebrowser
 ./indexgenerator/codebrowser_indexgenerator ~/public_html/codebrowser
 ln -s ./data ~/public_html/
 
Step 5: Open it in a browser or upload it to your webserver

woboq_codebrowser's People

Contributors

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