forked from KDAB/codebrowser
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
80 lines (55 loc) · 3.24 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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)
- Boost
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 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