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.
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>