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.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/_build/html/_sources/changelog.txt +4 -1
  3. data/documentation/_build/html/_sources/index.txt +2 -3
  4. data/documentation/_build/html/_static/syntax.html +2 -4
  5. data/documentation/_build/html/changelog.html +11 -5
  6. data/documentation/_build/html/commandline/commandline.html +4 -4
  7. data/documentation/_build/html/concepts/build_hierarchy.html +4 -4
  8. data/documentation/_build/html/concepts/concepts.html +4 -4
  9. data/documentation/_build/html/concepts/the_main_project.html +4 -4
  10. data/documentation/_build/html/concepts/the_project_meta_file.html +4 -4
  11. data/documentation/_build/html/genindex.html +4 -4
  12. data/documentation/_build/html/ide/eclipse/eclipse.html +4 -4
  13. data/documentation/_build/html/ide/eclipse/how_to_convert_existing_cdt_workspace.html +4 -4
  14. data/documentation/_build/html/ide/eclipse/how_to_create_a_new_project_in_eclipse.html +4 -4
  15. data/documentation/_build/html/ide/eclipse/how_to_create_a_workspace_in_eclipse.html +4 -4
  16. data/documentation/_build/html/ide/eclipse/how_to_install_eclipse_plugin.html +4 -4
  17. data/documentation/_build/html/ide/eclipse/how_to_use_bake_in_eclipse.html +4 -4
  18. data/documentation/_build/html/ide/ide_integrations.html +4 -4
  19. data/documentation/_build/html/ide/vs/how_to_create_vs_projects.html +4 -4
  20. data/documentation/_build/html/ide/vs/how_to_debug_in_vs.html +4 -4
  21. data/documentation/_build/html/ide/vs/how_to_used_bake_in_vs.html +4 -4
  22. data/documentation/_build/html/ide/vs/vs.html +4 -4
  23. data/documentation/_build/html/ide/vs/vs_install.html +4 -4
  24. data/documentation/_build/html/index.html +7 -7
  25. data/documentation/_build/html/install/install_bake.html +4 -4
  26. data/documentation/_build/html/internal.html +4 -4
  27. data/documentation/_build/html/known_issues.html +4 -4
  28. data/documentation/_build/html/license.html +4 -4
  29. data/documentation/_build/html/objects.inv +0 -0
  30. data/documentation/_build/html/performance/performance.html +4 -4
  31. data/documentation/_build/html/quickstart/quickstart.html +4 -4
  32. data/documentation/_build/html/search.html +4 -4
  33. data/documentation/_build/html/searchindex.js +1 -1
  34. data/documentation/_build/html/syntax/derive_configs.html +4 -4
  35. data/documentation/_build/html/syntax/project_meta_syntax.html +6 -8
  36. data/documentation/_build/html/syntax/syntax.html +4 -4
  37. data/documentation/_build/html/syntax/variable_substitutions.html +4 -4
  38. data/documentation/_build/html/tips_and_tricks/how_to_use_bake_with_cygwin.html +4 -4
  39. data/documentation/_build/html/tips_and_tricks/static_code_analysis.html +4 -4
  40. data/documentation/_build/html/tips_and_tricks/the_bakery.html +4 -4
  41. data/documentation/_build/html/tips_and_tricks/the_clang.html +4 -4
  42. data/documentation/_build/html/tips_and_tricks/tips_and_tricks.html +4 -4
  43. data/documentation/_build/html/why_bake/why_bake.html +6 -6
  44. data/lib/bake/util.rb +1 -1
  45. data/lib/blocks/block.rb +11 -14
  46. data/lib/common/version.rb +1 -1
  47. data/lib/tocxx.rb +7 -7
  48. metadata +2 -70
  49. data/doc/cmd/install.html +0 -74
  50. data/doc/cmd/mount.png +0 -0
  51. data/doc/cmd/ruby.png +0 -0
  52. data/doc/cmd/tty.png +0 -0
  53. data/doc/cmd/usecmd.html +0 -80
  54. data/doc/cmd/usecygwin.html +0 -49
  55. data/doc/concepts/buildhierarchy.html +0 -42
  56. data/doc/concepts/configfile.html +0 -102
  57. data/doc/concepts/hier.png +0 -0
  58. data/doc/concepts/mainproject.html +0 -87
  59. data/doc/deployDoc.bat +0 -2
  60. data/doc/dyk/clang.html +0 -50
  61. data/doc/dyk/keys.png +0 -0
  62. data/doc/dyk/lint.html +0 -78
  63. data/doc/dyk/tipps.html +0 -45
  64. data/doc/eclipse/build/buildFile.png +0 -0
  65. data/doc/eclipse/build/buildMain.png +0 -0
  66. data/doc/eclipse/build/console.png +0 -0
  67. data/doc/eclipse/build/problem.png +0 -0
  68. data/doc/eclipse/export.html +0 -39
  69. data/doc/eclipse/export/Script.png +0 -0
  70. data/doc/eclipse/export/Select.png +0 -0
  71. data/doc/eclipse/import.html +0 -31
  72. data/doc/eclipse/import/Import.png +0 -0
  73. data/doc/eclipse/import/Select.png +0 -0
  74. data/doc/eclipse/install.html +0 -26
  75. data/doc/eclipse/install/AddRepository.png +0 -0
  76. data/doc/eclipse/install/AvailableSoftware.png +0 -0
  77. data/doc/eclipse/install/InstallNewSoftware.png +0 -0
  78. data/doc/eclipse/install/Licenses.png +0 -0
  79. data/doc/eclipse/install/Restart.png +0 -0
  80. data/doc/eclipse/install/TrustMe.png +0 -0
  81. data/doc/eclipse/misc/pref.png +0 -0
  82. data/doc/eclipse/new.html +0 -17
  83. data/doc/eclipse/new/New.png +0 -0
  84. data/doc/eclipse/new/Result.png +0 -0
  85. data/doc/eclipse/new/Select.png +0 -0
  86. data/doc/eclipse/select/FirstSelect.png +0 -0
  87. data/doc/eclipse/select/SecondSelect.png +0 -0
  88. data/doc/eclipse/select/WrongSelect.png +0 -0
  89. data/doc/eclipse/use.html +0 -59
  90. data/doc/further/bakery/cmd.html +0 -33
  91. data/doc/further/bakery/syntax.html +0 -203
  92. data/doc/further/change.html +0 -525
  93. data/doc/further/collections.html +0 -21
  94. data/doc/further/internal.html +0 -42
  95. data/doc/further/issues.html +0 -20
  96. data/doc/further/perf.html +0 -54
  97. data/doc/index.html +0 -80
  98. data/doc/src/ok.png +0 -0
  99. data/doc/syntax/derive.html +0 -58
  100. data/doc/syntax/subst.html +0 -121
  101. data/doc/syntax/syntax.html +0 -718
  102. data/doc/vs/create.html +0 -16
  103. data/doc/vs/create/cvsp.png +0 -0
  104. data/doc/vs/debug.html +0 -50
  105. data/doc/vs/echse/echse.png +0 -0
  106. data/doc/vs/install.html +0 -28
  107. data/doc/vs/install/install1.png +0 -0
  108. data/doc/vs/install/install2010.png +0 -0
  109. data/doc/vs/install/installed.png +0 -0
  110. data/doc/vs/install/site.png +0 -0
  111. data/doc/vs/install/update.png +0 -0
  112. data/doc/vs/use.html +0 -24
  113. data/doc/vs/use/error.png +0 -0
  114. data/doc/vs/use/options.png +0 -0
  115. data/doc/vs/use/select.png +0 -0
  116. data/doc/vs/use/show.png +0 -0
@@ -1,21 +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>bakery</h1>
8
- <ul>
9
- <li>bakery is part of the bake-toolkit distribution and it is used to build several independent projects at once.
10
- <li>It's very useful for e.g. compiling and running all unit tests.
11
- <li>The collections are specified in Collection.meta files.
12
- </ul>
13
-
14
- <h2>Guidelines</h2>
15
- <ul>
16
- <li><a href="bakery/cmd.html">How to use bakery on command line</a><br>
17
- <li><a href="bakery/syntax.html">Syntax of Collection.meta</a>
18
- </ul>
19
- </body>
20
-
21
- </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>Internal developing notes</h1>
8
-
9
- <h2>Socket</h2>
10
-
11
- If command line option --socket is used, bake tries to connect to the given port on localhost.
12
-
13
- <h3>send</h3>
14
-
15
- <h4>Header</h4>
16
- 1 Byte: Type<br>
17
- 4 Byte: Length (used to discard the paket if type is unknown to the listening application)<br>
18
-
19
- <h4>Error packet (type 0x01)</h4>
20
- 4 Byte: Length filename, project name<br>
21
- x Byte: filename, project name<br>
22
- 4 Byte: line number (can be 0)<br>
23
- 1 Byte: severity (0x00 = info, 0x01 = warning, 0x02 = error, 0xFF = ok)<br>
24
- x Byte: message (length = rest of packet)<br>
25
-
26
- <h4>Starting build packet (type 0x0A)</h4>
27
- 4 Byte: Length project name<br>
28
- x Byte: project name<br>
29
- 4 Byte: Length config name<br>
30
- x Byte: config name<br>
31
- 4 Byte: number of projects in this build (greater than 0)<br>
32
-
33
- <h4>Building project packet</h4>
34
- Same as Starting build packet, except number of projects = 0<br>
35
-
36
- <h3>receive</h3>
37
-
38
- If a byte is received, the build will be aborted.
39
-
40
- </body>
41
-
42
- </html>
@@ -1,20 +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>Known Issues</h1>
8
-
9
- <ul>
10
- <li><b>Issue</b>: If an archive or executable has been built successfully and one source file will be deleted without changing anything else, bake will leave the archive/executable unchanged when rebuilding.<br>
11
- <b>Workaround 1</b>: Clean the project.<br>
12
- <b>Workaround 2</b>: Delete the archive/executable manually.<br>
13
- <b>Workaround 3</b>: Touch, edit, create another source file.<br>
14
- <li><b>Issue</b>: Lint output not shown during linting (has to be refactored)
15
- </ul>
16
-
17
-
18
- </body>
19
-
20
- </html>
@@ -1,54 +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>Performance Analysis</h1>
8
-
9
- <h2>Eclipse vs. bake</h2>
10
-
11
- Test system: Intel Xeon W3520 (4x 2.67 GHz), 4GB Ram, Windows XP, HDD Raid<br>
12
- Real test application with ~ 200 projects<br>
13
- <b>ruby 1.9.2</b><p>
14
-
15
- <table border="1">
16
- <tr><th bgcolor="#CCCCCC"></th><th bgcolor="#CCCCCC">Eclipse 3.6.1, CDT 6</th><th bgcolor="#CCCCCC">bake</th></tr>
17
- <tr><td>Build whole workspace</td><td bgcolor="#FFCCCC">13:01 min</td><td bgcolor="#CCFFCC">7:19 min</td></tr>
18
- <tr><td>Build again without clean</td><td bgcolor="#FFCCCC">3:05 min</td><td bgcolor="#CCFFCC">0:50 min</td></tr>
19
- <tr><td>Clean whole workspace</td><td bgcolor="#FFCCCC">0:41 min</td><td bgcolor="#CCFFCC">0:08 min</td></tr>
20
- <tr><td>Clean the cleaned workspace again</td><td bgcolor="#FFCCCC">0:35 min</td><td bgcolor="#CCFFCC">0:02 min</td></tr>
21
- <tr><td>Memory consumption of build environment<br>(exclusive compiler, etc.)</td><td bgcolor="#FFCCCC">Eclipse needs additional<br>300MB, stays in memory</td><td bgcolor="#CCFFCC">35MB peak,freed after build<br></td></tr>
22
- </table>
23
-
24
-
25
-
26
- <h2>ruby vs. ruby</h2>
27
-
28
- Test system: Intel Xeon W3520 (4x 2.67 GHz), 4GB Ram, Windows XP, HDD Raid<br>
29
- Real test application with ~ 200 projects<br>
30
- Results averaged out of 30 runs<p>
31
-
32
- <table border="1">
33
- <tr><th bgcolor="#CCCCCC"></th><th bgcolor="#CCCCCC">ruby 1.8.6p398</th><th bgcolor="#CCCCCC">ruby 1.8.7p352</th><th bgcolor="#CCCCCC">ruby 1.9.2p180</th><th bgcolor="#CCCCCC">ruby 1.9.3p0</th></tr>
34
- <tr><td>Build whole workspace</td><td bgcolor="#FFCCCC">13:58 min</td><td bgcolor="#FFFFCC">8:07 min</td><td bgcolor="#CCFFCC">7:19 min</td><td bgcolor="#CCFFCC">7:28 min</td></tr>
35
- <tr><td>Build single file</td><td bgcolor="#CCFFCC">1,20 sec</td><td bgcolor="#FFFFCC">1,87 sec</td><td bgcolor="#FFCCCC">2,38 sec</td><td bgcolor="#CCFFCC">1,29 sec</td></tr>
36
- </table>
37
- <br>
38
- ruby 1.8.6 uses only ONE native thread for multiple ruby threads.<br>
39
- ruby 1.9.2 for Windows needs very long to startup for complex applications, which is fixed in 1.9.3
40
-
41
- <h2>CMake with Unix makefiles vs. bake</h2>
42
-
43
- Test system: Intel Xeon W3520 (4x 2.67 GHz), 4GB Ram, Windows XP, HDD Raid<br>
44
- Real test application with ~ 100 projects<p>
45
-
46
- <li> Build whole workspace: bake is ~10% faster
47
- <li> Build again without clean: bake is ~50% faster
48
- <li> Clean whole workspace: bake is ~80% faster
49
- <p>
50
- More details will follow.
51
-
52
- </body>
53
-
54
- </html>
data/doc/index.html DELETED
@@ -1,80 +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
-
8
- <h1>bake</h1>
9
-
10
- bake is used to build software <font color="#009900"><b>fast</b></font> and <font color="#009900"><b>easy</b></font>.
11
-
12
- <h2>Key features</h2>
13
- <img src="src/ok.png"/> faster than many other well known build systems<br>
14
- <img src="src/ok.png"/> can be run on command line with colored output<br>
15
- <img src="src/ok.png"/> Eclipse and Visual Studio integration plugins provided<br>
16
- <img src="src/ok.png"/> configuration files easy to understand and maintain<br>
17
-
18
- <h2>Guidelines</h2>
19
-
20
- <h3>Concepts</h3>
21
- <ul>
22
- <li><a href="concepts/configfile.html">The configuration file Project.meta</a>
23
- <li><a href="concepts/mainproject.html">The main project</a>
24
- <li><a href="concepts/buildhierarchy.html">The build hierarchy</a>
25
- </ul>
26
-
27
- <h3>Command Line</h3>
28
- <ul>
29
- <li><a href="cmd/install.html">How to install bake command line tool</a>
30
- <li><a href="cmd/usecmd.html">How to use bake on command line</a>
31
- <li><a href="cmd/usecygwin.html">How to use bake in Cygwin</a>
32
- </ul>
33
-
34
- <h3>Eclipse</h3>
35
- <ul>
36
- <li><a href="eclipse/install.html">How to install bake Eclipse integration</a>
37
- <li><a href="eclipse/use.html">How to use bake in Eclipse</a>
38
- <li><a href="eclipse/export.html">How to convert existing CDT workspaces</a>
39
- <li><a href="eclipse/import.html">How to create a workspace in Eclipse</a>
40
- <li><a href="eclipse/new.html">How to create a new project in Eclipse</a>
41
- </ul>
42
-
43
- <h3>Visual Studio</h3>
44
- <ul>
45
- <li><a href="vs/install.html">How to install bake Visual Studio integration</a>
46
- <li><a href="vs/use.html">How to use bake in Visual Studio</a>
47
- <li><a href="vs/create.html">How to create a solution / projects in Visual Studio</a>
48
- <li><a href="vs/debug.html">How to debug in Visual Studio</a>
49
- </ul>
50
-
51
- <h3>Syntax</h3>
52
- <ul>
53
- <li><a href="syntax/syntax.html">Syntax of Project.meta</a>
54
- <li><a href="syntax/subst.html">Variable substitution in Project.meta</a>
55
- <li><a href="syntax/derive.html">Derive configs</a>
56
- </ul>
57
-
58
- <h3>Did you know?</h3>
59
- <ul>
60
- <li><a href="dyk/lint.html">Lint</a>
61
- <li><a href="dyk/clang.html">Clang Analyze</a>
62
- <li><a href="dyk/tipps.html">Tipps and Tricks</a>
63
- </ul>
64
-
65
- <h3>Further readings</h3>
66
- <ul>
67
- <li><a href="further/collections.html">Build Collections</a>
68
- <li><a href="further/perf.html">Performance Analysis</a>
69
- <li><a href="further/change.html">Changelog</a>
70
- <li><a href="further/issues.html">Known Issues</a>
71
- <li><a href="further/internal.html">Internal developing notes</a>
72
- </ul>
73
-
74
- <p>
75
- <hr>
76
- <table width="100%" border="0"><tr><td align="left">Described bake-toolkit version: 2.11.1</td><td align="right">August 4, 2015</td></tr></table>
77
-
78
- </body>
79
-
80
- </html>
data/doc/src/ok.png DELETED
Binary file
@@ -1,58 +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>Derive configs</h1>
17
-
18
- A config can be derived from another config in Project.meta like this:
19
- <pre id="rundrum"><code>ExecutableConfig A<br>LibraryConfig B, extends: A<br>CustomConfig C, extends: B<br>ExecutableConfig D, extends: C</code></pre>
20
-
21
- The config type of the parent config does not matter, but only settings which are valid in BOTH configs will be inherited.<br>
22
- In the example above D gets the dependencies from A, because "Dependency" is valid in all configs, but D does not get the "Files" from A, because "Files" is not valid in CustomConfig.
23
- <p>
24
- The following listing shows how settings will be derived (toolchains below):
25
-
26
- <table border="1">
27
- <tr><th bgcolor="#CCCCCC">Setting</th><th bgcolor="#CCCCCC">Derived</th></tr>
28
- <tr><td>Set</td> <td>parent + child</td></tr>
29
- <tr><td>Dependency</td> <td>parent + child</td></tr>
30
- <tr><td>ExternalLibrary<br>ExternalLibrarySearchPath<br>UserLibrary</td> <td>parent + child<br>(ordered by line number!)</td></tr>
31
- <tr><td>PreSteps</td> <td>parent + child</td></tr>
32
- <tr><td>PostSteps</td> <td>parent + child</td></tr>
33
- <tr><td>Makefile<br>CommandLine<br>(in CustomConfig)</td> <td>used from parent if not in child</td></tr>
34
- <tr><td>Files</td> <td>parent + child</td></tr>
35
- <tr><td>ExcludeFiles</td> <td>parent + child</td></tr>
36
- <tr><td>IncludeDir</td> <td>parent + child</td></tr>
37
- <tr><td>LinkerScript</td> <td>used from parent if not in child</td></tr>
38
- <tr><td>ArtifactName</td> <td>used from parent if not in child</td></tr>
39
- <tr><td>MapFile</td> <td>used from parent if not in child</td></tr>
40
- </table>
41
- <p>
42
-
43
- <table border="1">
44
- <tr><th bgcolor="#CCCCCC">(Default)Toolchain<br>Setting</th><th bgcolor="#CCCCCC">Derived</th></tr>
45
- <tr><td>basedOn</td> <td>used from parent if not in child</td></tr>
46
- <tr><td>outputDir</td> <td>used from parent if not in child</td></tr>
47
- <tr><td>command</td> <td>used from parent if not in child</td></tr>
48
- <tr><td>LibPrefixFlags<br>LibPostfixFlags<br>Flags</td> <td>parent + child</td></tr>
49
- <tr><td>Define</td> <td>parent + child</td></tr>
50
- <tr><td>InternalDefines<br>InternalIncludes<br>(in CustomConfig)</td> <td>used from parent if not in child</td></tr>
51
- <tr><td>LintPolicy</td> <td>parent + child</td></tr>
52
- <tr><td>Docu</td> <td>used from parent if not in child</td></tr>
53
- </table>
54
- <br>
55
-
56
- </body>
57
-
58
- </html>
@@ -1,121 +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>Variable substitution in Project.meta</h1>
17
-
18
- <h3>Substituted variables</h3>
19
- A variable can be defined with the --set command line option:
20
- <pre id="rundrum"><code>bake ... --set MyVar=DEBUG</code></pre>
21
- <p>
22
- This can also be done by the Set keyword in Project.meta (see syntax documentation):
23
- <p>
24
- <table border="1">
25
- <tr><th bgcolor="#CCCCCC">Example</th><th bgcolor="#CCCCCC">Output</th></tr>
26
- <tr><td>Set WORLD, value: "world!"<br>CommandLine "echo hello $(WORLD)"</td> <td>hello world!</td></tr>
27
- </table>
28
- <p>
29
- bake includes also some standard variables:
30
- <p>
31
- <table border="1">
32
- <tr><th bgcolor="#CCCCCC">Variable</th><th bgcolor="#CCCCCC">Example</th></tr>
33
- <tr><td>$(MainConfigName)</td> <td>Debug</td></tr>
34
- <tr><td>$(MainProjectName)</td> <td>bootloader</td></tr>
35
- <tr><td>$(ConfigName)</td> <td>lib</td></tr>
36
- <tr><td>$(ProjectName)</td> <td>canDriver</td></tr>
37
- <tr><td>$(ProjectDir)</td> <td>C:/Root/MyProject</td></tr>
38
- <tr><td>$(MainProjectDir)</td> <td>C:/Root/Main</td></tr>
39
- <tr><td>$(OutputDir)</td> <td>build_lib_bootloader_Debug<br><i>output dir of the current config</i></td></tr>
40
- <tr><td>$(OutputDir,<i>projName</i>,<i>confName</i>)</td> <td><i>output dir of a specific config<br>relative to the current project</i></td></tr>
41
- <tr><td>$(ArtifactName)</td> <td>bootloader_1.0.elf</td></tr>
42
- <tr><td>$(ArtifactNameBase)</td> <td>bootloader_1.0</td></tr>
43
- <tr><td>$(Time)</td> <td>2012-12-24 20:00:00 +0200</td></tr>
44
- <tr><td>$(Hostname)</td> <td>MY_COMPUTER</td></tr>
45
- <tr><td>$(CPPPath)</td> <td>/usr/bin</td></tr>
46
- <tr><td>$(CPath)</td> <td>/usr/bin</td></tr>
47
- <tr><td>$(ASMPath)</td> <td>/usr/bin</td></tr>
48
- <tr><td>$(ArchiverPath)</td> <td>/usr/bin</td></tr>
49
- <tr><td>$(LinkerPath)</td> <td>/usr/bin</td></tr>
50
- </table>
51
- <br>
52
- <table border="1">
53
- <tr><th bgcolor="#CCCCCC">Variable</th><th bgcolor="#CCCCCC">Windows</th><th bgcolor="#CCCCCC">Other</th><th bgcolor="#CCCCCC">Note</th></tr>
54
- <tr><td>$(/)</td> <td>\</td><td>/</td><td>Path delimiter</td></tr>
55
- <tr><td>$(:)</td> <td>;</td><td>:</td><td>Used for setting the PATH variable</td></tr>
56
- </table>
57
- <br>
58
- <table border="1">
59
- <tr><th bgcolor="#CCCCCC">Expression</th><th bgcolor="#CCCCCC">Description</th></tr>
60
- <tr><td>IncludeDir "$(Roots)"</td> <td>Will be replaced by one or more<br>IncludeDir statements for all workspace roots.</td></tr>
61
- </table>
62
- <p>
63
- Otherwise:
64
- <p>
65
- <table border="1">
66
- <tr><th bgcolor="#CCCCCC">Variable</th><th bgcolor="#CCCCCC">Example</th></tr>
67
- <tr><td>$(environment variable)</td> <td>whatever</td></tr>
68
- </table>
69
- <p>
70
- If the environment variable does not exist, it will be substituted by an empty string.
71
- <p>
72
- Note, that variables in <b>Dependency</b> definitions are not allowed.
73
-
74
- <h3>Equal variables in the main config</h3>
75
-
76
- <table border="1">
77
- <tr><th bgcolor="#CCCCCC">Variable</th><th bgcolor="#CCCCCC">is equal to</th></tr>
78
- <tr><td>$(MainConfigName)</td> <td>$(ConfigName)</td></tr>
79
- <tr><td>$(MainProjectName)</td> <td>$(ProjectName)</td></tr>
80
- </table>
81
-
82
- <h3>Nested variables</h3>
83
-
84
- Variables can be nested like this:
85
- <pre id="rundrum"><code>$(OutputDir,$(TheProject),$(TheConfig))
86
- $(ABC$(DEF)GH)</code></pre>
87
-
88
- <h3>Auto-adjustment of paths to existing projects</h3>
89
-
90
- If paths to other projects are needed, e.g. to "bootloaderUpdater", don't write a hard coded relative path like this:<br>
91
- <font color="red">CommandLine "../bootloaderUpdater/tools/PrimaryBootloader2Include.exe</font><br>
92
- bootloaderUpdater might be checked out into a different workspace root. If you write<br>
93
- <font color="green">CommandLine "bootloaderUpdater/tools/PrimaryBootloader2Include.exe</font><br>
94
- bake recognizes that the first part of the path is a valid project name and calculates the relative path to the project automatically.<br>
95
-
96
- <h4>Special case:</h4>
97
- If you have a directory in the current project, which has the same name as a valid project and you need to reference the directory, write<br>
98
- <font color="green">IncludeDir "myProjectName/bootloaderUpdater/whatever"</font><br>
99
- which will then adjusted to<br>
100
- <font color="green">-I"bootloaderUpdater/whatever"</font><br>
101
- instead of<br>
102
- <font color="red">-I"../bootloaderUpdater/whatever" (depending of the location of the project bootloaderUpdater).</font>
103
-
104
- <h4>Supported elements for auto-adjustment:</h4>
105
- <ul>
106
- <li>IncludeDir
107
- <li>ExternalLibrary
108
- <li>ExternalLibrarySearchPath
109
- <li>UserLibrary
110
- <li>CommandLine
111
- </ul>
112
- <h3>Examples</h3>
113
- <pre id="rundrum"><code>CommandLine "ddump -Ruv -y 0xFFFFF -o$(OutputDir)/$(ArtifactNameBase).bin $(OutputDir)/$(ArtifactName)"
114
- ExternalLibrarySearchPath "$(PATH_TO_CYGWIN)/usr/local/lib"
115
- IncludeDir "bspDma/include"</code></pre>
116
-
117
-
118
-
119
- </body>
120
-
121
- </html>
@@ -1,718 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
2
- "http://www.w3.org/TR/html4/strict.dtd">
3
- <html>
4
- <head></head>
5
- <title>Documentation of the bake-tookit</title>
6
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
7
-
8
- <body >
9
-
10
- <h1>Syntax of Project.meta</h1>
11
- <h2>Instructions for the Interactive Syntax Viewer</h2>
12
- <ul>
13
- <li>Move the mouse cursor over the blue elements to display more information.
14
- <li>Three config types exist: ExecutableConfig, LibraryConfig and CustomConfig. Move the mouse cursor over these elements to display the supported content.
15
- </ul>
16
- <b>General Notes:</b>
17
- <ul>
18
- <li>Specify the paths always relative to the current project root, but keep the variable substitution in Project.meta in mind.
19
- <li>Use double quotes (") if the strings have spaces or slashes.
20
- <li>Use hash marks (#) for comments.
21
- </ul>
22
-
23
- <style type="text/css">
24
-
25
- #dhtmltooltip{
26
- position: absolute;
27
- width: 150px;
28
- border: 2px solid black;
29
- padding: 2px;
30
- background-color: lightyellow;
31
- visibility: hidden;
32
- z-index: 100;
33
- }
34
-
35
- </style>
36
-
37
- <style type="text/css">
38
- .hide {
39
- display:none;
40
- }
41
- .show {
42
- display:block
43
- }
44
- .showInline {
45
- display:inline
46
- }
47
- .help {
48
- color:blue
49
- }
50
- .showRadio {
51
- font-weight:bold;color:blue;text-decoration:overline underline
52
- }
53
- .hideRadio {
54
- color:#AAAAFF;
55
- }
56
- .mycomment {
57
- color:green
58
- }
59
- </style>
60
-
61
-
62
-
63
-
64
-
65
- <table border="1" style="font-family:monospace"; font-size:10><td>
66
-
67
- <span class="help" onMouseover="showProject()" onMouseout="notip()">Project</span> <span class="help" onMouseover="showDefaultConfig()" onMouseout="notip()">default</span>: &#60;name&#62; {<br>
68
- &nbsp; <br>
69
-
70
- &nbsp; <span class="help" onMouseover="showDescription()" onMouseout="notip()">Description</span> &#60;text&#62;<br><br>
71
-
72
- &nbsp; <span class="help" onMouseover="showResponsible()" onMouseout="notip()">Responsible</span> {<br>
73
- &nbsp; &nbsp; <span class="help" onMouseover="showPerson()" onMouseout="notip()">Person</span> &#60;name&#62;,
74
- <span class="help" onMouseover="showPersonEmail()" onMouseout="notip()">email</span>: &#60;adr&#62;<br>
75
- &nbsp; }<br><br>
76
-
77
- &nbsp; <span class="mycomment"># 0..n configs</span><br>
78
- &nbsp; <span class="showRadio" onMouseover="showExecutableConfig()" onMouseout="notip()" id="executableConfig">ExecutableConfig</span> |
79
- <span class="hideRadio" onMouseover="showLibraryConfig()" onMouseout="notip()" id="libraryConfig">LibraryConfig</span> |
80
- <span class="hideRadio" onMouseover="showCustomConfig()" onMouseout="notip()" id="customConfig">CustomConfig</span> &#60;name&#62;, <span class="help" onMouseover="showExtends()" onMouseout="notip()">extends</span>: &#60;parent&#62; {<br><br>
81
-
82
- <span><span style="background-color:#EEEEEE;" class="show">
83
- &nbsp; &nbsp; <span class="mycomment"># Valid for all config types</span><br><br>
84
- &nbsp; &nbsp; <span class="help" onMouseover="showSet()" onMouseout="notip()">Set</span> &#60;variable&#62;, value: &#60;value&#62; | cmd: &#60;line&#62;, <span class="help" onMouseover="showEnv()" onMouseout="notip()">env</span>: true|false<br>
85
- &nbsp; &nbsp; <span class="help" onMouseover="showDependency()" onMouseout="notip()">Dependency</span> &#60;project&#62;,
86
- <span class="help" onMouseover="showDependencyConfig()" onMouseout="notip()">config</span>: &#60;name&#62;<br>
87
- &nbsp; &nbsp; <span class="help" onMouseover="showExternalLibrary()" onMouseout="notip()">ExternalLibrary</span> &#60;lib&#62;,
88
- <span class="help" onMouseover="showExternalLibrarySearch()" onMouseout="notip()">search</span>: true|false<br>
89
- &nbsp; &nbsp; <span class="help" onMouseover="showUserLibrary()" onMouseout="notip()">UserLibrary</span> &#60;lib&#62;<br>
90
- &nbsp; &nbsp; <span class="help" onMouseover="showExternalLibrarySearchPath()" onMouseout="notip()">ExternalLibrarySearchPath</span> &#60;path&#62;<br>
91
- &nbsp; &nbsp; <span class="help" onMouseover="showPreSteps()" onMouseout="notip()">PreSteps</span> {<br>
92
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showMakefile()" onMouseout="notip()">Makefile</span> &#60;file&#62;,
93
- <span class="help" onMouseover="showMakefileLib()" onMouseout="notip()">lib</span>: &#60;lib&#62;,
94
- <span class="help" onMouseover="showMakefileTarget()" onMouseout="notip()">target</span>: &#60;target&#62;,
95
- <span class="help" onMouseover="showMakefilePathTo()" onMouseout="notip()">pathTo</span>: &#60;paths&#62;,
96
- <span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
97
- <span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: &#60;name&#62;,
98
- <span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: &#60;[array]&#62; {<br>
99
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showMakefileFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
100
- &nbsp; &nbsp; &nbsp; }<br>
101
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showCommandLine()" onMouseout="notip()">CommandLine</span> &#60;line&#62;,
102
- <span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
103
- <span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: &#60;name&#62;,
104
- <span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: &#60;[array]&#62;<br>
105
- &nbsp; &nbsp; }<br>
106
- &nbsp; &nbsp; <span class="help" onMouseover="showPostSteps()" onMouseout="notip()">PostSteps</span> {<br>
107
- &nbsp; &nbsp; &nbsp; <span class="mycomment"># Same as for PreSteps</span><br>
108
- &nbsp; &nbsp; }<br>
109
- &nbsp; &nbsp; <span class="help" onMouseover="showStartupSteps()" onMouseout="notip()">StartupSteps</span> {<br>
110
- &nbsp; &nbsp; &nbsp; <span class="mycomment"># Same as for PreSteps</span><br>
111
- &nbsp; &nbsp; }<br>
112
- &nbsp; &nbsp; <span class="help" onMouseover="showExitSteps()" onMouseout="notip()">ExitSteps</span> {<br>
113
- &nbsp; &nbsp; &nbsp; <span class="mycomment"># Same as for PreSteps</span><br>
114
- &nbsp; &nbsp; }<br>
115
- &nbsp; &nbsp; <span class="help" onMouseover="showDefaultToolchain()" onMouseout="notip()">DefaultToolchain</span> &#60;basedOn&#62;, <span class="help" onMouseover="showOutputDir()" onMouseout="notip()">outputDir</span>: &#60;dir&#62;, <span class="help" onMouseover="showEclipseOrder()" onMouseout="notip()">eclipseOrder</span>: true|false {<br>
116
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultCompiler()" onMouseout="notip()">Compiler</span> ASM | CPP | C,
117
- <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
118
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
119
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultDefine()" onMouseout="notip()">Define</span> &#60;define&#62;<br>
120
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showInternalDefines()" onMouseout="notip()">InternalDefines</span> &#60;file&#62;<br>
121
- &nbsp; &nbsp; &nbsp; }<br>
122
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultArchiver()" onMouseout="notip()">Archiver</span>
123
- <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
124
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
125
- &nbsp; &nbsp; &nbsp; }<br>
126
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultLinker()" onMouseout="notip()">Linker</span>
127
- <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
128
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
129
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLibPrefixFlags()" onMouseout="notip()">LibPrefixFlags</span> &#60;flags&#62;<br>
130
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLibPostfixFlags()" onMouseout="notip()">LibPostfixFlags</span> &#60;flags&#62;<br>
131
- &nbsp; &nbsp; &nbsp; }<br>
132
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showInternalIncludes()" onMouseout="notip()">InternalIncludes</span> &#60;file&#62;<br>
133
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultLintPolicy()" onMouseout="notip()">LintPolicy</span> &#60;policy&#62;<br>
134
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDocu()" onMouseout="notip()">Docu</span> &#60;cmdLine&#62;<br>
135
- &nbsp; &nbsp; }<br>
136
-
137
-
138
- &nbsp; &nbsp; <span class="help" onMouseover="showToolchainProject()" onMouseout="notip()">Toolchain</span> <span class="help" onMouseover="showOutputDir()" onMouseout="notip()">outputDir</span>: &#60;dir&#62; {<br>
139
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showCompiler()" onMouseout="notip()">Compiler</span> ASM | CPP | C,
140
- <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
141
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;, add: &#60;flags&#62;, remove: &#60;flags&#62;<br>
142
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefine()" onMouseout="notip()">Define</span> &#60;define&#62;<br>
143
- &nbsp; &nbsp; &nbsp; }<br>
144
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showArchiver()" onMouseout="notip()">Archiver</span>
145
- <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
146
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;, add: &#60;flags&#62;, remove: &#60;flags&#62;<br>
147
- &nbsp; &nbsp; &nbsp; }<br>
148
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLinker()" onMouseout="notip()">Linker</span>
149
- <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
150
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;, add: &#60;flags&#62;, remove: &#60;flags&#62<br>
151
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLibPrefixFlags()" onMouseout="notip()">LibPrefixFlags</span> &#60;flags&#62;, add: &#60;flags&#62;, remove: &#60;flags&#62<br>
152
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLibPostfixFlags()" onMouseout="notip()">LibPostfixFlags</span> &#60;flags&#62;, add: &#60;flags&#62;, remove: &#60;flags&#62<br>
153
- &nbsp; &nbsp; &nbsp; }<br>
154
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLintPolicy()" onMouseout="notip()">LintPolicy</span> &#60;policy&#62;<br>
155
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDocu()" onMouseout="notip()">Docu</span> &#60;cmdLine&#62;<br>
156
- &nbsp; &nbsp; }<br></span><br>
157
- </span>
158
-
159
- <span id="libExe_part"><span class="show" style="background-color:#EEEEEE;">
160
- &nbsp; &nbsp; <span class="mycomment"># Valid for ExecutableConfig and LibraryConfig</span><br><br>
161
- &nbsp; &nbsp; <span class="help" onMouseover="showFiles()" onMouseout="notip()">Files</span> &#60;pattern&#62; {<br>
162
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showFilesFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;, add: &#60;flags&#62;, remove: &#60;flags&#62;<br>
163
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showFilesDefine()" onMouseout="notip()">Define</span> &#60;define&#62;<br>
164
- &nbsp; &nbsp; }<br>
165
- &nbsp; &nbsp; <span class="help" onMouseover="showExcludeFiles()" onMouseout="notip()">ExcludeFiles</span> &#60;pattern&#62;<br>
166
- &nbsp; &nbsp; <span class="help" onMouseover="showIncludeDir()" onMouseout="notip()">IncludeDir</span> &#60;dir&#62;, <span class="help" onMouseover="showInherit()" onMouseout="notip()">inherit</span>: true|false, <span class="help" onMouseover="showInfix()" onMouseout="notip()">infix</span>: front|back<br>
167
-
168
- </span><br></span>
169
-
170
- <span id="exe_part"><span class="show" style="background-color:#EEEEEE;">
171
- &nbsp; &nbsp; <span class="mycomment"># Valid for ExecutableConfig</span><br><br>
172
- &nbsp; &nbsp; <span class="help" onMouseover="showLinkerScript()" onMouseout="notip()">LinkerScript</span> &#60;script&#62;<br>
173
- &nbsp; &nbsp; <span class="help" onMouseover="showMapFile()" onMouseout="notip()">MapFile</span> &#60;name&#62;<br>
174
- &nbsp; &nbsp; <span class="help" onMouseover="showArtifactName()" onMouseout="notip()">ArtifactName</span> &#60;name&#62;<br></span><br></span>
175
-
176
- <span id="custom_part" class="hide"><span style="background-color:#EEEEEE;" class="show">
177
- &nbsp; &nbsp; <span class="mycomment"># Valid for CustomConfig</span><br><br>
178
- &nbsp; &nbsp; <span class="showRadio" id="makefile" onMouseover="showMakefileCustom()" onMouseout="notip()">Makefile</span> |
179
- <span class="hideRadio" id="commandline" onMouseover="showCommandlineCustom()" onMouseout="notip()">CommandLine</span>
180
- <span style="background-color:#DDDDDD;" id="makefile_part" class="showInline"> &#60;name&#62;,
181
- <span class="help" onMouseover="showMakefileLib()" onMouseout="notip()">lib</span>: &#60;lib&#62;,
182
- <span class="help" onMouseover="showMakefileTarget()" onMouseout="notip()">target</span>: &#60;target&#62;,
183
- <span class="help" onMouseover="showMakefilePathTo()" onMouseout="notip()">pathTo</span>: &#60;paths&#62;,
184
- <span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
185
- <span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: &#60;name&#62;,
186
- <span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: &#60;[array]&#62; {<br>
187
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showMakefileFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
188
- &nbsp; &nbsp; }<br>
189
- </span>
190
- <span style="background-color:#DDDDDD;" id="commandline_part" class="hide">&#60;line&#62;,
191
- <span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
192
- <span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: &#60;name&#62;,
193
- <span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: &#60;[array]&#62;
194
- </span>
195
- &nbsp; &nbsp; <br></span><br></span>
196
- &nbsp; }<br>
197
- }<br>
198
-
199
-
200
-
201
-
202
-
203
-
204
-
205
- <div id="dhtmltooltip"></div>
206
-
207
- <script type="text/javascript">
208
-
209
-
210
- function showProject() {
211
- str = 'A bake project is very similiar to a project in Eclipse, Visual Studio, etc.<br>'+
212
- 'The name of the project is the directory name of the Project.meta file.'
213
- ddrivetip("Project", "Yes", "1", "-",str)
214
- }
215
-
216
- function showDefaultConfig() {
217
- str = 'Default configuration which is used if not explicitly specified on command line or Dependency definition.<br><br>'+
218
- 'Examples:<br>'+
219
- '# Project.meta:<br>'+
220
- 'Dependency canDriver # uses default config of canDriver project<br>'+
221
- '# Command line:<br>'+
222
- 'bake -m folder/dir/projABC # builds default config of project projABC'
223
- ddrivetip("defaukt", "No", "-", "-",str)
224
- }
225
-
226
- function showResponsible() {
227
- str = "Specify all responsible persons of the project."
228
- ddrivetip("Responsible", "No,", "0..1", "-",str)
229
- }
230
-
231
- function showDescription() {
232
- str = 'Description of the project.'
233
- ddrivetip("Description", "No", "0..1", "-",str)
234
- }
235
-
236
-
237
- function showPerson() {
238
- str = 'Person who is responsible for the project.'
239
- ddrivetip("Person", "No", "0..1", "-",str)
240
- }
241
-
242
- function showPersonEmail() {
243
- str = 'Use always double quotes (") for the email address.'
244
- ddrivetip("email", "No", "-", "-",str)
245
- }
246
-
247
- function showExecutableConfig() {
248
- document.getElementById('libExe_part').className="show"
249
- document.getElementById('exe_part').className="show"
250
- document.getElementById('custom_part').className="hide"
251
- document.getElementById('executableConfig').className="showRadio"
252
- document.getElementById('libraryConfig').className="hideRadio"
253
- document.getElementById('customConfig').className="hideRadio"
254
-
255
- str = 'This is the main config of an application. This is the only config type which has dependencies.'
256
- ddrivetip("ExecutableConfig", "No","0..n","-",str)
257
- }
258
-
259
- function showLibraryConfig() {
260
- document.getElementById('libExe_part').className="show"
261
- document.getElementById('exe_part').className="hide"
262
- document.getElementById('custom_part').className="hide"
263
- document.getElementById('executableConfig').className="hideRadio"
264
- document.getElementById('libraryConfig').className="showRadio"
265
- document.getElementById('customConfig').className="hideRadio"
266
-
267
- str = 'This config is used for a source library. The library will be linked automatically to the executable.'
268
- ddrivetip("LibraryConfig", "No","0..n","-",str)
269
- }
270
-
271
- function showCustomConfig() {
272
- document.getElementById('libExe_part').className="hide"
273
- document.getElementById('exe_part').className="hide"
274
- document.getElementById('custom_part').className="show"
275
- document.getElementById('executableConfig').className="hideRadio"
276
- document.getElementById('libraryConfig').className="hideRadio"
277
- document.getElementById('customConfig').className="showRadio"
278
-
279
- str = 'This config is used for special projects, e.g. for Makefile projects.<br>'+
280
- 'It is valid to leave a CustomConfig completely empty - nothing will be done in that case.'
281
- ddrivetip("CustomConfig", "No","0..n","-",str)
282
- }
283
-
284
- function showExternalLibrary() {
285
- str = 'Every config can specify libs which have to be linked to the executable.<br>'+
286
- 'It\'s possible to add a path, e.g.:<br>'+
287
- '<i> &nbsp; &nbsp; ExternalLibrary "xy/z/ab"</i><br>'+
288
- 'In this case the lib "ab" is added to the linker command line as well as the lib search path "xy/z".<br>'+
289
- 'Note, that the linker will look for "libab.a".'
290
- ddrivetip("ExternalLibrary", "No","0..n","-",str)
291
- }
292
-
293
- function showExternalLibrarySearch() {
294
- str = 'If the attribute "search: false" is specified, the lib will not be searched but linked with the full name, e.g.<br>'+
295
- '<i> &nbsp; &nbsp; ExternalLibrary "xy/z/libpq.a", search: false</i><br>'+
296
- 'will link "xy/z/libpq.a" to the executable.<br>'+
297
- 'It is also possible to specify an object file when using "search: false".'
298
- ddrivetip("search", "No","-","true",str)
299
- }
300
-
301
- function showUserLibrary() {
302
- str = 'A user library will be linked <i>before</i> any other libraries or objects to the executable.<br>'+
303
- 'It is also possible to specify an object file.<br>'+
304
- 'The library will be searched like an ExternalLibrary, but with the full name, e.g.<br>'+
305
- '<i> &nbsp; &nbsp; UserLibrary "xy/z/libUser.a"</i><br>'+
306
- '<i> &nbsp; &nbsp; UserLibrary "xy/z/something.o"</i><br>'+
307
- 'will link "libUser.a" and "something.o" before regular objects and libraries.<br>'+
308
- '"xy/z" will be added as an ExternalLibrarySearchPath.'
309
- ddrivetip("UserLibrary", "No","0..n","-",str)
310
- }
311
-
312
- function showExternalLibrarySearchPath() {
313
- str = 'The linker looks for libraries in search paths.<br>'+
314
- 'Search paths can be defined implicitly by ExternalLibrary/UserLibrary or explicitly by this tag.'
315
- ddrivetip("ExternalLibrarySearchPath", "No","0..n","-",str)
316
- }
317
-
318
- function showPreSteps() {
319
- str = 'PreSteps are executed before compiling files of the project.<br>'+
320
- 'The number of steps are not limited.<br>'+
321
- 'If a step fails, all further steps of the project will be skipped.'
322
- ddrivetip("PreSteps", "No","0..1","-",str)
323
- }
324
-
325
- function showPostSteps() {
326
- str = 'PostSteps are executed after the main task of the project, e.g. linking an executable.<br>'+
327
- 'The number of steps are not limited.<br>'+
328
- 'If a step fails, all further steps of the project will be skipped.'
329
- ddrivetip("PostSteps", "No","0..1","-",str)
330
- }
331
-
332
- function showStartupSteps() {
333
- str = 'StartupSteps of ALL projects are executed before building the first project.<br>'+
334
- 'The number of steps are not limited.<br>'+
335
- 'If a step fails, all further startup steps of the project will be skipped.'
336
- ddrivetip("StartupSteps", "No","0..1","-",str)
337
- }
338
-
339
- function showExitSteps() {
340
- str = 'ExitSteps of ALL projects are executed after building complete workspace even if the build has failed.<br>'+
341
- 'The number of steps are not limited.<br>'+
342
- 'If a step fails, all further exit steps of the project will be skipped.'
343
- ddrivetip("ExitSteps", "No","0..1","-",str)
344
- }
345
-
346
- function showStepDefault() {
347
- str = 'Specifies if a step will be executed by default.<br>'+
348
- 'Disabling a step by default is useful if the step shall not be executed every build, e.g. special steps for releasing a software or some kind of developer test steps.'
349
- ddrivetip("default", "No","-","on",str)
350
- }
351
-
352
- function showStepFilter() {
353
- str = 'A step can be switched on or off explicitly regardless of the "default" attribute with the command line options<br>'+
354
- '<i> &nbsp; &nbsp; --include_filter &#60;filter name&#62;</i><br>'+
355
- '<i> &nbsp; &nbsp; --exclude_filter &#60;filter name&#62;</i><br>'
356
- ddrivetip("filter", "No","-","-",str)
357
- }
358
-
359
- function showValidExitCodes() {
360
- str = 'Define it as an array, e.g.:<br>'+
361
- '..., validExitCodes: [200,201,202]'
362
- ddrivetip("validExitCodes", "No","-","[0]",str)
363
- }
364
-
365
-
366
- function getMakefileDesc() {
367
- return 'Makefile to be started, e.g.:<br>'+
368
- '<i> &nbsp; &nbsp; Makefile "subDir/makefile"</i><br>'
369
- }
370
-
371
- function showMakefile() {
372
- ddrivetip("Makefile", "No","0..n","-",getMakefileDesc())
373
- }
374
-
375
- function showMakefileLib() {
376
- str = 'If the result of the makefile is a library which shall be linked to the executable, name it here.'
377
- ddrivetip("lib", "No","-","-",str)
378
- }
379
-
380
- function showMakefileTarget() {
381
- str = 'The target of the makefile.'
382
- ddrivetip("target", "No","-","all",str)
383
- }
384
-
385
- function showMakefilePathTo() {
386
- str = 'Comma separated list, e.g. "common, abc, xy".<br>'+
387
- 'The makefile can use variables like $(PATH_TO_common). This is very useful if paths to other projects are needed in the makefile.<br>'+
388
- 'Remember that more than one workspace root can exist and a hardcoded "../common" is not reliable in that case.<br>'+
389
- '$(PATH_TO_common) will result in the path from the parent directory of the current project to the common project without the common directory itself. '+
390
- 'So if the current project and the common project have the same parent folder, the string will be empty.<br>'+
391
- 'Example:<br>'+
392
- 'makefile: c:\\workspaceroot\\yourProject\\makefile<br>'+
393
- 'usage in makefile: gcc -I$../../$(PATH_TO_common)common/include ...<br>'+
394
- 'It\'s done like this due to compatibility reasons.'
395
- ddrivetip("pathTo", "No","-","-",str)
396
- }
397
-
398
- function showMakefileFlags() {
399
- ddrivetip("Flags", "No","0..n","-j","Additional makefile flags.")
400
- }
401
-
402
- function getCommandLineDesc() {
403
- return 'A command to execute, e.g.:<br>'+
404
- '<i> &nbsp; &nbsp; CommandLine "ddump -Ruv -y 0xFFFFF -oRelease/application.bin Release/application.elf"</i><br>'+
405
- '<i> &nbsp; &nbsp; CommandLine "echo Hello world!"</i><br>'
406
- }
407
-
408
- function showCommandLine() {
409
- ddrivetip("CommandLine", "No","0..n","-",getCommandLineDesc())
410
- }
411
-
412
-
413
- function showEclipseOrder() {
414
- str = 'If not specified or false, all files are compiled in alphabetical order using their full names.<p>'+
415
- 'If true, files are compiled in alphabetical order within a folder, '+
416
- 'but the folders are sorted in reverse alphabetical order.<br>'+
417
- 'This is only used for backward compatibility.'
418
- ddrivetip("eclipseOrder", "No","-","false",str)
419
- }
420
-
421
- function showOutputDir() {
422
- str = 'Specifies the output folder.<p>'+
423
- 'Use always relative paths, not absolute paths due to portability.<p>'+
424
- 'Use always "/" and not "\\".<p>'+
425
- 'If the first part of the path is equal to a project name, it is used as a shortcut to this project root. <br>'+
426
- 'To avoid this magic, use something like this: <br>'+
427
- '<i> &nbsp; &nbsp; IncludeDir "./abc/include"</i><br>'
428
- ddrivetip("outputdir", "No","0..1","-",str)
429
- }
430
-
431
- function showExtends() {
432
- ddrivetip("extends", "No","0..1","-","Inherit settings from a parent config.<br>For more information see docu page 'Derive configs'.")
433
- }
434
-
435
- function showFiles() {
436
- str = 'Specifies the files to build.<br>'+
437
- 'It\'s valid to specify a single file, e.g.<br>'+
438
- '<i> &nbsp; &nbsp; Files "src/abc/def.asm"</i><br>'+
439
- 'or a pattern, e.g.<br>'+
440
- '<i> &nbsp; &nbsp; Files "*/**/.cpp"</i><br>'+
441
- 'which builds all files with the ending ".cpp" in all subdirectories.<br>'+
442
- 'Note: ".." is not allowed in the file path. All files must be located within the project.<br>'+
443
- 'Note: if patterns are used, Flags and Define are ignored.'
444
- ddrivetip("Files", "No","0..n","-",str)
445
- }
446
-
447
- function showExcludeFiles() {
448
- str = 'Used to ignore files or directories.<br>'+
449
- 'ExcludeFiles has higher priority than Files.'
450
- ddrivetip("ExcludeFiles", "No","0..n","-",str)
451
- }
452
-
453
- function showIncludeDir() {
454
- str = 'Specifies the include directories for the assembler, C and C++ compiler.<p>'+
455
- 'Use always relative paths, not absolute paths due to portability.<p>'+
456
- 'Use always "/" and not "\\".<p>'+
457
- 'It is possible to work with different workspace roots. Do not include something like this: <br>'+
458
- '<i> &nbsp; &nbsp; IncludeDir "../abc/include"</i><br>'+
459
- 'but<br>'+
460
- '<i> &nbsp; &nbsp; IncludeDir "abc/include"</i><br>'+
461
- 'because it may happen, that abc does not exist in the same root as the current project. The path to abc will be calculated automatically.<p>'+
462
- 'To include directories of the current project, the project name can be omitted like this:<br>'+
463
- '<i> &nbsp; &nbsp; IncludeDir "include"</i><br>'+
464
- '<i> &nbsp; &nbsp; IncludeDir "generated/include"</i><br>'
465
- ddrivetip("IncludeDir", "No","0..n","-",str)
466
- }
467
-
468
- function showInherit() {
469
- str = 'Inherits the include to all projects, which depend on this project.'
470
- ddrivetip("inherit", "No","0..1","false",str)
471
- }
472
-
473
- function showInfix() {
474
- str = 'Injects the include path to all childs, either at the front (e.g. for mocking code) or at the end.'
475
- ddrivetip("infix", "No","0..1","-",str)
476
- }
477
-
478
- function showSet() {
479
- str = 'Sets a variable for this and all dependent projects.<br>'+
480
- 'The variable can be a simple value or the result of a cmd, e.g. \"cat myVar.txt\".'
481
- ddrivetip("Set", "No","0..n","-",str)
482
- }
483
-
484
- function showEnv() {
485
- str = 'Stores the variable also in system environment, which makes it available in everything which is executed by bake, e.g. in Pre- and PostSteps.'
486
- ddrivetip("env", "No","-","false",str)
487
- }
488
-
489
- function showDependency() {
490
- str = 'Specifies another project to be built before this project.<br>'+
491
- 'The archive, linker libs and search paths are imported from this project to the this project automatically.<br>'+
492
- 'If you omit the project, the current project will be used.<br>'+
493
- 'If you omit the config name, the default config will be used.<br>'+
494
- '<b>Examples:</b><br>'+
495
- '&nbsp;&nbsp; <i>Dependency gtest, config: lib<br>'+
496
- '&nbsp;&nbsp; Dependency "my/folder/proj"</i>'
497
- ddrivetip("Dependency", "No","0..n","-",str)
498
- }
499
-
500
- function showDependencyConfig() {
501
- str = 'Config name of the project to build.'
502
- ddrivetip("config", "Yes","-","-",str)
503
- }
504
-
505
- function showLinkerScript() {
506
- str = 'Specifies the name including path of the linker script.'
507
- ddrivetip("Dependency", "No","0..1","-",str)
508
- }
509
-
510
- function showMapFile() {
511
- str = 'A mapfile will be written by the linker.'
512
- ddrivetip("MapFile", "No","0..1","If name attribute is omitted: $(OutputDir)/$(ArtifactNameBase).map",str)
513
- }
514
-
515
- function showArtifactName() {
516
- str = 'The artifact name inclusive file ending.<br>'+
517
- 'The artifact will be placed in the output directory.'
518
- ddrivetip("ArtifactName","No","0..1","The project name and as file ending the default linker file ending.",str)
519
- }
520
-
521
- function showMakefileCustom() {
522
- document.getElementById('makefile_part').className="showInline"
523
- document.getElementById('commandline_part').className="hide"
524
- document.getElementById('makefile').className="showRadio"
525
- document.getElementById('commandline').className="hideRadio"
526
- ddrivetip("Makefile", "No","0..1 - Either Makefile or CommandLine","-",getMakefileDesc())
527
- }
528
-
529
- function showCommandlineCustom() {
530
- document.getElementById('makefile_part').className="hide"
531
- document.getElementById('commandline_part').className="showInline"
532
- document.getElementById('makefile').className="hideRadio"
533
- document.getElementById('commandline').className="showRadio"
534
- ddrivetip("CommandLine", "No","0..1 - Either Makefile or CommandLine","-",getCommandLineDesc())
535
- }
536
-
537
- function flagExample() {
538
- return "<br>For removing flags use regular expressions which can be interpreted by ruby.<br>"+
539
- "Regex options for start and stop string are automatically added in order to avoid substring matches.<br><br>"+
540
- "Flag strings are always splitted at spaces and computed individually.<br><br>"+
541
- "<b>Examples:</b><br>"+
542
- "&nbsp;&nbsp; <i>Flags \"-x -y\"</i> overwrites the inherited flags<br><br>"+
543
- "&nbsp;&nbsp; <i>Flags add: \"-x -y\"</i> adds -x and -y if not exist<br><br>"+
544
- "&nbsp;&nbsp; <i>Flags remove: \"-x -y\"</i> removes -x and -y if exist<br><br>"+
545
- "&nbsp;&nbsp; It is possible to combine the attributes like this:<br>"+
546
- "&nbsp;&nbsp; <i>Flags remove: \"-x\", add: \"-y\"</i><br><br>"+
547
- "&nbsp;&nbsp; To remove -g followed by any string, e.g. -g3, the command is:<br>"+
548
- "&nbsp;&nbsp; <i>Flags remove: \"-g.*\"</i><br>"+
549
- "&nbsp;&nbsp; An inherited flag string \"-abc -g3 -xy\" will end up in \"-abc -xy\"."
550
- }
551
-
552
-
553
- function showToolchainProject() {
554
- str = 'Toolchain adaptions for a project.'
555
- ddrivetip("Toolchain", "No","0..1","The DefaultToolchain settings from the main project",str)
556
- }
557
-
558
- function showDefaultToolchain() {
559
- str = 'Settings which are valid for all projects and files unless they will be overwritten.<br>'+
560
- 'The attribute "basedOn" specifies the basic toolchain configuration provided by bake, e.g. "GCC", "Diab", etc.'
561
- ddrivetip("DefaultToolchain", "In main project","0..1","-",str)
562
- }
563
-
564
- function showFilesFlags() {
565
- ddrivetip("Flags", "No","0..n","Flags from project","Flags from the project can be overwritten, extended or (partly) removed.<br>"+flagExample())
566
- }
567
-
568
- function showFilesDefine() {
569
- ddrivetip("Define", "No","0..n","-","Defines which are valid only for a specific file.")
570
- }
571
-
572
- function showFlags() {
573
- ddrivetip("Flags", "No","0..n","Flags from DefaultToolchain","Flags from the DefaultToolchain can be overwritten, extended or (partly) removed.<br>"+flagExample())
574
- }
575
-
576
- function showDefine() {
577
- ddrivetip("Define", "No","0..n","-","Defines valid for all files in the project.")
578
- }
579
-
580
- function showLibPrefixFlags() {
581
- ddrivetip("LibPrefixFlags", "No","0..n","-","Linker libs can be prefixed if needed, e.g. with \"-Wl,--whole-archive\".")
582
- }
583
-
584
- function showLibPostfixFlags() {
585
- ddrivetip("LibPostfixFlags", "No","0..n","-","Linker libs can be postfixed if needed, e.g. with \"-Wl,--no-whole-archive\".")
586
- }
587
-
588
- function showCompiler() {
589
- ddrivetip("Compiler", "No","0..3 (for each compiler type: ASM, CPP, C)","-","Flags and defines can be specified independently for each compiler type.")
590
- }
591
-
592
- function showArchiver() {
593
- ddrivetip("Archiver", "No","0..1","-","Settings for the archiver.")
594
- }
595
-
596
- function showLinker() {
597
- ddrivetip("Linker", "No","0..1","-","Makes sense only for ExecutableConfigs.")
598
- }
599
-
600
- function showLintPolicy() {
601
- ddrivetip("LintPolicy", "No","0..n","-","lnt-file - but it can be used for any other command line option for Lint.")
602
- }
603
-
604
- function showDocu() {
605
- ddrivetip("Docu", "No","0..1","-","Command to build the documentation. e.g.:<br>doxygen main.cfg")
606
- }
607
-
608
- function showDefaultFlags() {
609
- ddrivetip("Flags", "No","0..n","-","Default flags.")
610
- }
611
-
612
- function showDefaultDefine() {
613
- ddrivetip("Define", "No","0..n","-","Defines which are valid for all files.")
614
- }
615
-
616
- function showInternalDefines() {
617
- ddrivetip("InternalDefines", "No","0..1","-","File with list of compiler internal defines.<br>One define per line.<br>Empty lines and comments with # are allowed.")
618
- }
619
-
620
- function showInternalIncludes() {
621
- ddrivetip("InternalIncludes", "No","0..1","-","File with list of compiler internal include folders.<br>One folder per line.<br>Empty lines and comments with # are allowed.")
622
- }
623
-
624
- function showDefaultCompiler() {
625
- ddrivetip("Compiler", "No","0..3 (for each compiler type: ASM, CPP, C)","-","Default compiler settings.")
626
- }
627
-
628
- function showDefaultArchiver() {
629
- ddrivetip("Archiver", "No","0..1","-","Default settings for the archiver.")
630
- }
631
-
632
- function showDefaultLinker() {
633
- ddrivetip("Linker", "No","0..1","-","Default settings for the linker.")
634
- }
635
-
636
- function showDefaultLintPolicy() {
637
- ddrivetip("LintPolicy", "No","0..n","-","lnt-file - but it can be used for any other command line option for Lint.")
638
- }
639
-
640
- function showCommand() {
641
- ddrivetip("command", "No","-","Depending on toolchain, e.g. \"gcc\"","Change command, e.g. \"$(PATH_TO_EXE)/gcc_speciale.exe\"")
642
- }
643
-
644
-
645
-
646
- var offsetxpoint=20 //Customize x offset of tooltip
647
- var offsetypoint=20 //Customize y offset of tooltip
648
- var ie=document.all
649
- var ns6=document.getElementById && !document.all
650
- var enabletip=false
651
- if (ie||ns6)
652
- var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""
653
-
654
- function ietruebody(){
655
- return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
656
- }
657
-
658
- function ddrivetip(item, manda, quan, def, desc){
659
- if (ns6||ie){
660
-
661
- var abc=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth
662
-
663
- tipobj.style.width=(abc/2-offsetxpoint*2).toString()+"px"
664
- tipobj.style.backgroundColor="#DDFFDD"
665
- tipobj.innerHTML="<b><u>"+item+"</u><br><br>Mandatory:</b> "+manda+"<br><b>Quantity</b>: "+quan+"<br><b>Default</b>: "+def+"<br><br><b>Description</b>:<br>"+desc
666
- enabletip=true
667
- return false
668
- }
669
- }
670
-
671
- function positiontip(e){
672
- if (enabletip){
673
- var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
674
- var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
675
- //Find out how close the mouse is to the corner of the window
676
- var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint
677
- var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint*2 : window.innerHeight-e.clientY-offsetypoint
678
- var bottom=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight
679
-
680
- var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000
681
-
682
- //if the horizontal distance isn't enough to accomodate the width of the context menu
683
- if (rightedge<tipobj.offsetWidth+offsetxpoint/2)
684
- //move the horizontal position of the menu to the left by it's width
685
- tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth-offsetxpoint+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth-offsetxpoint+"px"
686
- else if (curX<leftedge)
687
- tipobj.style.left="5px"
688
- else
689
- //position the horizontal position of the menu where the mouse is positioned
690
- tipobj.style.left=curX+offsetxpoint+"px"
691
-
692
- //same concept with the vertical position
693
- if (bottomedge<tipobj.offsetHeight)
694
- tipobj.style.top=ie? ietruebody().scrollTop+bottom-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+bottom-tipobj.offsetHeight-offsetypoint+"px"
695
- else
696
- tipobj.style.top=curY+offsetypoint+"px"
697
- tipobj.style.visibility="visible"
698
- }
699
- }
700
-
701
- function notip(){
702
- if (ns6||ie){
703
- enabletip=false
704
- tipobj.style.visibility="hidden"
705
- tipobj.style.left="-1000px"
706
- tipobj.style.backgroundColor=''
707
- tipobj.style.width=''
708
- }
709
- }
710
-
711
- document.onmousemove=positiontip
712
-
713
- </script>
714
-
715
- </td></table>
716
-
717
- </body>
718
- </html>