bake-toolkit 2.11.4 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/documentation/_build/html/_sources/changelog.txt +4 -1
- data/documentation/_build/html/_sources/index.txt +2 -3
- data/documentation/_build/html/_static/syntax.html +2 -4
- data/documentation/_build/html/changelog.html +11 -5
- data/documentation/_build/html/commandline/commandline.html +4 -4
- data/documentation/_build/html/concepts/build_hierarchy.html +4 -4
- data/documentation/_build/html/concepts/concepts.html +4 -4
- data/documentation/_build/html/concepts/the_main_project.html +4 -4
- data/documentation/_build/html/concepts/the_project_meta_file.html +4 -4
- data/documentation/_build/html/genindex.html +4 -4
- data/documentation/_build/html/ide/eclipse/eclipse.html +4 -4
- data/documentation/_build/html/ide/eclipse/how_to_convert_existing_cdt_workspace.html +4 -4
- data/documentation/_build/html/ide/eclipse/how_to_create_a_new_project_in_eclipse.html +4 -4
- data/documentation/_build/html/ide/eclipse/how_to_create_a_workspace_in_eclipse.html +4 -4
- data/documentation/_build/html/ide/eclipse/how_to_install_eclipse_plugin.html +4 -4
- data/documentation/_build/html/ide/eclipse/how_to_use_bake_in_eclipse.html +4 -4
- data/documentation/_build/html/ide/ide_integrations.html +4 -4
- data/documentation/_build/html/ide/vs/how_to_create_vs_projects.html +4 -4
- data/documentation/_build/html/ide/vs/how_to_debug_in_vs.html +4 -4
- data/documentation/_build/html/ide/vs/how_to_used_bake_in_vs.html +4 -4
- data/documentation/_build/html/ide/vs/vs.html +4 -4
- data/documentation/_build/html/ide/vs/vs_install.html +4 -4
- data/documentation/_build/html/index.html +7 -7
- data/documentation/_build/html/install/install_bake.html +4 -4
- data/documentation/_build/html/internal.html +4 -4
- data/documentation/_build/html/known_issues.html +4 -4
- data/documentation/_build/html/license.html +4 -4
- data/documentation/_build/html/objects.inv +0 -0
- data/documentation/_build/html/performance/performance.html +4 -4
- data/documentation/_build/html/quickstart/quickstart.html +4 -4
- data/documentation/_build/html/search.html +4 -4
- data/documentation/_build/html/searchindex.js +1 -1
- data/documentation/_build/html/syntax/derive_configs.html +4 -4
- data/documentation/_build/html/syntax/project_meta_syntax.html +6 -8
- data/documentation/_build/html/syntax/syntax.html +4 -4
- data/documentation/_build/html/syntax/variable_substitutions.html +4 -4
- data/documentation/_build/html/tips_and_tricks/how_to_use_bake_with_cygwin.html +4 -4
- data/documentation/_build/html/tips_and_tricks/static_code_analysis.html +4 -4
- data/documentation/_build/html/tips_and_tricks/the_bakery.html +4 -4
- data/documentation/_build/html/tips_and_tricks/the_clang.html +4 -4
- data/documentation/_build/html/tips_and_tricks/tips_and_tricks.html +4 -4
- data/documentation/_build/html/why_bake/why_bake.html +6 -6
- data/lib/bake/util.rb +1 -1
- data/lib/blocks/block.rb +11 -14
- data/lib/common/version.rb +1 -1
- data/lib/tocxx.rb +7 -7
- metadata +2 -70
- data/doc/cmd/install.html +0 -74
- data/doc/cmd/mount.png +0 -0
- data/doc/cmd/ruby.png +0 -0
- data/doc/cmd/tty.png +0 -0
- data/doc/cmd/usecmd.html +0 -80
- data/doc/cmd/usecygwin.html +0 -49
- data/doc/concepts/buildhierarchy.html +0 -42
- data/doc/concepts/configfile.html +0 -102
- data/doc/concepts/hier.png +0 -0
- data/doc/concepts/mainproject.html +0 -87
- data/doc/deployDoc.bat +0 -2
- data/doc/dyk/clang.html +0 -50
- data/doc/dyk/keys.png +0 -0
- data/doc/dyk/lint.html +0 -78
- data/doc/dyk/tipps.html +0 -45
- data/doc/eclipse/build/buildFile.png +0 -0
- data/doc/eclipse/build/buildMain.png +0 -0
- data/doc/eclipse/build/console.png +0 -0
- data/doc/eclipse/build/problem.png +0 -0
- data/doc/eclipse/export.html +0 -39
- data/doc/eclipse/export/Script.png +0 -0
- data/doc/eclipse/export/Select.png +0 -0
- data/doc/eclipse/import.html +0 -31
- data/doc/eclipse/import/Import.png +0 -0
- data/doc/eclipse/import/Select.png +0 -0
- data/doc/eclipse/install.html +0 -26
- data/doc/eclipse/install/AddRepository.png +0 -0
- data/doc/eclipse/install/AvailableSoftware.png +0 -0
- data/doc/eclipse/install/InstallNewSoftware.png +0 -0
- data/doc/eclipse/install/Licenses.png +0 -0
- data/doc/eclipse/install/Restart.png +0 -0
- data/doc/eclipse/install/TrustMe.png +0 -0
- data/doc/eclipse/misc/pref.png +0 -0
- data/doc/eclipse/new.html +0 -17
- data/doc/eclipse/new/New.png +0 -0
- data/doc/eclipse/new/Result.png +0 -0
- data/doc/eclipse/new/Select.png +0 -0
- data/doc/eclipse/select/FirstSelect.png +0 -0
- data/doc/eclipse/select/SecondSelect.png +0 -0
- data/doc/eclipse/select/WrongSelect.png +0 -0
- data/doc/eclipse/use.html +0 -59
- data/doc/further/bakery/cmd.html +0 -33
- data/doc/further/bakery/syntax.html +0 -203
- data/doc/further/change.html +0 -525
- data/doc/further/collections.html +0 -21
- data/doc/further/internal.html +0 -42
- data/doc/further/issues.html +0 -20
- data/doc/further/perf.html +0 -54
- data/doc/index.html +0 -80
- data/doc/src/ok.png +0 -0
- data/doc/syntax/derive.html +0 -58
- data/doc/syntax/subst.html +0 -121
- data/doc/syntax/syntax.html +0 -718
- data/doc/vs/create.html +0 -16
- data/doc/vs/create/cvsp.png +0 -0
- data/doc/vs/debug.html +0 -50
- data/doc/vs/echse/echse.png +0 -0
- data/doc/vs/install.html +0 -28
- data/doc/vs/install/install1.png +0 -0
- data/doc/vs/install/install2010.png +0 -0
- data/doc/vs/install/installed.png +0 -0
- data/doc/vs/install/site.png +0 -0
- data/doc/vs/install/update.png +0 -0
- data/doc/vs/use.html +0 -24
- data/doc/vs/use/error.png +0 -0
- data/doc/vs/use/options.png +0 -0
- data/doc/vs/use/select.png +0 -0
- data/doc/vs/use/show.png +0 -0
data/doc/cmd/usecygwin.html
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>Documentation of the bake-tookit</title>
|
|
5
|
-
<style type="text/css">
|
|
6
|
-
#rundrum {
|
|
7
|
-
border-width:1px;
|
|
8
|
-
border-style:dashed;
|
|
9
|
-
border-color:blue;
|
|
10
|
-
padding:0.2cm;
|
|
11
|
-
text-align:justify; }
|
|
12
|
-
}
|
|
13
|
-
</style>
|
|
14
|
-
</head>
|
|
15
|
-
<body>
|
|
16
|
-
<h1>How to use bake in Cygwin</h1>
|
|
17
|
-
|
|
18
|
-
Why using Cygwin on Windows instead of the built-in command shell? There is one major reason: Cygwin supports <b>colored output</b> via ansi escape sequences.
|
|
19
|
-
<br>
|
|
20
|
-
Note, that these steps differ depending on the Cygwin version, installed packages and configuration.
|
|
21
|
-
|
|
22
|
-
<h2>Get rid of the cygdrive prefix</h2>
|
|
23
|
-
<img src="mount.png"/><br>
|
|
24
|
-
As you see, "c:" is now "/c" and not "/cygdrive/c" anymore.
|
|
25
|
-
<br>
|
|
26
|
-
<b>In newer Cygwin versions, this is not permanent.</b> To make it permanent, add the following line to <b>/etc/fstab</b> (can be found in your Cygwin installation directory):
|
|
27
|
-
|
|
28
|
-
<pre id="rundrum"><code>none / cygdrive binary,posix=0,user 0 0</code></pre>
|
|
29
|
-
|
|
30
|
-
<h2>Get rid of the Cygwin ruby</h2>
|
|
31
|
-
<img src="ruby.png"/><br>
|
|
32
|
-
Easiest way is to rename the Cygwin ruby, which makes the original ruby visible. This is only necessary if you have ruby installed in our Cygwin environment.
|
|
33
|
-
|
|
34
|
-
<h2>Add tty to CYGWIN option</h2>
|
|
35
|
-
<img src="tty.png"/><br>
|
|
36
|
-
"tty" must be added to the CYGWIN system variable.
|
|
37
|
-
|
|
38
|
-
<h2>Start the build</h2>
|
|
39
|
-
|
|
40
|
-
Use the parameter "-a black" or "-a white" depending on the background color of your shell.
|
|
41
|
-
<p>
|
|
42
|
-
Depending on your Cygwin installation, you have to call "bake.bat" instead of "bake". To avoid this, create an alias, e.g:
|
|
43
|
-
|
|
44
|
-
<pre id="rundrum"><code>alias bake=/c/Programme/_dev/Ruby192/bin/bake.bat</code></pre>
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
</body>
|
|
48
|
-
|
|
49
|
-
</html>
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>Documentation of the bake-tookit</title>
|
|
5
|
-
</head>
|
|
6
|
-
<body>
|
|
7
|
-
<h1>The build hierarchy</h1>
|
|
8
|
-
|
|
9
|
-
<h2>Build graph</h2>
|
|
10
|
-
|
|
11
|
-
Depending on the contents of the Project.meta files, a build graph will be generated.
|
|
12
|
-
<ul>
|
|
13
|
-
<li>An ExecutableConfig usally specifies files to compile, dependencies to other projects and linker stuff.
|
|
14
|
-
<li>A LibraryConfig usally specifies files to compile and archive.
|
|
15
|
-
<li>A CustomConfig usually defines a custom step.
|
|
16
|
-
</ul>
|
|
17
|
-
Every config type can be equipped with pre and post steps like shell commands or makefiles.
|
|
18
|
-
|
|
19
|
-
All these steps will be combined to a build graph.
|
|
20
|
-
|
|
21
|
-
<h2>Example</h2>
|
|
22
|
-
|
|
23
|
-
The main project has dependencies to the projects A, B and C:<br>
|
|
24
|
-
<img src="hier.png"/>
|
|
25
|
-
<br>
|
|
26
|
-
Steps are executed bottom-up. If one step fails, all steps above won't be executed.
|
|
27
|
-
<p>
|
|
28
|
-
If e.g.
|
|
29
|
-
<ul>
|
|
30
|
-
<li>PreStepMain 2 fails
|
|
31
|
-
<li>at least one file of library B does not compile
|
|
32
|
-
</ul>
|
|
33
|
-
then
|
|
34
|
-
<ul>
|
|
35
|
-
<li>library B will not be created
|
|
36
|
-
<li>files of the main project will not be compiled
|
|
37
|
-
<li>main project will not be linked
|
|
38
|
-
<li>post step of main project will not be executed
|
|
39
|
-
</ul>
|
|
40
|
-
</body>
|
|
41
|
-
|
|
42
|
-
</html>
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>Documentation of the bake-tookit</title>
|
|
5
|
-
<style type="text/css">
|
|
6
|
-
#rundrum {
|
|
7
|
-
border-width:1px;
|
|
8
|
-
border-style:dashed;
|
|
9
|
-
border-color:blue;
|
|
10
|
-
padding:0.2cm;
|
|
11
|
-
text-align:justify; }
|
|
12
|
-
}
|
|
13
|
-
</style>
|
|
14
|
-
</head>
|
|
15
|
-
<body>
|
|
16
|
-
<h1>The configuration file Project.meta</h1>
|
|
17
|
-
<ul>
|
|
18
|
-
<li>Every project has a Project.meta file in the project root directory.
|
|
19
|
-
<li>A Project.meta file contains one or more build configurations.
|
|
20
|
-
<li>A build configuration consists of toolchain settings, files to build, custom steps, etc.
|
|
21
|
-
</ul>
|
|
22
|
-
<h2>Example</h2>
|
|
23
|
-
|
|
24
|
-
<table border="1">
|
|
25
|
-
<tr>
|
|
26
|
-
<th bgcolor="#CCCCCC">Project.meta of Main</th>
|
|
27
|
-
<th bgcolor="#CCCCCC">Project.meta of Sub</th>
|
|
28
|
-
</tr>
|
|
29
|
-
<tr>
|
|
30
|
-
<td><pre><code>Project {
|
|
31
|
-
ExecutableConfig Debug {
|
|
32
|
-
Dependency Sub, config: Debug
|
|
33
|
-
Files "**/*.cpp"
|
|
34
|
-
IncludeDir "include"
|
|
35
|
-
DefaultToolchain GCC {
|
|
36
|
-
Compiler CPP {
|
|
37
|
-
Flags "-Wall"
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
PostSteps {
|
|
41
|
-
CommandLine "echo $(ArtifactName) built."
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}</code></pre></td>
|
|
45
|
-
<td><pre><code>Project {
|
|
46
|
-
LibraryConfig Debug {
|
|
47
|
-
Files "**/*.cpp"
|
|
48
|
-
IncludeDir "include"
|
|
49
|
-
IncludeDir "Main/include"
|
|
50
|
-
ExternalLibrarySearchPath "lib"
|
|
51
|
-
ExternalLibrary "a"
|
|
52
|
-
ExternalLibrary "b"
|
|
53
|
-
Toolchain {
|
|
54
|
-
Compiler CPP {
|
|
55
|
-
Flags add: "-g3"
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}</code></pre></td>
|
|
60
|
-
</tr>
|
|
61
|
-
</table>
|
|
62
|
-
<br>
|
|
63
|
-
Let's assume that Main and Sub are located in the same workspace root. To build the executable, bake can be called from the Main directory:
|
|
64
|
-
|
|
65
|
-
<pre id="rundrum"><code>bake -b Debug</code></pre>
|
|
66
|
-
|
|
67
|
-
What happens now?
|
|
68
|
-
|
|
69
|
-
<ol>
|
|
70
|
-
<li>Reading Project.meta of Main
|
|
71
|
-
<li>Reading Project.meta of dependencies (Sub)
|
|
72
|
-
<li>Compiling sources of Sub, e.g.:
|
|
73
|
-
|
|
74
|
-
<pre id="rundrum"><code>g++ -c -Wall -g3 -Iinclude -I../Main/include -o Debug_Main/src/xy.o src/xy.cpp</code></pre>
|
|
75
|
-
<ul>
|
|
76
|
-
<li>-Wall is taken from the DefaultToolchain and -g3 is added by the toolchain of the Sub project.
|
|
77
|
-
<li>The include path to Main is automatically adjusted.
|
|
78
|
-
<li>The order of includes is the same as in Project.meta.
|
|
79
|
-
<li>g++, -c and -I are used, because GCC was specified in the DefaultToolchain.
|
|
80
|
-
</ul>
|
|
81
|
-
|
|
82
|
-
<li>Archiving the library, e.g.:
|
|
83
|
-
|
|
84
|
-
<pre id="rundrum"><code>ar -rc Debug_Main/libSub.a Debug_Main/src/xy.o</code></pre>
|
|
85
|
-
|
|
86
|
-
<li>Compiling sources of Main, e.g.:
|
|
87
|
-
|
|
88
|
-
<pre id="rundrum"><code>g++ -c -Wall -Iinclude -o Debug/src/main.o src/main.cpp</code></pre>
|
|
89
|
-
|
|
90
|
-
<li>Linking executable, e.g.:
|
|
91
|
-
|
|
92
|
-
<pre id="rundrum"><code>g++ -o Debug/Main.exe Debug/src/main.o ../Sub/Debug_Main/libSub.a -L../Sub/lib -la -lb</code></pre>
|
|
93
|
-
|
|
94
|
-
The library search paths and libraries are added in the specified order.
|
|
95
|
-
<li>Executing the post step
|
|
96
|
-
|
|
97
|
-
<pre id="rundrum"><code>echo Main.exe built.</code></pre>
|
|
98
|
-
The variable was automatically substituted.
|
|
99
|
-
|
|
100
|
-
</body>
|
|
101
|
-
|
|
102
|
-
</html>
|
data/doc/concepts/hier.png
DELETED
|
Binary file
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>Documentation of the bake-tookit</title>
|
|
5
|
-
</head>
|
|
6
|
-
<body>
|
|
7
|
-
<h1>The main project</h1>
|
|
8
|
-
The concept of the main project is different to many other build systems like Eclipse CDT.<br>
|
|
9
|
-
In these build systems everything which is needed for a project is configured in the project itself.<br>
|
|
10
|
-
In bake the main project can predefine stuff for all subprojects.
|
|
11
|
-
<p>
|
|
12
|
-
The main project can have a DefaultToolchain definition, which is valid for all projects and files referenced by the main project. Subprojects can overwrite or adjust these definitions.
|
|
13
|
-
<p>
|
|
14
|
-
Projects are always built in context of the main project.
|
|
15
|
-
<p>
|
|
16
|
-
To build a project, you have to specify
|
|
17
|
-
<ul>
|
|
18
|
-
<li>the main project
|
|
19
|
-
<li>the config of the main project which references the project to build
|
|
20
|
-
<li>the (sub)project to build if applicable
|
|
21
|
-
</ul>
|
|
22
|
-
<h2>Advantages</h2>
|
|
23
|
-
<ul>
|
|
24
|
-
<li>Reducing the number of build configurations (toolchain settings like debug or release flags can be set outside of the project)
|
|
25
|
-
<li>Most projects do not have any compiler definitions anymore
|
|
26
|
-
<li>Only flags which must be used or flags which must not be used have to be specified in the projects
|
|
27
|
-
<li>Changing compiler definitions for all projects can be done easily in the main project build configuration
|
|
28
|
-
</ul>
|
|
29
|
-
<h2>Example</h2>
|
|
30
|
-
<table border="1">
|
|
31
|
-
<tr>
|
|
32
|
-
<th bgcolor="#CCCCCC">Project.meta of Main (Debug and Release) </th>
|
|
33
|
-
<th bgcolor="#CCCCCC">Project.meta of Sub (only one build config!) </th>
|
|
34
|
-
</tr>
|
|
35
|
-
<tr>
|
|
36
|
-
<td><pre><code>Project {
|
|
37
|
-
|
|
38
|
-
ExecutableConfig Debug {
|
|
39
|
-
Dependency Sub, config: Lib
|
|
40
|
-
Files "**/*.cpp"
|
|
41
|
-
IncludeDir "include"
|
|
42
|
-
DefaultToolchain GCC {
|
|
43
|
-
Compiler CPP {
|
|
44
|
-
Flags "... whatever -debug_info"
|
|
45
|
-
Define "DEBUG"
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
ExecutableConfig Release {
|
|
51
|
-
Dependency Sub, config: Lib
|
|
52
|
-
Files "**/*.cpp"
|
|
53
|
-
IncludeDir "include"
|
|
54
|
-
DefaultToolchain GCC {
|
|
55
|
-
Compiler CPP {
|
|
56
|
-
Flags "... whatever -optimize"
|
|
57
|
-
Define "NDEBUG"
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
}</code></pre></td>
|
|
63
|
-
<td><pre><code>Project {
|
|
64
|
-
|
|
65
|
-
LibraryConfig Lib {
|
|
66
|
-
Files "**/*.cpp"
|
|
67
|
-
IncludeDir "include"
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
}</code></pre></td>
|
|
71
|
-
</tr>
|
|
72
|
-
</table>
|
|
73
|
-
|
|
74
|
-
A main project must have a DefaultToolchain - but it's allowed to leave that definition empty.
|
|
75
|
-
|
|
76
|
-
<h2>Output directory</h2>
|
|
77
|
-
|
|
78
|
-
A project in a specific build configuration can be build in different contexts. That's why the output directory of a project cannot be simply the build configuration name of the project to avoid inconsistencies.
|
|
79
|
-
Therefore the output directory names are:
|
|
80
|
-
<ul>
|
|
81
|
-
<li>Main project: $(MainConfigName) like in regular Eclipse CDT builds
|
|
82
|
-
<li>Subprojects: $(MainConfigName)_$(MainProjectName) instead of the config name of the subproject
|
|
83
|
-
</ul>
|
|
84
|
-
|
|
85
|
-
</body>
|
|
86
|
-
|
|
87
|
-
</html>
|
data/doc/deployDoc.bat
DELETED
data/doc/dyk/clang.html
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>Documentation of the bake-tookit</title>
|
|
5
|
-
<style type="text/css">
|
|
6
|
-
#rundrum {
|
|
7
|
-
border-width:1px;
|
|
8
|
-
border-style:dashed;
|
|
9
|
-
border-color:blue;
|
|
10
|
-
padding:0.2cm;
|
|
11
|
-
text-align:justify; }
|
|
12
|
-
}
|
|
13
|
-
</style>
|
|
14
|
-
</head>
|
|
15
|
-
<body>
|
|
16
|
-
<h1>Clang Analyze</h1>
|
|
17
|
-
|
|
18
|
-
bake can be easily used to analyze source files with Clang. It works simliar to regular compiling, but instead of
|
|
19
|
-
invoking the compiler, the Clang Analyzer will be called.
|
|
20
|
-
|
|
21
|
-
Imagine you have a workspace with the following "main" project:
|
|
22
|
-
<pre id="rundrum"><code>Project {
|
|
23
|
-
...
|
|
24
|
-
ExecutableConfig Debug {
|
|
25
|
-
...
|
|
26
|
-
DefaultToolchain GCC
|
|
27
|
-
}
|
|
28
|
-
}</code></pre>
|
|
29
|
-
Either edit this Project.meta or create a new "analyze" project:
|
|
30
|
-
<pre id="rundrum"><code>Project {
|
|
31
|
-
CustomConfig Analyze {
|
|
32
|
-
Dependency main, config: Debug
|
|
33
|
-
DefaultToolchain CLANG_ANALYZE {
|
|
34
|
-
Compiler CPP {
|
|
35
|
-
Flags "-analyzer-checker=deadcode,security,alpha,unix,cplusplus"
|
|
36
|
-
}
|
|
37
|
-
Compiler C {
|
|
38
|
-
Flags "-analyzer-checker=deadcode,security,alpha,unix"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}</code></pre>
|
|
43
|
-
|
|
44
|
-
As you can see the DefaultToolchain GCC is replaced with CLANG_ANALYZE. Call bake like this:
|
|
45
|
-
<pre id="rundrum"><code>bake Analyze -f .</code></pre>
|
|
46
|
-
|
|
47
|
-
"-f" means that only the compilation step will take place. The "." means files with a "." in the name will be compiled (= all files). If you want to analyze only C++ files, you can write "-f .cpp"
|
|
48
|
-
</body>
|
|
49
|
-
|
|
50
|
-
</html>
|
data/doc/dyk/keys.png
DELETED
|
Binary file
|
data/doc/dyk/lint.html
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>Documentation of the bake-tookit</title>
|
|
5
|
-
<style type="text/css">
|
|
6
|
-
#rundrum {
|
|
7
|
-
border-width:1px;
|
|
8
|
-
border-style:dashed;
|
|
9
|
-
border-color:blue;
|
|
10
|
-
padding:0.2cm;
|
|
11
|
-
text-align:justify; }
|
|
12
|
-
}
|
|
13
|
-
</style>
|
|
14
|
-
</head>
|
|
15
|
-
<body>
|
|
16
|
-
<h1>Lint</h1>
|
|
17
|
-
|
|
18
|
-
<h3>General</h3>
|
|
19
|
-
bake can be easily used to lint source files:
|
|
20
|
-
<ul>
|
|
21
|
-
<li>"lint-nt.exe" must be in the path
|
|
22
|
-
<li>add "--lint" on the command line
|
|
23
|
-
</ul>
|
|
24
|
-
Example:
|
|
25
|
-
<pre id="rundrum"><code>bake Debug -p MyLibraryProject --lint</code></pre>
|
|
26
|
-
|
|
27
|
-
<h3>How does it work</h3>
|
|
28
|
-
You can lint LibraryConfigs, ExecutableConfigs, single files and the complete workspace (in this case the projects are linted separately). The CPP Toolchain settings
|
|
29
|
-
of the project are used regardless of the file type and file specific options.
|
|
30
|
-
|
|
31
|
-
It is possible to specify lnt-files with LintPolicy, but you can add every other lint command line option as well.<br>
|
|
32
|
-
A possible approach is to add global Lint policies in the DefaultToolchain like this:
|
|
33
|
-
<pre id="rundrum"><code>DefaultToolchain GCC {
|
|
34
|
-
...
|
|
35
|
-
LintPolicy "$(ProjectDir)/lint/misra.lnt"
|
|
36
|
-
LintPolicy "$(ProjectDir)/lint/suppressions.lnt"
|
|
37
|
-
}</code></pre>
|
|
38
|
-
|
|
39
|
-
<h3>How to start for GCC</h3>
|
|
40
|
-
Lint will fail if compiler internal includes and defines are missing. Therefore lint comes with some helper files.
|
|
41
|
-
For GCC, follow the steps below.<br>
|
|
42
|
-
First extract the compiler includes and defines:
|
|
43
|
-
<pre id="rundrum"><code>make -f .../PcLint/../lnt/co-gcc.mak</code></pre>
|
|
44
|
-
You will get some lnt files: gcc-include-path.lnt, lint_cmac.h, lint_cppmac.h and size-options.lnt.<br>
|
|
45
|
-
Write a lnt file with the following content:
|
|
46
|
-
<pre id="rundrum"><code>-i".../PcLint/.../lnt"
|
|
47
|
-
-i"...pathToTheLntFilesExtractedAbove"
|
|
48
|
-
gcc-include-path.lnt
|
|
49
|
-
.../PcLint/.../lnt/co-gcc.lnt</code></pre>
|
|
50
|
-
Afterwards you can test lint directly without bake like this:
|
|
51
|
-
<pre id="rundrum"><code>lint-nt your.lnt test.cpp</code></pre>
|
|
52
|
-
To use in bake, add a LintPolicy in Project.meta:
|
|
53
|
-
<pre id="rundrum"><code>LintPolicy ".../your.lnt"</code></pre>
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
<h3>Output to xml</h3>
|
|
57
|
-
This is an example how to redirect the output to single xml files placed into the main project folder.
|
|
58
|
-
<pre id="rundrum"><code>DefaultToolchain GCC {
|
|
59
|
-
LintPolicy "-os($(MainProjectDir)/$(ProjectName)_$(ConfigName)_lintout.xml)"
|
|
60
|
-
LintPolicy "-v"
|
|
61
|
-
LintPolicy "+xml(doc)"
|
|
62
|
-
LintPolicy "-format=<message><file>%f</file> <line>%l</line> <type>%t</type> <code>%n</code> <desc>%m</desc></message>"
|
|
63
|
-
LintPolicy "-format_specific= "
|
|
64
|
-
LintPolicy "-pragma(message)"</code></pre>
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
<h3>Notes</h3>
|
|
68
|
-
In rare cases lint has problems if it has to open too many (include) files. If that is the case, use --lint_min and --lint_max command line option of bake. Example:
|
|
69
|
-
<pre id="rundrum"><code>bake Debug -p MyLibraryProject --lint --lint_max 50 (lints the first 51 files)
|
|
70
|
-
bake Debug -p MyLibraryProject --lint --lint_min 51 --lint_max 100 (lints the next 50 files)
|
|
71
|
-
bake Debug -p MyLibraryProject --lint --lint_min 101 (lints the rest of the files)</code></pre>
|
|
72
|
-
<p>
|
|
73
|
-
Currently the lint output is buffered and not shown before lint has finished a project. The reason is the implementation of the error parser. This will change in future.
|
|
74
|
-
<p>
|
|
75
|
-
If you have another lint command than lint-nt.exe, use an alias.
|
|
76
|
-
</body>
|
|
77
|
-
|
|
78
|
-
</html>
|
data/doc/dyk/tipps.html
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>Documentation of the bake-tookit</title>
|
|
5
|
-
<style type="text/css">
|
|
6
|
-
#rundrum {
|
|
7
|
-
border-width:1px;
|
|
8
|
-
border-style:dashed;
|
|
9
|
-
border-color:blue;
|
|
10
|
-
padding:0.2cm;
|
|
11
|
-
text-align:justify; }
|
|
12
|
-
}
|
|
13
|
-
</style>
|
|
14
|
-
</head>
|
|
15
|
-
<body>
|
|
16
|
-
<h1>Tipps and Tricks</h1>
|
|
17
|
-
|
|
18
|
-
<h3>Syntax highlighting</h3>
|
|
19
|
-
To enable syntax highlighting for the Project.meta files in Eclipse, install the "rtext_eclipse_plugin" (Help->Install New Software...) and associate ".meta" files with the rtext editor (Window->Preferences, File Associations page).<br>
|
|
20
|
-
An update site for Eclipse (needed for installation) will be provided soon. For now, you can download it manually at github.
|
|
21
|
-
|
|
22
|
-
<h3>Key bindings</h3>
|
|
23
|
-
It is possible to bind the bake commands to keys.<p>
|
|
24
|
-
<img src="keys.png"/><br>
|
|
25
|
-
|
|
26
|
-
<h3>Unnecessary includes</h3>
|
|
27
|
-
If a library or executable is successfully build with "-v", unnecessary includes are printed out:
|
|
28
|
-
<pre id="rundrum"><code>Info: Include to ../sub1/include/ seems to be unnecessary
|
|
29
|
-
Info: Include to ../sub2/include/ seems to be unnecessary</code></pre>
|
|
30
|
-
|
|
31
|
-
This features depends on the compiler dependency files. For projects with assembler files, the list might be incorrect.<br>
|
|
32
|
-
However, remove the IncludeDir statements from the Project.meta and check it out.
|
|
33
|
-
|
|
34
|
-
<h3>Symlinks and junctions</h3>
|
|
35
|
-
It is possible to use symlinks (Linux) or junctions (Windows) when working with git. Best practice:
|
|
36
|
-
<ul>
|
|
37
|
-
<li>Link all used projects into <i>one</i> directory (e.g. from application repository and basis software repository).
|
|
38
|
-
<li>Use this directory when working with bake, Eclipse, etc.
|
|
39
|
-
<li>Specify "-w <i>absolute_path_to_working_dir</i>.
|
|
40
|
-
<li>To sync/commit from/to svn, use the original directories created by git.
|
|
41
|
-
</ul>
|
|
42
|
-
|
|
43
|
-
</body>
|
|
44
|
-
|
|
45
|
-
</html>
|