bake-toolkit 2.11.4 → 2.12.0
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|