bake-toolkit 2.28.0 → 2.28.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/_build/html/_sources/changelog.txt +3 -0
  3. data/documentation/_build/html/_sources/index.txt +1 -1
  4. data/documentation/_build/html/_static/logo_tiny_48.png +0 -0
  5. data/documentation/_build/html/changelog.html +1154 -1149
  6. data/documentation/_build/html/commandline/commandline.html +285 -285
  7. data/documentation/_build/html/concepts/build_hierarchy.html +204 -204
  8. data/documentation/_build/html/concepts/concepts.html +196 -196
  9. data/documentation/_build/html/concepts/inject.html +216 -216
  10. data/documentation/_build/html/concepts/link_order.html +245 -245
  11. data/documentation/_build/html/concepts/prebuild.html +205 -205
  12. data/documentation/_build/html/concepts/the_main_project.html +260 -260
  13. data/documentation/_build/html/concepts/the_project_meta_file.html +288 -288
  14. data/documentation/_build/html/genindex.html +152 -152
  15. data/documentation/_build/html/ide/eclipse/eclipse.html +186 -186
  16. data/documentation/_build/html/ide/eclipse/how_to_convert_existing_cdt_workspace.html +208 -208
  17. data/documentation/_build/html/ide/eclipse/how_to_create_a_new_project_in_eclipse.html +191 -191
  18. data/documentation/_build/html/ide/eclipse/how_to_create_a_workspace_in_eclipse.html +198 -198
  19. data/documentation/_build/html/ide/eclipse/how_to_debug_in_eclipse.html +198 -198
  20. data/documentation/_build/html/ide/eclipse/how_to_install_eclipse_plugin.html +196 -196
  21. data/documentation/_build/html/ide/eclipse/how_to_use_bake_in_eclipse.html +256 -256
  22. data/documentation/_build/html/ide/ide_integrations.html +185 -185
  23. data/documentation/_build/html/ide/vs/how_to_create_vs_projects.html +171 -171
  24. data/documentation/_build/html/ide/vs/how_to_debug_in_vs.html +185 -185
  25. data/documentation/_build/html/ide/vs/how_to_used_bake_in_vs.html +190 -190
  26. data/documentation/_build/html/ide/vs/vs.html +170 -170
  27. data/documentation/_build/html/ide/vs/vs_install.html +202 -202
  28. data/documentation/_build/html/index.html +246 -246
  29. data/documentation/_build/html/install/install_bake.html +279 -279
  30. data/documentation/_build/html/internal.html +217 -217
  31. data/documentation/_build/html/known_issues.html +173 -173
  32. data/documentation/_build/html/license.html +236 -236
  33. data/documentation/_build/html/performance/performance.html +373 -373
  34. data/documentation/_build/html/quickstart/quickstart.html +236 -236
  35. data/documentation/_build/html/search.html +174 -174
  36. data/documentation/_build/html/searchindex.js +1 -1
  37. data/documentation/_build/html/syntax/adapt_configs.html +370 -370
  38. data/documentation/_build/html/syntax/auto_adjustment.html +189 -189
  39. data/documentation/_build/html/syntax/derive_configs.html +247 -247
  40. data/documentation/_build/html/syntax/project_meta_syntax.html +923 -923
  41. data/documentation/_build/html/syntax/syntax.html +196 -196
  42. data/documentation/_build/html/syntax/variable_substitutions.html +365 -365
  43. data/documentation/_build/html/tips_and_tricks/bakeclean.html +169 -169
  44. data/documentation/_build/html/tips_and_tricks/dot.html +186 -186
  45. data/documentation/_build/html/tips_and_tricks/how_to_use_bake_with_cygwin.html +214 -214
  46. data/documentation/_build/html/tips_and_tricks/qac.html +297 -297
  47. data/documentation/_build/html/tips_and_tricks/the_bakery.html +405 -405
  48. data/documentation/_build/html/tips_and_tricks/the_clang.html +201 -201
  49. data/documentation/_build/html/tips_and_tricks/tips_and_tricks.html +198 -198
  50. data/documentation/_build/html/why_bake/why_bake.html +241 -241
  51. data/lib/bake/config/checks.rb +76 -68
  52. data/lib/bake/model/metamodel.rb +6 -0
  53. data/lib/common/version.rb +1 -1
  54. metadata +3 -5
  55. data/documentation/_build/html/_sources/tips_and_tricks/static_code_analysis.txt +0 -122
  56. data/documentation/_build/html/_static/logo_conformant_48.png +0 -0
  57. data/documentation/_build/html/tips_and_tricks/static_code_analysis.html +0 -285
@@ -1,924 +1,924 @@
1
- <!DOCTYPE html>
2
-
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml">
5
- <head>
6
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
-
8
- <title>The Syntax of the Project.meta file &mdash; bake documentation</title>
9
-
10
- <link rel="stylesheet" href="../_static/basic.css" type="text/css" />
11
- <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12
- <link rel="stylesheet" href="../_static/bootswatch-3.3.4/sandstone/bootstrap.min.css" type="text/css" />
13
- <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
14
-
15
- <script type="text/javascript">
16
- var DOCUMENTATION_OPTIONS = {
17
- URL_ROOT: '../',
18
- VERSION: '',
19
- COLLAPSE_INDEX: false,
20
- FILE_SUFFIX: '.html',
21
- HAS_SOURCE: true
22
- };
23
- </script>
24
- <script type="text/javascript" src="../_static/jquery.js"></script>
25
- <script type="text/javascript" src="../_static/underscore.js"></script>
26
- <script type="text/javascript" src="../_static/doctools.js"></script>
27
- <script type="text/javascript" src="../_static/js/jquery-1.11.0.min.js"></script>
28
- <script type="text/javascript" src="../_static/js/jquery-fix.js"></script>
29
- <script type="text/javascript" src="../_static/bootstrap-3.3.4/js/bootstrap.min.js"></script>
30
- <script type="text/javascript" src="../_static/bootstrap-sphinx.js"></script>
31
- <link rel="shortcut icon" href="../_static/logo_tiny_32.ico"/>
32
- <link rel="top" title="bake documentation" href="../index.html" />
33
- <link rel="up" title="Syntax" href="syntax.html" />
34
- <link rel="next" title="Variables in Project.meta" href="variable_substitutions.html" />
35
- <link rel="prev" title="Syntax" href="syntax.html" />
36
- <meta charset='utf-8'>
37
- <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
38
- <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
39
- <meta name="apple-mobile-web-app-capable" content="yes">
40
-
41
- </head>
42
- <body role="document">
43
-
44
- <div id="navbar" class="navbar navbar-default navbar-fixed-top">
45
- <div class="container">
46
- <div class="navbar-header">
47
- <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
48
- <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
49
- <span class="icon-bar"></span>
50
- <span class="icon-bar"></span>
51
- <span class="icon-bar"></span>
52
- </button>
53
- <a class="navbar-brand" href="../index.html"><img src="../_static/logo_conformant_48.png">
54
- </a>
55
- <span class="navbar-text navbar-version pull-left"><b></b></span>
56
- </div>
57
-
58
- <div class="collapse navbar-collapse nav-collapse">
59
- <ul class="nav navbar-nav">
60
-
61
-
62
- <li class="dropdown globaltoc-container">
63
- <a role="button"
64
- id="dLabelGlobalToc"
65
- data-toggle="dropdown"
66
- data-target="#"
67
- href="../index.html">Section <b class="caret"></b></a>
68
- <ul class="dropdown-menu globaltoc"
69
- role="menu"
70
- aria-labelledby="dLabelGlobalToc"><ul class="current">
71
- <li class="toctree-l1"><a class="reference internal" href="../why_bake/why_bake.html">Why you should use bake</a></li>
72
- <li class="toctree-l1"><a class="reference internal" href="../install/install_bake.html">Install bake</a></li>
73
- <li class="toctree-l1"><a class="reference internal" href="../quickstart/quickstart.html">Quickstart</a></li>
74
- <li class="toctree-l1"><a class="reference internal" href="../concepts/concepts.html">Concepts</a></li>
75
- <li class="toctree-l1 current"><a class="reference internal" href="syntax.html">Syntax</a></li>
76
- <li class="toctree-l1"><a class="reference internal" href="../commandline/commandline.html">Commandline</a></li>
77
- <li class="toctree-l1"><a class="reference internal" href="../ide/ide_integrations.html">IDE Support</a></li>
78
- <li class="toctree-l1"><a class="reference internal" href="../tips_and_tricks/tips_and_tricks.html">Additional features</a></li>
79
- <li class="toctree-l1"><a class="reference internal" href="../performance/performance.html">Performance</a></li>
80
- <li class="toctree-l1"><a class="reference internal" href="../known_issues.html">Known Issues</a></li>
81
- <li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
82
- <li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li>
83
- </ul>
84
- <ul>
85
- <li class="toctree-l1"><a class="reference internal" href="../internal.html">Internal developing notes</a></li>
86
- </ul>
87
- </ul>
88
- </li>
89
-
90
- <li class="dropdown">
91
- <a role="button"
92
- id="dLabelLocalToc"
93
- data-toggle="dropdown"
94
- data-target="#"
95
- href="#">SubSections <b class="caret"></b></a>
96
- <ul class="dropdown-menu localtoc"
97
- role="menu"
98
- aria-labelledby="dLabelLocalToc"><ul>
99
- <li><a class="reference internal" href="#">The Syntax of the Project.meta file</a><ul>
100
- <li><a class="reference internal" href="#instructions-for-the-interactive-syntax-viewer">Instructions for the Interactive Syntax Viewer</a></li>
101
- </ul>
102
- </li>
103
- </ul>
104
- </ul>
105
- </li>
106
-
107
-
108
-
109
-
110
-
111
- <li>
112
- <a href="syntax.html" title="Previous Chapter: Syntax"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">&laquo; Syntax</span>
113
- </a>
114
- </li>
115
- <li>
116
- <a href="variable_substitutions.html" title="Next Chapter: Variables in Project.meta"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Variables in ... &raquo;</span>
117
- </a>
118
- </li>
119
-
120
-
121
-
122
-
123
-
124
- </ul>
125
-
126
-
127
-
128
- <form class="navbar-form navbar-right" action="../search.html" method="get">
129
- <div class="form-group">
130
- <input type="text" name="q" class="form-control" placeholder="Search" />
131
- </div>
132
- <input type="hidden" name="check_keywords" value="yes" />
133
- <input type="hidden" name="area" value="default" />
134
- </form>
135
-
136
- </div>
137
- </div>
138
- </div>
139
-
140
- <div class="container">
141
- <div class="row">
142
- <div class="col-md-12">
143
-
144
- <div class="section" id="the-syntax-of-the-project-meta-file">
145
- <h1>The Syntax of the Project.meta file<a class="headerlink" href="#the-syntax-of-the-project-meta-file" title="Permalink to this headline">¶</a></h1>
146
- <div class="section" id="instructions-for-the-interactive-syntax-viewer">
147
- <h2>Instructions for the Interactive Syntax Viewer<a class="headerlink" href="#instructions-for-the-interactive-syntax-viewer" title="Permalink to this headline">¶</a></h2>
148
- <ul class="simple">
149
- <li>Move the mouse cursor over the blue elements to display more information.</li>
150
- <li>Three config types exist: ExecutableConfig, LibraryConfig and CustomConfig. Move the mouse cursor over these elements to display the supported content.</li>
151
- </ul>
152
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
153
- "http://www.w3.org/TR/html4/strict.dtd">
154
- <html>
155
- <head></head>
156
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
157
-
158
- <body >
159
-
160
- <style type="text/css">
161
-
162
- #dhtmltooltip{
163
- position: absolute;
164
- width: 150px;
165
- border: 2px solid black;
166
- padding: 2px;
167
- background-color: lightyellow;
168
- visibility: hidden;
169
- z-index: 100;
170
- }
171
-
172
- </style>
173
-
174
- <style type="text/css">
175
- .hide {
176
- display:none;
177
- }
178
- .show {
179
- display:block
180
- }
181
- .showInline {
182
- display:inline
183
- }
184
- .help {
185
- color:blue
186
- }
187
- .showRadio {
188
- font-weight:bold;color:blue;text-decoration:overline underline
189
- }
190
- .hideRadio {
191
- color:#AAAAFF;
192
- }
193
- .mycomment {
194
- color:green
195
- }
196
- </style>
197
-
198
-
199
-
200
-
201
-
202
- <table border="1" style="font-family:monospace"; font-size:10><td>
203
-
204
- <span class="help" onMouseover="showProject()" onMouseout="notip()">Project</span> <span class="help" onMouseover="showDefaultConfig()" onMouseout="notip()">default</span>: &#60;name&#62; {<br>
205
- &nbsp; <br>
206
-
207
- &nbsp; <span class="help" onMouseover="showDescription()" onMouseout="notip()">Description</span> &#60;text&#62;<br><br>
208
-
209
- &nbsp; <span class="help" onMouseover="showVersion()" onMouseout="notip()">RequiredBakeVersion</span> minimum: &#60;major.minor.patch&#62;, maximum: &#60;major.minor.patch&#62;<br><br>
210
-
211
- &nbsp; <span class="help" onMouseover="showResponsible()" onMouseout="notip()">Responsible</span> {<br>
212
- &nbsp; &nbsp; <span class="help" onMouseover="showPerson()" onMouseout="notip()">Person</span> &#60;name&#62;,
213
- <span class="help" onMouseover="showPersonEmail()" onMouseout="notip()">email</span>: &#60;adr&#62;<br>
214
- &nbsp; }<br><br>
215
-
216
- &nbsp; <span class="mycomment"># 0..n configs</span><br>
217
- &nbsp; <span class="showRadio" onMouseover="showExecutableConfig()" onMouseout="notip()" id="executableConfig">ExecutableConfig</span> |
218
- <span class="hideRadio" onMouseover="showLibraryConfig()" onMouseout="notip()" id="libraryConfig">LibraryConfig</span> |
219
- <span class="hideRadio" onMouseover="showCustomConfig()" onMouseout="notip()" id="customConfig">CustomConfig</span> &#60;name&#62;,
220
- <span class="help" onMouseover="showExtends()" onMouseout="notip()">extends</span>: &#60;parent(s)&#62;,
221
- <span class="help" onMouseover="showPrivate()" onMouseout="notip()">private</span>: true|false {<br><br>
222
-
223
- <span><span style="background-color:#EEEEEE;" class="show">
224
- &nbsp; &nbsp; <span class="mycomment"># Valid for all config types</span><br><br>
225
- &nbsp; &nbsp; <span class="help" onMouseover="showDescription()" onMouseout="notip()">Description</span> &#60;text&#62;<br>
226
- &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()">inject</span>: front|back, <span class="help" onMouseover="showSystemInclude()" onMouseout="notip()">system</span>: true|false<br>
227
- &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>
228
- &nbsp; &nbsp; <span class="help" onMouseover="showDependency()" onMouseout="notip()">Dependency</span> &#60;project&#62;,
229
- <span class="help" onMouseover="showDependencyConfig()" onMouseout="notip()">config</span>: &#60;name&#62;<br>
230
- &nbsp; &nbsp; <span class="help" onMouseover="showExternalLibrary()" onMouseout="notip()">ExternalLibrary</span> &#60;lib&#62;,
231
- <span class="help" onMouseover="showExternalLibrarySearch()" onMouseout="notip()">search</span>: true|false<br>
232
- &nbsp; &nbsp; <span class="help" onMouseover="showUserLibrary()" onMouseout="notip()">UserLibrary</span> &#60;lib&#62;<br>
233
- &nbsp; &nbsp; <span class="help" onMouseover="showExternalLibrarySearchPath()" onMouseout="notip()">ExternalLibrarySearchPath</span> &#60;path&#62;<br>
234
- &nbsp; &nbsp; <span class="help" onMouseover="showPreSteps()" onMouseout="notip()">PreSteps</span> {<br>
235
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showMakefile()" onMouseout="notip()">Makefile</span> &#60;file&#62;,
236
- <span class="help" onMouseover="showMakefileLib()" onMouseout="notip()">lib</span>: &#60;lib&#62;,
237
- <span class="help" onMouseover="showMakefileTarget()" onMouseout="notip()">target</span>: &#60;target&#62;,
238
- <span class="help" onMouseover="showMakefilePathTo()" onMouseout="notip()">pathTo</span>: &#60;paths&#62;,
239
- <span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
240
- <span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: &#60;name&#62;,
241
- <span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
242
- <span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: &#60;[array]&#62; {<br>
243
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showMakefileFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
244
- &nbsp; &nbsp; &nbsp; }<br>
245
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showCommandLine()" onMouseout="notip()">CommandLine</span> &#60;line&#62;,
246
- <span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
247
- <span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: &#60;name&#62;,
248
- <span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
249
- <span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: &#60;[array]&#62;<br>
250
- &nbsp; &nbsp; }<br>
251
- &nbsp; &nbsp; <span class="help" onMouseover="showPostSteps()" onMouseout="notip()">PostSteps</span> {<br>
252
- &nbsp; &nbsp; &nbsp; <span class="mycomment"># Same as for PreSteps</span><br>
253
- &nbsp; &nbsp; }<br>
254
- &nbsp; &nbsp; <span class="help" onMouseover="showStartupSteps()" onMouseout="notip()">StartupSteps</span> {<br>
255
- &nbsp; &nbsp; &nbsp; <span class="mycomment"># Same as for PreSteps</span><br>
256
- &nbsp; &nbsp; }<br>
257
- &nbsp; &nbsp; <span class="help" onMouseover="showExitSteps()" onMouseout="notip()">ExitSteps</span> {<br>
258
- &nbsp; &nbsp; &nbsp; <span class="mycomment"># Same as for PreSteps</span><br>
259
- &nbsp; &nbsp; }<br>
260
- &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>
261
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultCompiler()" onMouseout="notip()">Compiler</span> ASM | CPP | C,
262
- <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
263
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
264
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultDefine()" onMouseout="notip()">Define</span> &#60;define&#62;<br>
265
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showInternalDefines()" onMouseout="notip()">InternalDefines</span> &#60;file&#62;<br>
266
- &nbsp; &nbsp; &nbsp; }<br>
267
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultArchiver()" onMouseout="notip()">Archiver</span>
268
- <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
269
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
270
- &nbsp; &nbsp; &nbsp; }<br>
271
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultLinker()" onMouseout="notip()">Linker</span>
272
- <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
273
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
274
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLibPrefixFlags()" onMouseout="notip()">LibPrefixFlags</span> &#60;flags&#62;<br>
275
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLibPostfixFlags()" onMouseout="notip()">LibPostfixFlags</span> &#60;flags&#62;<br>
276
- &nbsp; &nbsp; &nbsp; }<br>
277
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showInternalIncludes()" onMouseout="notip()">InternalIncludes</span> &#60;file&#62;<br>
278
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDocu()" onMouseout="notip()">Docu</span> &#60;cmdLine&#62;<br>
279
- &nbsp; &nbsp; }<br>
280
-
281
-
282
- &nbsp; &nbsp; <span class="help" onMouseover="showToolchainProject()" onMouseout="notip()">Toolchain</span> <span class="help" onMouseover="showOutputDir()" onMouseout="notip()">outputDir</span>: &#60;dir&#62; {<br>
283
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showCompiler()" onMouseout="notip()">Compiler</span> ASM | CPP | C,
284
- <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
285
- &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>
286
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefine()" onMouseout="notip()">Define</span> &#60;define&#62;<br>
287
- &nbsp; &nbsp; &nbsp; }<br>
288
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showArchiver()" onMouseout="notip()">Archiver</span>
289
- <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
290
- &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>
291
- &nbsp; &nbsp; &nbsp; }<br>
292
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLinker()" onMouseout="notip()">Linker</span>
293
- <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
294
- &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>
295
- &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>
296
- &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>
297
- &nbsp; &nbsp; &nbsp; }<br>
298
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDocu()" onMouseout="notip()">Docu</span> &#60;cmdLine&#62;<br>
299
- &nbsp; &nbsp; }<br>
300
- &nbsp; &nbsp; <span class="help" onMouseover="showPrebuild()" onMouseout="notip()">Prebuild</span> {<br>
301
- &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showExcept()" onMouseout="notip()">Except</span> &#60;project&#62;,
302
- <span class="help" onMouseover="showExceptConfig()" onMouseout="notip()">config</span>: &#60;name&#62;<br>
303
- &nbsp; &nbsp; }<br></span><br>
304
-
305
- </span>
306
-
307
- <span id="libExe_part"><span class="show" style="background-color:#EEEEEE;">
308
- &nbsp; &nbsp; <span class="mycomment"># Valid for ExecutableConfig and LibraryConfig</span><br><br>
309
- &nbsp; &nbsp; <span class="help" onMouseover="showFiles()" onMouseout="notip()">Files</span> &#60;pattern&#62; {<br>
310
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showFilesFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;, add: &#60;flags&#62;, remove: &#60;flags&#62;<br>
311
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showFilesDefine()" onMouseout="notip()">Define</span> &#60;define&#62;<br>
312
- &nbsp; &nbsp; }<br>
313
- &nbsp; &nbsp; <span class="help" onMouseover="showExcludeFiles()" onMouseout="notip()">ExcludeFiles</span> &#60;pattern&#62;<br>
314
- &nbsp; &nbsp; <span class="help" onMouseover="showArtifactName()" onMouseout="notip()">ArtifactName</span> &#60;name&#62;<br>
315
- </span><br></span>
316
-
317
- <span id="exe_part"><span class="show" style="background-color:#EEEEEE;">
318
- &nbsp; &nbsp; <span class="mycomment"># Valid for ExecutableConfig</span><br><br>
319
- &nbsp; &nbsp; <span class="help" onMouseover="showLinkerScript()" onMouseout="notip()">LinkerScript</span> &#60;script&#62;<br>
320
- &nbsp; &nbsp; <span class="help" onMouseover="showMapFile()" onMouseout="notip()">MapFile</span> &#60;name&#62;<br>
321
- </span><br></span>
322
-
323
- <span id="custom_part" class="hide"><span style="background-color:#EEEEEE;" class="show">
324
- &nbsp; &nbsp; <span class="mycomment"># Valid for CustomConfig</span><br><br>
325
- &nbsp; &nbsp; <span class="showRadio" id="makefile" onMouseover="showMakefileCustom()" onMouseout="notip()">Makefile</span> |
326
- <span class="hideRadio" id="commandline" onMouseover="showCommandlineCustom()" onMouseout="notip()">CommandLine</span>
327
- <span style="background-color:#DDDDDD;" id="makefile_part" class="showInline"> &#60;name&#62;,
328
- <span class="help" onMouseover="showMakefileLib()" onMouseout="notip()">lib</span>: &#60;lib&#62;,
329
- <span class="help" onMouseover="showMakefileTarget()" onMouseout="notip()">target</span>: &#60;target&#62;,
330
- <span class="help" onMouseover="showMakefilePathTo()" onMouseout="notip()">pathTo</span>: &#60;paths&#62;,
331
- <span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
332
- <span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: &#60;name&#62;,
333
- <span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
334
- <span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: &#60;[array]&#62; {<br>
335
- &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showMakefileFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
336
- &nbsp; &nbsp; }<br>
337
- </span>
338
- <span style="background-color:#DDDDDD;" id="commandline_part" class="hide">&#60;line&#62;,
339
- <span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
340
- <span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: &#60;name&#62;,
341
- <span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
342
- <span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: &#60;[array]&#62;
343
- </span>
344
- &nbsp; &nbsp; <br></span><br></span>
345
- &nbsp; }<br>
346
- }<br><br>
347
- Adapt toolchain: &#60;name&#62;, os: &#60;name&#62;, mainProject: &#60;name&#62;, mainConfig: &#60;name&#62; {<br>
348
- &nbsp; <span class="mycomment"># See Adapt documention for details.</span><br>
349
- }<br>
350
-
351
-
352
- <div id="dhtmltooltip"></div>
353
-
354
- <script type="text/javascript">
355
-
356
-
357
- function showProject() {
358
- str = 'A bake project is very similiar to a project in Eclipse, Visual Studio, etc.<br>'+
359
- 'The name of the project is the directory name of the Project.meta file.'
360
- ddrivetip("Project", "Yes", "1", "-",str)
361
- }
362
-
363
- function showDefaultConfig() {
364
- str = 'Default configuration which is used if not explicitly specified on command line or Dependency definition.<br><br>'+
365
- 'Examples:<br>'+
366
- '# Project.meta:<br>'+
367
- 'Dependency canDriver # uses default config of canDriver project<br>'+
368
- '# Command line:<br>'+
369
- 'bake -m folder/dir/projABC # builds default config of project projABC'
370
- ddrivetip("default", "No", "-", "-",str)
371
- }
372
-
373
- function showResponsible() {
374
- str = "Specify all responsible persons of the project."
375
- ddrivetip("Responsible", "No,", "0..1", "-",str)
376
- }
377
-
378
- function showDescription() {
379
- str = 'Description of the project or config.'
380
- ddrivetip("Description", "No", "0..1", "-",str)
381
- }
382
-
383
- function showVersion() {
384
- str = 'If specified, the build will be aborted if bake version is lower than mininum or greater than maximum.<br>'+
385
- 'It is possible to define only minimum, only maximim or both version thresholds.<br>'+
386
- 'Minor and patch version numbers are optional.'
387
- ddrivetip("RequiredBakeVersion", "No", "0..1", "-",str)
388
- }
389
-
390
- function showPerson() {
391
- str = 'Person who is responsible for the project.'
392
- ddrivetip("Person", "No", "0..1", "-",str)
393
- }
394
-
395
- function showPersonEmail() {
396
- str = 'Use always double quotes (") for the email address.'
397
- ddrivetip("email", "No", "-", "-",str)
398
- }
399
-
400
- function showExecutableConfig() {
401
- document.getElementById('libExe_part').className="show"
402
- document.getElementById('exe_part').className="show"
403
- document.getElementById('custom_part').className="hide"
404
- document.getElementById('executableConfig').className="showRadio"
405
- document.getElementById('libraryConfig').className="hideRadio"
406
- document.getElementById('customConfig').className="hideRadio"
407
-
408
- str = 'This is usually the main config of an application.'
409
- ddrivetip("ExecutableConfig", "No","0..n","-",str)
410
- }
411
-
412
- function showLibraryConfig() {
413
- document.getElementById('libExe_part').className="show"
414
- document.getElementById('exe_part').className="hide"
415
- document.getElementById('custom_part').className="hide"
416
- document.getElementById('executableConfig').className="hideRadio"
417
- document.getElementById('libraryConfig').className="showRadio"
418
- document.getElementById('customConfig').className="hideRadio"
419
-
420
- str = 'This config is used for a source library. The library will be linked automatically to the executable.'
421
- ddrivetip("LibraryConfig", "No","0..n","-",str)
422
- }
423
-
424
- function showCustomConfig() {
425
- document.getElementById('libExe_part').className="hide"
426
- document.getElementById('exe_part').className="hide"
427
- document.getElementById('custom_part').className="show"
428
- document.getElementById('executableConfig').className="hideRadio"
429
- document.getElementById('libraryConfig').className="hideRadio"
430
- document.getElementById('customConfig').className="showRadio"
431
-
432
- str = 'This config is used for special projects, e.g. for Makefile projects.<br>'+
433
- 'It is valid to leave a CustomConfig completely empty - nothing will be done in that case.'
434
- ddrivetip("CustomConfig", "No","0..n","-",str)
435
- }
436
-
437
- function showExternalLibrary() {
438
- str = 'Every config can specify libs which have to be linked to the executable.<br>'+
439
- 'It\'s possible to add a path, e.g.:<br>'+
440
- '<i> &nbsp; &nbsp; ExternalLibrary "xy/z/ab"</i><br>'+
441
- 'In this case the lib "ab" is added to the linker command line as well as the lib search path "xy/z".<br>'+
442
- 'Note, that the linker will look for "libab.a".'
443
- ddrivetip("ExternalLibrary", "No","0..n","-",str)
444
- }
445
-
446
- function showExternalLibrarySearch() {
447
- str = 'If the attribute "search: false" is specified, the lib will not be searched but linked with the full name, e.g.<br>'+
448
- '<i> &nbsp; &nbsp; ExternalLibrary "xy/z/libpq.a", search: false</i><br>'+
449
- 'will link "xy/z/libpq.a" to the executable.<br>'+
450
- 'It is also possible to specify an object file when using "search: false".'
451
- ddrivetip("search", "No","-","true",str)
452
- }
453
-
454
- function showUserLibrary() {
455
- str = 'A user library will be linked <i>before</i> any other libraries or objects to the executable.<br>'+
456
- 'It is also possible to specify an object file.<br>'+
457
- 'The library will be searched like an ExternalLibrary, but with the full name, e.g.<br>'+
458
- '<i> &nbsp; &nbsp; UserLibrary "xy/z/libUser.a"</i><br>'+
459
- '<i> &nbsp; &nbsp; UserLibrary "xy/z/something.o"</i><br>'+
460
- 'will link "libUser.a" and "something.o" before regular objects and libraries.<br>'+
461
- '"xy/z" will be added as an ExternalLibrarySearchPath.'
462
- ddrivetip("UserLibrary", "No","0..n","-",str)
463
- }
464
-
465
- function showExternalLibrarySearchPath() {
466
- str = 'The linker looks for libraries in search paths.<br>'+
467
- 'Search paths can be defined implicitly by ExternalLibrary/UserLibrary or explicitly by this tag.'
468
- ddrivetip("ExternalLibrarySearchPath", "No","0..n","-",str)
469
- }
470
-
471
- function showPreSteps() {
472
- str = 'PreSteps are executed before compiling files of the project.<br>'+
473
- 'The number of steps are not limited.<br>'+
474
- 'If a step fails, all further steps of the project will be skipped.'
475
- ddrivetip("PreSteps", "No","0..1","-",str)
476
- }
477
-
478
- function showPostSteps() {
479
- str = 'PostSteps are executed after the main task of the project, e.g. linking an executable.<br>'+
480
- 'The number of steps are not limited.<br>'+
481
- 'If a step fails, all further steps of the project will be skipped.'
482
- ddrivetip("PostSteps", "No","0..1","-",str)
483
- }
484
-
485
- function showStartupSteps() {
486
- str = 'StartupSteps of ALL projects are executed before building the first project.<br>'+
487
- 'The number of steps are not limited.'
488
- ddrivetip("StartupSteps", "No","0..1","-",str)
489
- }
490
-
491
- function showExitSteps() {
492
- str = 'ExitSteps of ALL projects are executed after building complete workspace even if the build has failed.<br>'+
493
- 'The number of steps are not limited.'
494
- ddrivetip("ExitSteps", "No","0..1","-",str)
495
- }
496
-
497
- function showStepDefault() {
498
- str = 'Specifies if a step will be executed by default.<br>'+
499
- '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.'
500
- ddrivetip("default", "No","-","on",str)
501
- }
502
-
503
- function showEcho() {
504
- str = 'On means the command line is shown in output, off means the command line is not shown.'
505
- ddrivetip("echo", "No","-","on",str)
506
- }
507
-
508
- function showStepFilter() {
509
- str = 'A step can be switched on or off explicitly regardless of the "default" attribute with the command line options<br>'+
510
- '<i> &nbsp; &nbsp; --do &#60;filter name&#62;</i><br>'+
511
- '<i> &nbsp; &nbsp; --omit &#60;filter name&#62;</i><br>'
512
- ddrivetip("filter", "No","-","-",str)
513
- }
514
-
515
- function showValidExitCodes() {
516
- str = 'Define it as an array, e.g.:<br>'+
517
- '..., validExitCodes: [200,201,202]'
518
- ddrivetip("validExitCodes", "No","-","[0]",str)
519
- }
520
-
521
-
522
- function getMakefileDesc() {
523
- return 'Makefile to be started, e.g.:<br>'+
524
- '<i> &nbsp; &nbsp; Makefile "subDir/makefile"</i><br>'
525
- }
526
-
527
- function showMakefile() {
528
- ddrivetip("Makefile", "No","0..n","-",getMakefileDesc())
529
- }
530
-
531
- function showMakefileLib() {
532
- str = 'If the result of the makefile is a library which shall be linked to the executable, name it here.'
533
- ddrivetip("lib", "No","-","-",str)
534
- }
535
-
536
- function showMakefileTarget() {
537
- str = 'The target of the makefile.'
538
- ddrivetip("target", "No","-","all",str)
539
- }
540
-
541
- function showMakefilePathTo() {
542
- str = 'Comma separated list, e.g. "common, abc, xy".<br>'+
543
- 'The makefile can use variables like $(PATH_TO_common). This is very useful if paths to other projects are needed in the makefile.<br>'+
544
- 'Remember that more than one workspace root can exist and a hardcoded "../common" is not reliable in that case.<br>'+
545
- '$(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. '+
546
- 'So if the current project and the common project have the same parent folder, the string will be empty.<br>'+
547
- 'Example:<br>'+
548
- 'makefile: c:\\workspaceroot\\yourProject\\makefile<br>'+
549
- 'usage in makefile: gcc -I$../../$(PATH_TO_common)common/include ...<br>'+
550
- 'It\'s done like this due to compatibility reasons.'
551
- ddrivetip("pathTo", "No","-","-",str)
552
- }
553
-
554
- function showMakefileFlags() {
555
- ddrivetip("Flags", "No","0..n","-j","Additional makefile flags.")
556
- }
557
-
558
- function getCommandLineDesc() {
559
- return 'A command to execute, e.g.:<br>'+
560
- '<i> &nbsp; &nbsp; CommandLine "ddump -Ruv -y 0xFFFFF -oRelease/application.bin Release/application.elf"</i><br>'+
561
- '<i> &nbsp; &nbsp; CommandLine "echo Hello world!"</i><br>'
562
- }
563
-
564
- function showCommandLine() {
565
- ddrivetip("CommandLine", "No","0..n","-",getCommandLineDesc())
566
- }
567
-
568
-
569
- function showEclipseOrder() {
570
- str = 'If not specified or false, all files are compiled in order of appearance in Project.meta. '+
571
- 'If the filename is a glob pattern, files are sorted alphabetically.<p>'+
572
- 'If true, files are compiled in alphabetical order within a folder, '+
573
- 'but the folders are sorted in reverse alphabetical order.<br>'+
574
- 'This is only used for backward compatibility.'
575
- ddrivetip("eclipseOrder", "No","-","false",str)
576
- }
577
-
578
- function showOutputDir() {
579
- str = 'Specifies the output folder.<p>'+
580
- 'Use always relative paths, not absolute paths due to portability.<p>'+
581
- 'Use always "/" and not "\\".<p>'+
582
- 'If the first part of the path is equal to a project name, it is used as a shortcut to this project root. <br>'+
583
- 'To avoid this magic, use something like this: <br>'+
584
- '<i> &nbsp; &nbsp; IncludeDir "./abc/include"</i><br>'
585
- ddrivetip("outputdir", "No","0..1","-",str)
586
- }
587
-
588
- function showExtends() {
589
- ddrivetip("extends", "No","0..1","-","Inherit settings from parent config(s).<br>For more information see docu page 'Derive configs'.")
590
- }
591
-
592
- function showPrivate() {
593
- ddrivetip("private", "No","0..1","false","If true, the config cannot be referenced directly outside of this project.")
594
- }
595
-
596
- function showFiles() {
597
- str = 'Specifies the files to build.<br>'+
598
- 'It\'s valid to specify a single file, e.g.<br>'+
599
- '<i> &nbsp; &nbsp; Files "src/abc/def.asm"</i><br>'+
600
- 'or a pattern, e.g.<br>'+
601
- '<i> &nbsp; &nbsp; Files "*/**/.cpp"</i><br>'+
602
- 'which builds all files with the ending ".cpp" in all subdirectories.<br>'+
603
- 'Note: ".." is not allowed in the file path. All files must be located within the project.<br>'+
604
- 'Note: if patterns are used, Flags and Define are ignored.'
605
- ddrivetip("Files", "No","0..n","-",str)
606
- }
607
-
608
- function showExcludeFiles() {
609
- str = 'Used to ignore files or directories.<br>'+
610
- 'ExcludeFiles has higher priority than Files.'
611
- ddrivetip("ExcludeFiles", "No","0..n","-",str)
612
- }
613
-
614
- function showIncludeDir() {
615
- str = 'Specifies the include directories for the assembler, C and C++ compiler.<p>'+
616
- 'Use always relative paths, not absolute paths due to portability.<p>'+
617
- 'Use always "/" and not "\\".<p>'+
618
- 'It is possible to work with different workspace roots. Do not include something like this: <br>'+
619
- '<i> &nbsp; &nbsp; IncludeDir "../abc/include"</i><br>'+
620
- 'but<br>'+
621
- '<i> &nbsp; &nbsp; IncludeDir "abc/include"</i><br>'+
622
- '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>'+
623
- 'To include directories of the current project, the project name can be omitted like this:<br>'+
624
- '<i> &nbsp; &nbsp; IncludeDir "include"</i><br>'+
625
- '<i> &nbsp; &nbsp; IncludeDir "generated/include"</i><br>'
626
- ddrivetip("IncludeDir", "No","0..n","-",str)
627
- }
628
-
629
- function showInherit() {
630
- str = 'Inherits the include to all projects, which depend on this project.'
631
- ddrivetip("inherit", "No","0..1","false",str)
632
- }
633
-
634
- function showInfix() {
635
- str = 'Injects the include path to all childs, either at the front (e.g. for mocking code) or at the end.'
636
- ddrivetip("inject", "No","0..1","-",str)
637
- }
638
-
639
- function showSystemInclude() {
640
- str = 'If supported from the compiler, the system include flag will be used instead of the normal include flag.<br>'+
641
- 'Example: in gcc "-isystem" instead of "-I" is used.<br>'+
642
- 'Note: system include definition overrules normal include definition if both are defined.'
643
- ddrivetip("system", "false","0..1","-",str)
644
- }
645
-
646
- function showSet() {
647
- str = 'Sets a variable for this and all dependent projects.<br>'+
648
- 'The variable can be a simple value or the result of a cmd, e.g. \"cat myVar.txt\".'
649
- ddrivetip("Set", "No","0..n","-",str)
650
- }
651
-
652
- function showEnv() {
653
- 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.'
654
- ddrivetip("env", "No","-","false",str)
655
- }
656
-
657
- function showDependency() {
658
- str = 'Specifies another project to be built before this project.<br>'+
659
- 'The archive, linker libs and search paths are imported from this project to the this project automatically.<br>'+
660
- 'If you omit the project, the current project will be used.<br>'+
661
- 'If you omit the config name, the default config will be used.<br>'+
662
- '<b>Examples:</b><br>'+
663
- '&nbsp;&nbsp; <i>Dependency gtest, config: lib<br>'+
664
- '&nbsp;&nbsp; Dependency "my/folder/proj"</i>'
665
- ddrivetip("Dependency", "No","0..n","-",str)
666
- }
667
-
668
- function showDependencyConfig() {
669
- str = 'Config name of the project to build.'
670
- ddrivetip("config", "Yes","-","-",str)
671
- }
672
-
673
- function showLinkerScript() {
674
- str = 'Specifies the name including path of the linker script.'
675
- ddrivetip("Dependency", "No","0..1","-",str)
676
- }
677
-
678
- function showMapFile() {
679
- str = 'A mapfile will be written by the linker.'
680
- ddrivetip("MapFile", "No","0..1","If name attribute is omitted: $(OutputDir)/$(ArtifactNameBase).map",str)
681
- }
682
-
683
- function showArtifactName() {
684
- str = 'The artifact name inclusive file ending.<br>'+
685
- 'The artifact will be placed in the output directory.'
686
- ddrivetip("ArtifactName","No","0..1","Executable: project name + toolchain dependent file ending. Library: 'lib' + project name + '.a'",str)
687
- }
688
-
689
- function showMakefileCustom() {
690
- document.getElementById('makefile_part').className="showInline"
691
- document.getElementById('commandline_part').className="hide"
692
- document.getElementById('makefile').className="showRadio"
693
- document.getElementById('commandline').className="hideRadio"
694
- ddrivetip("Makefile", "No","0..1 - Either Makefile or CommandLine","-",getMakefileDesc())
695
- }
696
-
697
- function showCommandlineCustom() {
698
- document.getElementById('makefile_part').className="hide"
699
- document.getElementById('commandline_part').className="showInline"
700
- document.getElementById('makefile').className="hideRadio"
701
- document.getElementById('commandline').className="showRadio"
702
- ddrivetip("CommandLine", "No","0..1 - Either Makefile or CommandLine","-",getCommandLineDesc())
703
- }
704
-
705
- function flagExample() {
706
- return "<br>For removing flags use regular expressions which can be interpreted by ruby.<br>"+
707
- "Regex options for start and stop string are automatically added in order to avoid substring matches.<br><br>"+
708
- "Flag strings are always splitted at spaces and computed individually.<br><br>"+
709
- "<b>Examples:</b><br>"+
710
- "&nbsp;&nbsp; <i>Flags \"-x -y\"</i> overwrites the inherited flags<br><br>"+
711
- "&nbsp;&nbsp; <i>Flags add: \"-x -y\"</i> adds -x and -y if not exist<br><br>"+
712
- "&nbsp;&nbsp; <i>Flags remove: \"-x -y\"</i> removes -x and -y if exist<br><br>"+
713
- "&nbsp;&nbsp; It is possible to combine the attributes like this:<br>"+
714
- "&nbsp;&nbsp; <i>Flags remove: \"-x\", add: \"-y\"</i><br><br>"+
715
- "&nbsp;&nbsp; To remove -g followed by any string, e.g. -g3, the command is:<br>"+
716
- "&nbsp;&nbsp; <i>Flags remove: \"-g.*\"</i><br>"+
717
- "&nbsp;&nbsp; An inherited flag string \"-abc -g3 -xy\" will end up in \"-abc -xy\"."
718
- }
719
-
720
- function showPrebuild() {
721
- str = 'If defined, all configs of the workspace will be skipped per default. Must be actived by the commandline option "--prebuild"'
722
- ddrivetip("Prebuild", "No","0..1","No project/config is skipped",str)
723
- }
724
-
725
- function showExcept() {
726
- str = 'Defines a project which shall not be skipped. If project name is omitted, the current project is used.'
727
- ddrivetip("Except", "No","0..n","Every project is skipped",str)
728
- }
729
-
730
- function showExceptConfig() {
731
- str = 'Defines a config which shall not be skipped. If omitted, all configs of the apprpriate project are not skipped.'
732
- ddrivetip("Toolchain", "No","0..1","Every config is skipped",str)
733
- }
734
-
735
-
736
- function showToolchainProject() {
737
- str = 'Toolchain adaptions for a project.'
738
- ddrivetip("Toolchain", "No","0..1","The DefaultToolchain settings from the main project",str)
739
- }
740
-
741
- function showDefaultToolchain() {
742
- str = 'Settings which are valid for all projects and files unless they will be overwritten.<br>'+
743
- 'The attribute "basedOn" specifies the basic toolchain configuration provided by bake, e.g. "GCC", "Diab", etc.'
744
- ddrivetip("DefaultToolchain", "In main project","0..1","-",str)
745
- }
746
-
747
- function showFilesFlags() {
748
- ddrivetip("Flags", "No","0..n","Flags from project","Flags from the project can be overwritten, extended or (partly) removed.<br>"+flagExample())
749
- }
750
-
751
- function showFilesDefine() {
752
- ddrivetip("Define", "No","0..n","-","Defines which are valid only for a specific file.")
753
- }
754
-
755
- function showFlags() {
756
- ddrivetip("Flags", "No","0..n","Flags from DefaultToolchain","Flags from the DefaultToolchain can be overwritten, extended or (partly) removed.<br>"+flagExample())
757
- }
758
-
759
- function showDefine() {
760
- ddrivetip("Define", "No","0..n","-","Defines valid for all files in the project.")
761
- }
762
-
763
- function showLibPrefixFlags() {
764
- ddrivetip("LibPrefixFlags", "No","0..n","-","Linker libs can be prefixed if needed, e.g. with \"-Wl,--whole-archive\".")
765
- }
766
-
767
- function showLibPostfixFlags() {
768
- ddrivetip("LibPostfixFlags", "No","0..n","-","Linker libs can be postfixed if needed, e.g. with \"-Wl,--no-whole-archive\".")
769
- }
770
-
771
- function showCompiler() {
772
- ddrivetip("Compiler", "No","0..3 (for each compiler type: ASM, CPP, C)","-","Flags and defines can be specified independently for each compiler type.")
773
- }
774
-
775
- function showArchiver() {
776
- ddrivetip("Archiver", "No","0..1","-","Settings for the archiver.")
777
- }
778
-
779
- function showLinker() {
780
- ddrivetip("Linker", "No","0..1","-","Makes sense only for ExecutableConfigs.")
781
- }
782
-
783
- function showDocu() {
784
- ddrivetip("Docu", "No","0..1","-","Command to build the documentation. e.g.:<br>doxygen main.cfg")
785
- }
786
-
787
- function showDefaultFlags() {
788
- ddrivetip("Flags", "No","0..n","-","Default flags.")
789
- }
790
-
791
- function showDefaultDefine() {
792
- ddrivetip("Define", "No","0..n","-","Defines which are valid for all files.")
793
- }
794
-
795
- function showInternalDefines() {
796
- 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.")
797
- }
798
-
799
- function showInternalIncludes() {
800
- 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.")
801
- }
802
-
803
- function showDefaultCompiler() {
804
- ddrivetip("Compiler", "No","0..3 (for each compiler type: ASM, CPP, C)","-","Default compiler settings.")
805
- }
806
-
807
- function showDefaultArchiver() {
808
- ddrivetip("Archiver", "No","0..1","-","Default settings for the archiver.")
809
- }
810
-
811
- function showDefaultLinker() {
812
- ddrivetip("Linker", "No","0..1","-","Default settings for the linker.")
813
- }
814
-
815
- function showCommand() {
816
- ddrivetip("command", "No","-","Depending on toolchain, e.g. \"gcc\"","Change command, e.g. \"$(PATH_TO_EXE)/gcc_speciale.exe\"")
817
- }
818
-
819
-
820
-
821
- var offsetxpoint=20 //Customize x offset of tooltip
822
- var offsetypoint=20 //Customize y offset of tooltip
823
- var ie=document.all
824
- var ns6=document.getElementById && !document.all
825
- var enabletip=false
826
- if (ie||ns6)
827
- var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""
828
-
829
- function ietruebody(){
830
- return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
831
- }
832
-
833
- function ddrivetip(item, manda, quan, def, desc){
834
- if (ns6||ie){
835
-
836
- var abc=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth
837
-
838
- tipobj.style.width=(abc/2-offsetxpoint*2).toString()+"px"
839
- tipobj.style.backgroundColor="#DDFFDD"
840
- 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
841
- enabletip=true
842
- return false
843
- }
844
- }
845
-
846
- function positiontip(e){
847
- if (enabletip){
848
- var curX=(ns6)?e.offsetX : event.clientX+ietruebody().scrollLeft;
849
- var curY=(ns6)?e.pageY-80 : event.clientY+ietruebody().scrollTop;
850
- //Find out how close the mouse is to the corner of the window
851
- var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint
852
- var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint*2 : window.innerHeight-e.clientY-offsetypoint
853
- var bottom=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight
854
-
855
- var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : offsetxpoint
856
-
857
- //if the horizontal distance isn't enough to accomodate the width of the context menu
858
- if (rightedge<tipobj.offsetWidth+offsetxpoint/2)
859
- //move the horizontal position of the menu to the left by it's width
860
- tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth-offsetxpoint+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth-offsetxpoint+"px"
861
- else if (curX<leftedge)
862
- tipobj.style.left="5px"
863
- else
864
- //position the horizontal position of the menu where the mouse is positioned
865
- tipobj.style.left=curX+offsetxpoint+"px"
866
-
867
- //same concept with the vertical position
868
- if (bottomedge<tipobj.offsetHeight)
869
- tipobj.style.top=ie? ietruebody().scrollTop+bottom-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+bottom-tipobj.offsetHeight-offsetypoint+"px"
870
- else
871
- tipobj.style.top=curY+offsetypoint+"px"
872
- tipobj.style.visibility="visible"
873
- }
874
- }
875
-
876
-
877
- function notip(){
878
- if (ns6||ie){
879
- enabletip=false
880
- tipobj.style.visibility="hidden"
881
- tipobj.style.left="-1000px"
882
- tipobj.style.backgroundColor=''
883
- tipobj.style.width=''
884
- }
885
- }
886
-
887
- document.onmousemove=positiontip
888
-
889
- </script>
890
-
891
- </td></table>
892
-
893
- </body>
894
- </html>
895
- <div class="admonition note">
896
- <p class="first admonition-title">Note</p>
897
- <p>Specify the paths always relative to the current project root, but keep the variable substitution in Project.meta in mind.</p>
898
- <ul class="last simple">
899
- <li>Use double quotes (&#8221;) if the strings have spaces or slashes.</li>
900
- <li>Use hash marks (#) for comments.</li>
901
- </ul>
902
- </div>
903
- </div>
904
- </div>
905
-
906
-
907
- </div>
908
-
909
- </div>
910
- </div>
911
- <footer class="footer">
912
- <div class="container">
913
- <p class="pull-right">
914
- <a href="#">Back to top</a>
915
-
916
- </p>
917
- <p>
918
- &copy; Copyright 2016, E.S.R.Labs AG.<br/>
919
- Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
920
- </p>
921
- </div>
922
- </footer>
923
- </body>
1
+ <!DOCTYPE html>
2
+
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml">
5
+ <head>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+
8
+ <title>The Syntax of the Project.meta file &mdash; bake documentation</title>
9
+
10
+ <link rel="stylesheet" href="../_static/basic.css" type="text/css" />
11
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12
+ <link rel="stylesheet" href="../_static/bootswatch-3.3.4/sandstone/bootstrap.min.css" type="text/css" />
13
+ <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
14
+
15
+ <script type="text/javascript">
16
+ var DOCUMENTATION_OPTIONS = {
17
+ URL_ROOT: '../',
18
+ VERSION: '',
19
+ COLLAPSE_INDEX: false,
20
+ FILE_SUFFIX: '.html',
21
+ HAS_SOURCE: true
22
+ };
23
+ </script>
24
+ <script type="text/javascript" src="../_static/jquery.js"></script>
25
+ <script type="text/javascript" src="../_static/underscore.js"></script>
26
+ <script type="text/javascript" src="../_static/doctools.js"></script>
27
+ <script type="text/javascript" src="../_static/js/jquery-1.11.0.min.js"></script>
28
+ <script type="text/javascript" src="../_static/js/jquery-fix.js"></script>
29
+ <script type="text/javascript" src="../_static/bootstrap-3.3.4/js/bootstrap.min.js"></script>
30
+ <script type="text/javascript" src="../_static/bootstrap-sphinx.js"></script>
31
+ <link rel="shortcut icon" href="../_static/logo_tiny_32.ico"/>
32
+ <link rel="top" title="bake documentation" href="../index.html" />
33
+ <link rel="up" title="Syntax" href="syntax.html" />
34
+ <link rel="next" title="Variables in Project.meta" href="variable_substitutions.html" />
35
+ <link rel="prev" title="Syntax" href="syntax.html" />
36
+ <meta charset='utf-8'>
37
+ <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
38
+ <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
39
+ <meta name="apple-mobile-web-app-capable" content="yes">
40
+
41
+ </head>
42
+ <body role="document">
43
+
44
+ <div id="navbar" class="navbar navbar-default navbar-fixed-top">
45
+ <div class="container">
46
+ <div class="navbar-header">
47
+ <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
48
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
49
+ <span class="icon-bar"></span>
50
+ <span class="icon-bar"></span>
51
+ <span class="icon-bar"></span>
52
+ </button>
53
+ <a class="navbar-brand" href="../index.html"><img src="../_static/logo_tiny_48.png">
54
+ </a>
55
+ <span class="navbar-text navbar-version pull-left"><b></b></span>
56
+ </div>
57
+
58
+ <div class="collapse navbar-collapse nav-collapse">
59
+ <ul class="nav navbar-nav">
60
+
61
+
62
+ <li class="dropdown globaltoc-container">
63
+ <a role="button"
64
+ id="dLabelGlobalToc"
65
+ data-toggle="dropdown"
66
+ data-target="#"
67
+ href="../index.html">Section <b class="caret"></b></a>
68
+ <ul class="dropdown-menu globaltoc"
69
+ role="menu"
70
+ aria-labelledby="dLabelGlobalToc"><ul class="current">
71
+ <li class="toctree-l1"><a class="reference internal" href="../why_bake/why_bake.html">Why you should use bake</a></li>
72
+ <li class="toctree-l1"><a class="reference internal" href="../install/install_bake.html">Install bake</a></li>
73
+ <li class="toctree-l1"><a class="reference internal" href="../quickstart/quickstart.html">Quickstart</a></li>
74
+ <li class="toctree-l1"><a class="reference internal" href="../concepts/concepts.html">Concepts</a></li>
75
+ <li class="toctree-l1 current"><a class="reference internal" href="syntax.html">Syntax</a></li>
76
+ <li class="toctree-l1"><a class="reference internal" href="../commandline/commandline.html">Commandline</a></li>
77
+ <li class="toctree-l1"><a class="reference internal" href="../ide/ide_integrations.html">IDE Support</a></li>
78
+ <li class="toctree-l1"><a class="reference internal" href="../tips_and_tricks/tips_and_tricks.html">Additional features</a></li>
79
+ <li class="toctree-l1"><a class="reference internal" href="../performance/performance.html">Performance</a></li>
80
+ <li class="toctree-l1"><a class="reference internal" href="../known_issues.html">Known Issues</a></li>
81
+ <li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
82
+ <li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li>
83
+ </ul>
84
+ <ul>
85
+ <li class="toctree-l1"><a class="reference internal" href="../internal.html">Internal developing notes</a></li>
86
+ </ul>
87
+ </ul>
88
+ </li>
89
+
90
+ <li class="dropdown">
91
+ <a role="button"
92
+ id="dLabelLocalToc"
93
+ data-toggle="dropdown"
94
+ data-target="#"
95
+ href="#">SubSections <b class="caret"></b></a>
96
+ <ul class="dropdown-menu localtoc"
97
+ role="menu"
98
+ aria-labelledby="dLabelLocalToc"><ul>
99
+ <li><a class="reference internal" href="#">The Syntax of the Project.meta file</a><ul>
100
+ <li><a class="reference internal" href="#instructions-for-the-interactive-syntax-viewer">Instructions for the Interactive Syntax Viewer</a></li>
101
+ </ul>
102
+ </li>
103
+ </ul>
104
+ </ul>
105
+ </li>
106
+
107
+
108
+
109
+
110
+
111
+ <li>
112
+ <a href="syntax.html" title="Previous Chapter: Syntax"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">&laquo; Syntax</span>
113
+ </a>
114
+ </li>
115
+ <li>
116
+ <a href="variable_substitutions.html" title="Next Chapter: Variables in Project.meta"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Variables in ... &raquo;</span>
117
+ </a>
118
+ </li>
119
+
120
+
121
+
122
+
123
+
124
+ </ul>
125
+
126
+
127
+
128
+ <form class="navbar-form navbar-right" action="../search.html" method="get">
129
+ <div class="form-group">
130
+ <input type="text" name="q" class="form-control" placeholder="Search" />
131
+ </div>
132
+ <input type="hidden" name="check_keywords" value="yes" />
133
+ <input type="hidden" name="area" value="default" />
134
+ </form>
135
+
136
+ </div>
137
+ </div>
138
+ </div>
139
+
140
+ <div class="container">
141
+ <div class="row">
142
+ <div class="col-md-12">
143
+
144
+ <div class="section" id="the-syntax-of-the-project-meta-file">
145
+ <h1>The Syntax of the Project.meta file<a class="headerlink" href="#the-syntax-of-the-project-meta-file" title="Permalink to this headline">¶</a></h1>
146
+ <div class="section" id="instructions-for-the-interactive-syntax-viewer">
147
+ <h2>Instructions for the Interactive Syntax Viewer<a class="headerlink" href="#instructions-for-the-interactive-syntax-viewer" title="Permalink to this headline">¶</a></h2>
148
+ <ul class="simple">
149
+ <li>Move the mouse cursor over the blue elements to display more information.</li>
150
+ <li>Three config types exist: ExecutableConfig, LibraryConfig and CustomConfig. Move the mouse cursor over these elements to display the supported content.</li>
151
+ </ul>
152
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
153
+ "http://www.w3.org/TR/html4/strict.dtd">
154
+ <html>
155
+ <head></head>
156
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
157
+
158
+ <body >
159
+
160
+ <style type="text/css">
161
+
162
+ #dhtmltooltip{
163
+ position: absolute;
164
+ width: 150px;
165
+ border: 2px solid black;
166
+ padding: 2px;
167
+ background-color: lightyellow;
168
+ visibility: hidden;
169
+ z-index: 100;
170
+ }
171
+
172
+ </style>
173
+
174
+ <style type="text/css">
175
+ .hide {
176
+ display:none;
177
+ }
178
+ .show {
179
+ display:block
180
+ }
181
+ .showInline {
182
+ display:inline
183
+ }
184
+ .help {
185
+ color:blue
186
+ }
187
+ .showRadio {
188
+ font-weight:bold;color:blue;text-decoration:overline underline
189
+ }
190
+ .hideRadio {
191
+ color:#AAAAFF;
192
+ }
193
+ .mycomment {
194
+ color:green
195
+ }
196
+ </style>
197
+
198
+
199
+
200
+
201
+
202
+ <table border="1" style="font-family:monospace"; font-size:10><td>
203
+
204
+ <span class="help" onMouseover="showProject()" onMouseout="notip()">Project</span> <span class="help" onMouseover="showDefaultConfig()" onMouseout="notip()">default</span>: &#60;name&#62; {<br>
205
+ &nbsp; <br>
206
+
207
+ &nbsp; <span class="help" onMouseover="showDescription()" onMouseout="notip()">Description</span> &#60;text&#62;<br><br>
208
+
209
+ &nbsp; <span class="help" onMouseover="showVersion()" onMouseout="notip()">RequiredBakeVersion</span> minimum: &#60;major.minor.patch&#62;, maximum: &#60;major.minor.patch&#62;<br><br>
210
+
211
+ &nbsp; <span class="help" onMouseover="showResponsible()" onMouseout="notip()">Responsible</span> {<br>
212
+ &nbsp; &nbsp; <span class="help" onMouseover="showPerson()" onMouseout="notip()">Person</span> &#60;name&#62;,
213
+ <span class="help" onMouseover="showPersonEmail()" onMouseout="notip()">email</span>: &#60;adr&#62;<br>
214
+ &nbsp; }<br><br>
215
+
216
+ &nbsp; <span class="mycomment"># 0..n configs</span><br>
217
+ &nbsp; <span class="showRadio" onMouseover="showExecutableConfig()" onMouseout="notip()" id="executableConfig">ExecutableConfig</span> |
218
+ <span class="hideRadio" onMouseover="showLibraryConfig()" onMouseout="notip()" id="libraryConfig">LibraryConfig</span> |
219
+ <span class="hideRadio" onMouseover="showCustomConfig()" onMouseout="notip()" id="customConfig">CustomConfig</span> &#60;name&#62;,
220
+ <span class="help" onMouseover="showExtends()" onMouseout="notip()">extends</span>: &#60;parent(s)&#62;,
221
+ <span class="help" onMouseover="showPrivate()" onMouseout="notip()">private</span>: true|false {<br><br>
222
+
223
+ <span><span style="background-color:#EEEEEE;" class="show">
224
+ &nbsp; &nbsp; <span class="mycomment"># Valid for all config types</span><br><br>
225
+ &nbsp; &nbsp; <span class="help" onMouseover="showDescription()" onMouseout="notip()">Description</span> &#60;text&#62;<br>
226
+ &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()">inject</span>: front|back, <span class="help" onMouseover="showSystemInclude()" onMouseout="notip()">system</span>: true|false<br>
227
+ &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>
228
+ &nbsp; &nbsp; <span class="help" onMouseover="showDependency()" onMouseout="notip()">Dependency</span> &#60;project&#62;,
229
+ <span class="help" onMouseover="showDependencyConfig()" onMouseout="notip()">config</span>: &#60;name&#62;<br>
230
+ &nbsp; &nbsp; <span class="help" onMouseover="showExternalLibrary()" onMouseout="notip()">ExternalLibrary</span> &#60;lib&#62;,
231
+ <span class="help" onMouseover="showExternalLibrarySearch()" onMouseout="notip()">search</span>: true|false<br>
232
+ &nbsp; &nbsp; <span class="help" onMouseover="showUserLibrary()" onMouseout="notip()">UserLibrary</span> &#60;lib&#62;<br>
233
+ &nbsp; &nbsp; <span class="help" onMouseover="showExternalLibrarySearchPath()" onMouseout="notip()">ExternalLibrarySearchPath</span> &#60;path&#62;<br>
234
+ &nbsp; &nbsp; <span class="help" onMouseover="showPreSteps()" onMouseout="notip()">PreSteps</span> {<br>
235
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showMakefile()" onMouseout="notip()">Makefile</span> &#60;file&#62;,
236
+ <span class="help" onMouseover="showMakefileLib()" onMouseout="notip()">lib</span>: &#60;lib&#62;,
237
+ <span class="help" onMouseover="showMakefileTarget()" onMouseout="notip()">target</span>: &#60;target&#62;,
238
+ <span class="help" onMouseover="showMakefilePathTo()" onMouseout="notip()">pathTo</span>: &#60;paths&#62;,
239
+ <span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
240
+ <span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: &#60;name&#62;,
241
+ <span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
242
+ <span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: &#60;[array]&#62; {<br>
243
+ &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showMakefileFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
244
+ &nbsp; &nbsp; &nbsp; }<br>
245
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showCommandLine()" onMouseout="notip()">CommandLine</span> &#60;line&#62;,
246
+ <span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
247
+ <span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: &#60;name&#62;,
248
+ <span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
249
+ <span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: &#60;[array]&#62;<br>
250
+ &nbsp; &nbsp; }<br>
251
+ &nbsp; &nbsp; <span class="help" onMouseover="showPostSteps()" onMouseout="notip()">PostSteps</span> {<br>
252
+ &nbsp; &nbsp; &nbsp; <span class="mycomment"># Same as for PreSteps</span><br>
253
+ &nbsp; &nbsp; }<br>
254
+ &nbsp; &nbsp; <span class="help" onMouseover="showStartupSteps()" onMouseout="notip()">StartupSteps</span> {<br>
255
+ &nbsp; &nbsp; &nbsp; <span class="mycomment"># Same as for PreSteps</span><br>
256
+ &nbsp; &nbsp; }<br>
257
+ &nbsp; &nbsp; <span class="help" onMouseover="showExitSteps()" onMouseout="notip()">ExitSteps</span> {<br>
258
+ &nbsp; &nbsp; &nbsp; <span class="mycomment"># Same as for PreSteps</span><br>
259
+ &nbsp; &nbsp; }<br>
260
+ &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>
261
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultCompiler()" onMouseout="notip()">Compiler</span> ASM | CPP | C,
262
+ <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
263
+ &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
264
+ &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultDefine()" onMouseout="notip()">Define</span> &#60;define&#62;<br>
265
+ &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showInternalDefines()" onMouseout="notip()">InternalDefines</span> &#60;file&#62;<br>
266
+ &nbsp; &nbsp; &nbsp; }<br>
267
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultArchiver()" onMouseout="notip()">Archiver</span>
268
+ <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
269
+ &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
270
+ &nbsp; &nbsp; &nbsp; }<br>
271
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultLinker()" onMouseout="notip()">Linker</span>
272
+ <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
273
+ &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
274
+ &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLibPrefixFlags()" onMouseout="notip()">LibPrefixFlags</span> &#60;flags&#62;<br>
275
+ &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLibPostfixFlags()" onMouseout="notip()">LibPostfixFlags</span> &#60;flags&#62;<br>
276
+ &nbsp; &nbsp; &nbsp; }<br>
277
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showInternalIncludes()" onMouseout="notip()">InternalIncludes</span> &#60;file&#62;<br>
278
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDocu()" onMouseout="notip()">Docu</span> &#60;cmdLine&#62;<br>
279
+ &nbsp; &nbsp; }<br>
280
+
281
+
282
+ &nbsp; &nbsp; <span class="help" onMouseover="showToolchainProject()" onMouseout="notip()">Toolchain</span> <span class="help" onMouseover="showOutputDir()" onMouseout="notip()">outputDir</span>: &#60;dir&#62; {<br>
283
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showCompiler()" onMouseout="notip()">Compiler</span> ASM | CPP | C,
284
+ <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
285
+ &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>
286
+ &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefine()" onMouseout="notip()">Define</span> &#60;define&#62;<br>
287
+ &nbsp; &nbsp; &nbsp; }<br>
288
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showArchiver()" onMouseout="notip()">Archiver</span>
289
+ <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
290
+ &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>
291
+ &nbsp; &nbsp; &nbsp; }<br>
292
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLinker()" onMouseout="notip()">Linker</span>
293
+ <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
294
+ &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>
295
+ &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>
296
+ &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>
297
+ &nbsp; &nbsp; &nbsp; }<br>
298
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDocu()" onMouseout="notip()">Docu</span> &#60;cmdLine&#62;<br>
299
+ &nbsp; &nbsp; }<br>
300
+ &nbsp; &nbsp; <span class="help" onMouseover="showPrebuild()" onMouseout="notip()">Prebuild</span> {<br>
301
+ &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showExcept()" onMouseout="notip()">Except</span> &#60;project&#62;,
302
+ <span class="help" onMouseover="showExceptConfig()" onMouseout="notip()">config</span>: &#60;name&#62;<br>
303
+ &nbsp; &nbsp; }<br></span><br>
304
+
305
+ </span>
306
+
307
+ <span id="libExe_part"><span class="show" style="background-color:#EEEEEE;">
308
+ &nbsp; &nbsp; <span class="mycomment"># Valid for ExecutableConfig and LibraryConfig</span><br><br>
309
+ &nbsp; &nbsp; <span class="help" onMouseover="showFiles()" onMouseout="notip()">Files</span> &#60;pattern&#62; {<br>
310
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showFilesFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;, add: &#60;flags&#62;, remove: &#60;flags&#62;<br>
311
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showFilesDefine()" onMouseout="notip()">Define</span> &#60;define&#62;<br>
312
+ &nbsp; &nbsp; }<br>
313
+ &nbsp; &nbsp; <span class="help" onMouseover="showExcludeFiles()" onMouseout="notip()">ExcludeFiles</span> &#60;pattern&#62;<br>
314
+ &nbsp; &nbsp; <span class="help" onMouseover="showArtifactName()" onMouseout="notip()">ArtifactName</span> &#60;name&#62;<br>
315
+ </span><br></span>
316
+
317
+ <span id="exe_part"><span class="show" style="background-color:#EEEEEE;">
318
+ &nbsp; &nbsp; <span class="mycomment"># Valid for ExecutableConfig</span><br><br>
319
+ &nbsp; &nbsp; <span class="help" onMouseover="showLinkerScript()" onMouseout="notip()">LinkerScript</span> &#60;script&#62;<br>
320
+ &nbsp; &nbsp; <span class="help" onMouseover="showMapFile()" onMouseout="notip()">MapFile</span> &#60;name&#62;<br>
321
+ </span><br></span>
322
+
323
+ <span id="custom_part" class="hide"><span style="background-color:#EEEEEE;" class="show">
324
+ &nbsp; &nbsp; <span class="mycomment"># Valid for CustomConfig</span><br><br>
325
+ &nbsp; &nbsp; <span class="showRadio" id="makefile" onMouseover="showMakefileCustom()" onMouseout="notip()">Makefile</span> |
326
+ <span class="hideRadio" id="commandline" onMouseover="showCommandlineCustom()" onMouseout="notip()">CommandLine</span>
327
+ <span style="background-color:#DDDDDD;" id="makefile_part" class="showInline"> &#60;name&#62;,
328
+ <span class="help" onMouseover="showMakefileLib()" onMouseout="notip()">lib</span>: &#60;lib&#62;,
329
+ <span class="help" onMouseover="showMakefileTarget()" onMouseout="notip()">target</span>: &#60;target&#62;,
330
+ <span class="help" onMouseover="showMakefilePathTo()" onMouseout="notip()">pathTo</span>: &#60;paths&#62;,
331
+ <span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
332
+ <span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: &#60;name&#62;,
333
+ <span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
334
+ <span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: &#60;[array]&#62; {<br>
335
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showMakefileFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
336
+ &nbsp; &nbsp; }<br>
337
+ </span>
338
+ <span style="background-color:#DDDDDD;" id="commandline_part" class="hide">&#60;line&#62;,
339
+ <span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
340
+ <span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: &#60;name&#62;,
341
+ <span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
342
+ <span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: &#60;[array]&#62;
343
+ </span>
344
+ &nbsp; &nbsp; <br></span><br></span>
345
+ &nbsp; }<br>
346
+ }<br><br>
347
+ Adapt toolchain: &#60;name&#62;, os: &#60;name&#62;, mainProject: &#60;name&#62;, mainConfig: &#60;name&#62; {<br>
348
+ &nbsp; <span class="mycomment"># See Adapt documention for details.</span><br>
349
+ }<br>
350
+
351
+
352
+ <div id="dhtmltooltip"></div>
353
+
354
+ <script type="text/javascript">
355
+
356
+
357
+ function showProject() {
358
+ str = 'A bake project is very similiar to a project in Eclipse, Visual Studio, etc.<br>'+
359
+ 'The name of the project is the directory name of the Project.meta file.'
360
+ ddrivetip("Project", "Yes", "1", "-",str)
361
+ }
362
+
363
+ function showDefaultConfig() {
364
+ str = 'Default configuration which is used if not explicitly specified on command line or Dependency definition.<br><br>'+
365
+ 'Examples:<br>'+
366
+ '# Project.meta:<br>'+
367
+ 'Dependency canDriver # uses default config of canDriver project<br>'+
368
+ '# Command line:<br>'+
369
+ 'bake -m folder/dir/projABC # builds default config of project projABC'
370
+ ddrivetip("default", "No", "-", "-",str)
371
+ }
372
+
373
+ function showResponsible() {
374
+ str = "Specify all responsible persons of the project."
375
+ ddrivetip("Responsible", "No,", "0..1", "-",str)
376
+ }
377
+
378
+ function showDescription() {
379
+ str = 'Description of the project or config.'
380
+ ddrivetip("Description", "No", "0..1", "-",str)
381
+ }
382
+
383
+ function showVersion() {
384
+ str = 'If specified, the build will be aborted if bake version is lower than mininum or greater than maximum.<br>'+
385
+ 'It is possible to define only minimum, only maximim or both version thresholds.<br>'+
386
+ 'Minor and patch version numbers are optional.'
387
+ ddrivetip("RequiredBakeVersion", "No", "0..1", "-",str)
388
+ }
389
+
390
+ function showPerson() {
391
+ str = 'Person who is responsible for the project.'
392
+ ddrivetip("Person", "No", "0..1", "-",str)
393
+ }
394
+
395
+ function showPersonEmail() {
396
+ str = 'Use always double quotes (") for the email address.'
397
+ ddrivetip("email", "No", "-", "-",str)
398
+ }
399
+
400
+ function showExecutableConfig() {
401
+ document.getElementById('libExe_part').className="show"
402
+ document.getElementById('exe_part').className="show"
403
+ document.getElementById('custom_part').className="hide"
404
+ document.getElementById('executableConfig').className="showRadio"
405
+ document.getElementById('libraryConfig').className="hideRadio"
406
+ document.getElementById('customConfig').className="hideRadio"
407
+
408
+ str = 'This is usually the main config of an application.'
409
+ ddrivetip("ExecutableConfig", "No","0..n","-",str)
410
+ }
411
+
412
+ function showLibraryConfig() {
413
+ document.getElementById('libExe_part').className="show"
414
+ document.getElementById('exe_part').className="hide"
415
+ document.getElementById('custom_part').className="hide"
416
+ document.getElementById('executableConfig').className="hideRadio"
417
+ document.getElementById('libraryConfig').className="showRadio"
418
+ document.getElementById('customConfig').className="hideRadio"
419
+
420
+ str = 'This config is used for a source library. The library will be linked automatically to the executable.'
421
+ ddrivetip("LibraryConfig", "No","0..n","-",str)
422
+ }
423
+
424
+ function showCustomConfig() {
425
+ document.getElementById('libExe_part').className="hide"
426
+ document.getElementById('exe_part').className="hide"
427
+ document.getElementById('custom_part').className="show"
428
+ document.getElementById('executableConfig').className="hideRadio"
429
+ document.getElementById('libraryConfig').className="hideRadio"
430
+ document.getElementById('customConfig').className="showRadio"
431
+
432
+ str = 'This config is used for special projects, e.g. for Makefile projects.<br>'+
433
+ 'It is valid to leave a CustomConfig completely empty - nothing will be done in that case.'
434
+ ddrivetip("CustomConfig", "No","0..n","-",str)
435
+ }
436
+
437
+ function showExternalLibrary() {
438
+ str = 'Every config can specify libs which have to be linked to the executable.<br>'+
439
+ 'It\'s possible to add a path, e.g.:<br>'+
440
+ '<i> &nbsp; &nbsp; ExternalLibrary "xy/z/ab"</i><br>'+
441
+ 'In this case the lib "ab" is added to the linker command line as well as the lib search path "xy/z".<br>'+
442
+ 'Note, that the linker will look for "libab.a".'
443
+ ddrivetip("ExternalLibrary", "No","0..n","-",str)
444
+ }
445
+
446
+ function showExternalLibrarySearch() {
447
+ str = 'If the attribute "search: false" is specified, the lib will not be searched but linked with the full name, e.g.<br>'+
448
+ '<i> &nbsp; &nbsp; ExternalLibrary "xy/z/libpq.a", search: false</i><br>'+
449
+ 'will link "xy/z/libpq.a" to the executable.<br>'+
450
+ 'It is also possible to specify an object file when using "search: false".'
451
+ ddrivetip("search", "No","-","true",str)
452
+ }
453
+
454
+ function showUserLibrary() {
455
+ str = 'A user library will be linked <i>before</i> any other libraries or objects to the executable.<br>'+
456
+ 'It is also possible to specify an object file.<br>'+
457
+ 'The library will be searched like an ExternalLibrary, but with the full name, e.g.<br>'+
458
+ '<i> &nbsp; &nbsp; UserLibrary "xy/z/libUser.a"</i><br>'+
459
+ '<i> &nbsp; &nbsp; UserLibrary "xy/z/something.o"</i><br>'+
460
+ 'will link "libUser.a" and "something.o" before regular objects and libraries.<br>'+
461
+ '"xy/z" will be added as an ExternalLibrarySearchPath.'
462
+ ddrivetip("UserLibrary", "No","0..n","-",str)
463
+ }
464
+
465
+ function showExternalLibrarySearchPath() {
466
+ str = 'The linker looks for libraries in search paths.<br>'+
467
+ 'Search paths can be defined implicitly by ExternalLibrary/UserLibrary or explicitly by this tag.'
468
+ ddrivetip("ExternalLibrarySearchPath", "No","0..n","-",str)
469
+ }
470
+
471
+ function showPreSteps() {
472
+ str = 'PreSteps are executed before compiling files of the project.<br>'+
473
+ 'The number of steps are not limited.<br>'+
474
+ 'If a step fails, all further steps of the project will be skipped.'
475
+ ddrivetip("PreSteps", "No","0..1","-",str)
476
+ }
477
+
478
+ function showPostSteps() {
479
+ str = 'PostSteps are executed after the main task of the project, e.g. linking an executable.<br>'+
480
+ 'The number of steps are not limited.<br>'+
481
+ 'If a step fails, all further steps of the project will be skipped.'
482
+ ddrivetip("PostSteps", "No","0..1","-",str)
483
+ }
484
+
485
+ function showStartupSteps() {
486
+ str = 'StartupSteps of ALL projects are executed before building the first project.<br>'+
487
+ 'The number of steps are not limited.'
488
+ ddrivetip("StartupSteps", "No","0..1","-",str)
489
+ }
490
+
491
+ function showExitSteps() {
492
+ str = 'ExitSteps of ALL projects are executed after building complete workspace even if the build has failed.<br>'+
493
+ 'The number of steps are not limited.'
494
+ ddrivetip("ExitSteps", "No","0..1","-",str)
495
+ }
496
+
497
+ function showStepDefault() {
498
+ str = 'Specifies if a step will be executed by default.<br>'+
499
+ '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.'
500
+ ddrivetip("default", "No","-","on",str)
501
+ }
502
+
503
+ function showEcho() {
504
+ str = 'On means the command line is shown in output, off means the command line is not shown.'
505
+ ddrivetip("echo", "No","-","on",str)
506
+ }
507
+
508
+ function showStepFilter() {
509
+ str = 'A step can be switched on or off explicitly regardless of the "default" attribute with the command line options<br>'+
510
+ '<i> &nbsp; &nbsp; --do &#60;filter name&#62;</i><br>'+
511
+ '<i> &nbsp; &nbsp; --omit &#60;filter name&#62;</i><br>'
512
+ ddrivetip("filter", "No","-","-",str)
513
+ }
514
+
515
+ function showValidExitCodes() {
516
+ str = 'Define it as an array, e.g.:<br>'+
517
+ '..., validExitCodes: [200,201,202]'
518
+ ddrivetip("validExitCodes", "No","-","[0]",str)
519
+ }
520
+
521
+
522
+ function getMakefileDesc() {
523
+ return 'Makefile to be started, e.g.:<br>'+
524
+ '<i> &nbsp; &nbsp; Makefile "subDir/makefile"</i><br>'
525
+ }
526
+
527
+ function showMakefile() {
528
+ ddrivetip("Makefile", "No","0..n","-",getMakefileDesc())
529
+ }
530
+
531
+ function showMakefileLib() {
532
+ str = 'If the result of the makefile is a library which shall be linked to the executable, name it here.'
533
+ ddrivetip("lib", "No","-","-",str)
534
+ }
535
+
536
+ function showMakefileTarget() {
537
+ str = 'The target of the makefile.'
538
+ ddrivetip("target", "No","-","all",str)
539
+ }
540
+
541
+ function showMakefilePathTo() {
542
+ str = 'Comma separated list, e.g. "common, abc, xy".<br>'+
543
+ 'The makefile can use variables like $(PATH_TO_common). This is very useful if paths to other projects are needed in the makefile.<br>'+
544
+ 'Remember that more than one workspace root can exist and a hardcoded "../common" is not reliable in that case.<br>'+
545
+ '$(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. '+
546
+ 'So if the current project and the common project have the same parent folder, the string will be empty.<br>'+
547
+ 'Example:<br>'+
548
+ 'makefile: c:\\workspaceroot\\yourProject\\makefile<br>'+
549
+ 'usage in makefile: gcc -I$../../$(PATH_TO_common)common/include ...<br>'+
550
+ 'It\'s done like this due to compatibility reasons.'
551
+ ddrivetip("pathTo", "No","-","-",str)
552
+ }
553
+
554
+ function showMakefileFlags() {
555
+ ddrivetip("Flags", "No","0..n","-j","Additional makefile flags.")
556
+ }
557
+
558
+ function getCommandLineDesc() {
559
+ return 'A command to execute, e.g.:<br>'+
560
+ '<i> &nbsp; &nbsp; CommandLine "ddump -Ruv -y 0xFFFFF -oRelease/application.bin Release/application.elf"</i><br>'+
561
+ '<i> &nbsp; &nbsp; CommandLine "echo Hello world!"</i><br>'
562
+ }
563
+
564
+ function showCommandLine() {
565
+ ddrivetip("CommandLine", "No","0..n","-",getCommandLineDesc())
566
+ }
567
+
568
+
569
+ function showEclipseOrder() {
570
+ str = 'If not specified or false, all files are compiled in order of appearance in Project.meta. '+
571
+ 'If the filename is a glob pattern, files are sorted alphabetically.<p>'+
572
+ 'If true, files are compiled in alphabetical order within a folder, '+
573
+ 'but the folders are sorted in reverse alphabetical order.<br>'+
574
+ 'This is only used for backward compatibility.'
575
+ ddrivetip("eclipseOrder", "No","-","false",str)
576
+ }
577
+
578
+ function showOutputDir() {
579
+ str = 'Specifies the output folder.<p>'+
580
+ 'Use always relative paths, not absolute paths due to portability.<p>'+
581
+ 'Use always "/" and not "\\".<p>'+
582
+ 'If the first part of the path is equal to a project name, it is used as a shortcut to this project root. <br>'+
583
+ 'To avoid this magic, use something like this: <br>'+
584
+ '<i> &nbsp; &nbsp; IncludeDir "./abc/include"</i><br>'
585
+ ddrivetip("outputdir", "No","0..1","-",str)
586
+ }
587
+
588
+ function showExtends() {
589
+ ddrivetip("extends", "No","0..1","-","Inherit settings from parent config(s).<br>For more information see docu page 'Derive configs'.")
590
+ }
591
+
592
+ function showPrivate() {
593
+ ddrivetip("private", "No","0..1","false","If true, the config cannot be referenced directly outside of this project.")
594
+ }
595
+
596
+ function showFiles() {
597
+ str = 'Specifies the files to build.<br>'+
598
+ 'It\'s valid to specify a single file, e.g.<br>'+
599
+ '<i> &nbsp; &nbsp; Files "src/abc/def.asm"</i><br>'+
600
+ 'or a pattern, e.g.<br>'+
601
+ '<i> &nbsp; &nbsp; Files "*/**/.cpp"</i><br>'+
602
+ 'which builds all files with the ending ".cpp" in all subdirectories.<br>'+
603
+ 'Note: ".." is not allowed in the file path. All files must be located within the project.<br>'+
604
+ 'Note: if patterns are used, Flags and Define are ignored.'
605
+ ddrivetip("Files", "No","0..n","-",str)
606
+ }
607
+
608
+ function showExcludeFiles() {
609
+ str = 'Used to ignore files or directories.<br>'+
610
+ 'ExcludeFiles has higher priority than Files.'
611
+ ddrivetip("ExcludeFiles", "No","0..n","-",str)
612
+ }
613
+
614
+ function showIncludeDir() {
615
+ str = 'Specifies the include directories for the assembler, C and C++ compiler.<p>'+
616
+ 'Use always relative paths, not absolute paths due to portability.<p>'+
617
+ 'Use always "/" and not "\\".<p>'+
618
+ 'It is possible to work with different workspace roots. Do not include something like this: <br>'+
619
+ '<i> &nbsp; &nbsp; IncludeDir "../abc/include"</i><br>'+
620
+ 'but<br>'+
621
+ '<i> &nbsp; &nbsp; IncludeDir "abc/include"</i><br>'+
622
+ '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>'+
623
+ 'To include directories of the current project, the project name can be omitted like this:<br>'+
624
+ '<i> &nbsp; &nbsp; IncludeDir "include"</i><br>'+
625
+ '<i> &nbsp; &nbsp; IncludeDir "generated/include"</i><br>'
626
+ ddrivetip("IncludeDir", "No","0..n","-",str)
627
+ }
628
+
629
+ function showInherit() {
630
+ str = 'Inherits the include to all projects, which depend on this project.'
631
+ ddrivetip("inherit", "No","0..1","false",str)
632
+ }
633
+
634
+ function showInfix() {
635
+ str = 'Injects the include path to all childs, either at the front (e.g. for mocking code) or at the end.'
636
+ ddrivetip("inject", "No","0..1","-",str)
637
+ }
638
+
639
+ function showSystemInclude() {
640
+ str = 'If supported from the compiler, the system include flag will be used instead of the normal include flag.<br>'+
641
+ 'Example: in gcc "-isystem" instead of "-I" is used.<br>'+
642
+ 'Note: system include definition overrules normal include definition if both are defined.'
643
+ ddrivetip("system", "false","0..1","-",str)
644
+ }
645
+
646
+ function showSet() {
647
+ str = 'Sets a variable for this and all dependent projects.<br>'+
648
+ 'The variable can be a simple value or the result of a cmd, e.g. \"cat myVar.txt\".'
649
+ ddrivetip("Set", "No","0..n","-",str)
650
+ }
651
+
652
+ function showEnv() {
653
+ 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.'
654
+ ddrivetip("env", "No","-","false",str)
655
+ }
656
+
657
+ function showDependency() {
658
+ str = 'Specifies another project to be built before this project.<br>'+
659
+ 'The archive, linker libs and search paths are imported from this project to the this project automatically.<br>'+
660
+ 'If you omit the project, the current project will be used.<br>'+
661
+ 'If you omit the config name, the default config will be used.<br>'+
662
+ '<b>Examples:</b><br>'+
663
+ '&nbsp;&nbsp; <i>Dependency gtest, config: lib<br>'+
664
+ '&nbsp;&nbsp; Dependency "my/folder/proj"</i>'
665
+ ddrivetip("Dependency", "No","0..n","-",str)
666
+ }
667
+
668
+ function showDependencyConfig() {
669
+ str = 'Config name of the project to build.'
670
+ ddrivetip("config", "Yes","-","-",str)
671
+ }
672
+
673
+ function showLinkerScript() {
674
+ str = 'Specifies the name including path of the linker script.'
675
+ ddrivetip("Dependency", "No","0..1","-",str)
676
+ }
677
+
678
+ function showMapFile() {
679
+ str = 'A mapfile will be written by the linker.'
680
+ ddrivetip("MapFile", "No","0..1","If name attribute is omitted: $(OutputDir)/$(ArtifactNameBase).map",str)
681
+ }
682
+
683
+ function showArtifactName() {
684
+ str = 'The artifact name inclusive file ending.<br>'+
685
+ 'The artifact will be placed in the output directory.'
686
+ ddrivetip("ArtifactName","No","0..1","Executable: project name + toolchain dependent file ending. Library: 'lib' + project name + '.a'",str)
687
+ }
688
+
689
+ function showMakefileCustom() {
690
+ document.getElementById('makefile_part').className="showInline"
691
+ document.getElementById('commandline_part').className="hide"
692
+ document.getElementById('makefile').className="showRadio"
693
+ document.getElementById('commandline').className="hideRadio"
694
+ ddrivetip("Makefile", "No","0..1 - Either Makefile or CommandLine","-",getMakefileDesc())
695
+ }
696
+
697
+ function showCommandlineCustom() {
698
+ document.getElementById('makefile_part').className="hide"
699
+ document.getElementById('commandline_part').className="showInline"
700
+ document.getElementById('makefile').className="hideRadio"
701
+ document.getElementById('commandline').className="showRadio"
702
+ ddrivetip("CommandLine", "No","0..1 - Either Makefile or CommandLine","-",getCommandLineDesc())
703
+ }
704
+
705
+ function flagExample() {
706
+ return "<br>For removing flags use regular expressions which can be interpreted by ruby.<br>"+
707
+ "Regex options for start and stop string are automatically added in order to avoid substring matches.<br><br>"+
708
+ "Flag strings are always splitted at spaces and computed individually.<br><br>"+
709
+ "<b>Examples:</b><br>"+
710
+ "&nbsp;&nbsp; <i>Flags \"-x -y\"</i> overwrites the inherited flags<br><br>"+
711
+ "&nbsp;&nbsp; <i>Flags add: \"-x -y\"</i> adds -x and -y if not exist<br><br>"+
712
+ "&nbsp;&nbsp; <i>Flags remove: \"-x -y\"</i> removes -x and -y if exist<br><br>"+
713
+ "&nbsp;&nbsp; It is possible to combine the attributes like this:<br>"+
714
+ "&nbsp;&nbsp; <i>Flags remove: \"-x\", add: \"-y\"</i><br><br>"+
715
+ "&nbsp;&nbsp; To remove -g followed by any string, e.g. -g3, the command is:<br>"+
716
+ "&nbsp;&nbsp; <i>Flags remove: \"-g.*\"</i><br>"+
717
+ "&nbsp;&nbsp; An inherited flag string \"-abc -g3 -xy\" will end up in \"-abc -xy\"."
718
+ }
719
+
720
+ function showPrebuild() {
721
+ str = 'If defined, all configs of the workspace will be skipped per default. Must be actived by the commandline option "--prebuild"'
722
+ ddrivetip("Prebuild", "No","0..1","No project/config is skipped",str)
723
+ }
724
+
725
+ function showExcept() {
726
+ str = 'Defines a project which shall not be skipped. If project name is omitted, the current project is used.'
727
+ ddrivetip("Except", "No","0..n","Every project is skipped",str)
728
+ }
729
+
730
+ function showExceptConfig() {
731
+ str = 'Defines a config which shall not be skipped. If omitted, all configs of the apprpriate project are not skipped.'
732
+ ddrivetip("Toolchain", "No","0..1","Every config is skipped",str)
733
+ }
734
+
735
+
736
+ function showToolchainProject() {
737
+ str = 'Toolchain adaptions for a project.'
738
+ ddrivetip("Toolchain", "No","0..1","The DefaultToolchain settings from the main project",str)
739
+ }
740
+
741
+ function showDefaultToolchain() {
742
+ str = 'Settings which are valid for all projects and files unless they will be overwritten.<br>'+
743
+ 'The attribute "basedOn" specifies the basic toolchain configuration provided by bake, e.g. "GCC", "Diab", etc.'
744
+ ddrivetip("DefaultToolchain", "In main project","0..1","-",str)
745
+ }
746
+
747
+ function showFilesFlags() {
748
+ ddrivetip("Flags", "No","0..n","Flags from project","Flags from the project can be overwritten, extended or (partly) removed.<br>"+flagExample())
749
+ }
750
+
751
+ function showFilesDefine() {
752
+ ddrivetip("Define", "No","0..n","-","Defines which are valid only for a specific file.")
753
+ }
754
+
755
+ function showFlags() {
756
+ ddrivetip("Flags", "No","0..n","Flags from DefaultToolchain","Flags from the DefaultToolchain can be overwritten, extended or (partly) removed.<br>"+flagExample())
757
+ }
758
+
759
+ function showDefine() {
760
+ ddrivetip("Define", "No","0..n","-","Defines valid for all files in the project.")
761
+ }
762
+
763
+ function showLibPrefixFlags() {
764
+ ddrivetip("LibPrefixFlags", "No","0..n","-","Linker libs can be prefixed if needed, e.g. with \"-Wl,--whole-archive\".")
765
+ }
766
+
767
+ function showLibPostfixFlags() {
768
+ ddrivetip("LibPostfixFlags", "No","0..n","-","Linker libs can be postfixed if needed, e.g. with \"-Wl,--no-whole-archive\".")
769
+ }
770
+
771
+ function showCompiler() {
772
+ ddrivetip("Compiler", "No","0..3 (for each compiler type: ASM, CPP, C)","-","Flags and defines can be specified independently for each compiler type.")
773
+ }
774
+
775
+ function showArchiver() {
776
+ ddrivetip("Archiver", "No","0..1","-","Settings for the archiver.")
777
+ }
778
+
779
+ function showLinker() {
780
+ ddrivetip("Linker", "No","0..1","-","Makes sense only for ExecutableConfigs.")
781
+ }
782
+
783
+ function showDocu() {
784
+ ddrivetip("Docu", "No","0..1","-","Command to build the documentation. e.g.:<br>doxygen main.cfg")
785
+ }
786
+
787
+ function showDefaultFlags() {
788
+ ddrivetip("Flags", "No","0..n","-","Default flags.")
789
+ }
790
+
791
+ function showDefaultDefine() {
792
+ ddrivetip("Define", "No","0..n","-","Defines which are valid for all files.")
793
+ }
794
+
795
+ function showInternalDefines() {
796
+ 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.")
797
+ }
798
+
799
+ function showInternalIncludes() {
800
+ 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.")
801
+ }
802
+
803
+ function showDefaultCompiler() {
804
+ ddrivetip("Compiler", "No","0..3 (for each compiler type: ASM, CPP, C)","-","Default compiler settings.")
805
+ }
806
+
807
+ function showDefaultArchiver() {
808
+ ddrivetip("Archiver", "No","0..1","-","Default settings for the archiver.")
809
+ }
810
+
811
+ function showDefaultLinker() {
812
+ ddrivetip("Linker", "No","0..1","-","Default settings for the linker.")
813
+ }
814
+
815
+ function showCommand() {
816
+ ddrivetip("command", "No","-","Depending on toolchain, e.g. \"gcc\"","Change command, e.g. \"$(PATH_TO_EXE)/gcc_speciale.exe\"")
817
+ }
818
+
819
+
820
+
821
+ var offsetxpoint=20 //Customize x offset of tooltip
822
+ var offsetypoint=20 //Customize y offset of tooltip
823
+ var ie=document.all
824
+ var ns6=document.getElementById && !document.all
825
+ var enabletip=false
826
+ if (ie||ns6)
827
+ var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""
828
+
829
+ function ietruebody(){
830
+ return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
831
+ }
832
+
833
+ function ddrivetip(item, manda, quan, def, desc){
834
+ if (ns6||ie){
835
+
836
+ var abc=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth
837
+
838
+ tipobj.style.width=(abc/2-offsetxpoint*2).toString()+"px"
839
+ tipobj.style.backgroundColor="#DDFFDD"
840
+ 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
841
+ enabletip=true
842
+ return false
843
+ }
844
+ }
845
+
846
+ function positiontip(e){
847
+ if (enabletip){
848
+ var curX=(ns6)?e.offsetX : event.clientX+ietruebody().scrollLeft;
849
+ var curY=(ns6)?e.pageY-80 : event.clientY+ietruebody().scrollTop;
850
+ //Find out how close the mouse is to the corner of the window
851
+ var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint
852
+ var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint*2 : window.innerHeight-e.clientY-offsetypoint
853
+ var bottom=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight
854
+
855
+ var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : offsetxpoint
856
+
857
+ //if the horizontal distance isn't enough to accomodate the width of the context menu
858
+ if (rightedge<tipobj.offsetWidth+offsetxpoint/2)
859
+ //move the horizontal position of the menu to the left by it's width
860
+ tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth-offsetxpoint+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth-offsetxpoint+"px"
861
+ else if (curX<leftedge)
862
+ tipobj.style.left="5px"
863
+ else
864
+ //position the horizontal position of the menu where the mouse is positioned
865
+ tipobj.style.left=curX+offsetxpoint+"px"
866
+
867
+ //same concept with the vertical position
868
+ if (bottomedge<tipobj.offsetHeight)
869
+ tipobj.style.top=ie? ietruebody().scrollTop+bottom-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+bottom-tipobj.offsetHeight-offsetypoint+"px"
870
+ else
871
+ tipobj.style.top=curY+offsetypoint+"px"
872
+ tipobj.style.visibility="visible"
873
+ }
874
+ }
875
+
876
+
877
+ function notip(){
878
+ if (ns6||ie){
879
+ enabletip=false
880
+ tipobj.style.visibility="hidden"
881
+ tipobj.style.left="-1000px"
882
+ tipobj.style.backgroundColor=''
883
+ tipobj.style.width=''
884
+ }
885
+ }
886
+
887
+ document.onmousemove=positiontip
888
+
889
+ </script>
890
+
891
+ </td></table>
892
+
893
+ </body>
894
+ </html>
895
+ <div class="admonition note">
896
+ <p class="first admonition-title">Note</p>
897
+ <p>Specify the paths always relative to the current project root, but keep the variable substitution in Project.meta in mind.</p>
898
+ <ul class="last simple">
899
+ <li>Use double quotes (&#8221;) if the strings have spaces or slashes.</li>
900
+ <li>Use hash marks (#) for comments.</li>
901
+ </ul>
902
+ </div>
903
+ </div>
904
+ </div>
905
+
906
+
907
+ </div>
908
+
909
+ </div>
910
+ </div>
911
+ <footer class="footer">
912
+ <div class="container">
913
+ <p class="pull-right">
914
+ <a href="#">Back to top</a>
915
+
916
+ </p>
917
+ <p>
918
+ &copy; Copyright 2016, E.S.R.Labs AG.<br/>
919
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
920
+ </p>
921
+ </div>
922
+ </footer>
923
+ </body>
924
924
  </html>