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.
- checksums.yaml +4 -4
- data/documentation/_build/html/_sources/changelog.txt +3 -0
- data/documentation/_build/html/_sources/index.txt +1 -1
- data/documentation/_build/html/_static/logo_tiny_48.png +0 -0
- data/documentation/_build/html/changelog.html +1154 -1149
- data/documentation/_build/html/commandline/commandline.html +285 -285
- data/documentation/_build/html/concepts/build_hierarchy.html +204 -204
- data/documentation/_build/html/concepts/concepts.html +196 -196
- data/documentation/_build/html/concepts/inject.html +216 -216
- data/documentation/_build/html/concepts/link_order.html +245 -245
- data/documentation/_build/html/concepts/prebuild.html +205 -205
- data/documentation/_build/html/concepts/the_main_project.html +260 -260
- data/documentation/_build/html/concepts/the_project_meta_file.html +288 -288
- data/documentation/_build/html/genindex.html +152 -152
- data/documentation/_build/html/ide/eclipse/eclipse.html +186 -186
- data/documentation/_build/html/ide/eclipse/how_to_convert_existing_cdt_workspace.html +208 -208
- data/documentation/_build/html/ide/eclipse/how_to_create_a_new_project_in_eclipse.html +191 -191
- data/documentation/_build/html/ide/eclipse/how_to_create_a_workspace_in_eclipse.html +198 -198
- data/documentation/_build/html/ide/eclipse/how_to_debug_in_eclipse.html +198 -198
- data/documentation/_build/html/ide/eclipse/how_to_install_eclipse_plugin.html +196 -196
- data/documentation/_build/html/ide/eclipse/how_to_use_bake_in_eclipse.html +256 -256
- data/documentation/_build/html/ide/ide_integrations.html +185 -185
- data/documentation/_build/html/ide/vs/how_to_create_vs_projects.html +171 -171
- data/documentation/_build/html/ide/vs/how_to_debug_in_vs.html +185 -185
- data/documentation/_build/html/ide/vs/how_to_used_bake_in_vs.html +190 -190
- data/documentation/_build/html/ide/vs/vs.html +170 -170
- data/documentation/_build/html/ide/vs/vs_install.html +202 -202
- data/documentation/_build/html/index.html +246 -246
- data/documentation/_build/html/install/install_bake.html +279 -279
- data/documentation/_build/html/internal.html +217 -217
- data/documentation/_build/html/known_issues.html +173 -173
- data/documentation/_build/html/license.html +236 -236
- data/documentation/_build/html/performance/performance.html +373 -373
- data/documentation/_build/html/quickstart/quickstart.html +236 -236
- data/documentation/_build/html/search.html +174 -174
- data/documentation/_build/html/searchindex.js +1 -1
- data/documentation/_build/html/syntax/adapt_configs.html +370 -370
- data/documentation/_build/html/syntax/auto_adjustment.html +189 -189
- data/documentation/_build/html/syntax/derive_configs.html +247 -247
- data/documentation/_build/html/syntax/project_meta_syntax.html +923 -923
- data/documentation/_build/html/syntax/syntax.html +196 -196
- data/documentation/_build/html/syntax/variable_substitutions.html +365 -365
- data/documentation/_build/html/tips_and_tricks/bakeclean.html +169 -169
- data/documentation/_build/html/tips_and_tricks/dot.html +186 -186
- data/documentation/_build/html/tips_and_tricks/how_to_use_bake_with_cygwin.html +214 -214
- data/documentation/_build/html/tips_and_tricks/qac.html +297 -297
- data/documentation/_build/html/tips_and_tricks/the_bakery.html +405 -405
- data/documentation/_build/html/tips_and_tricks/the_clang.html +201 -201
- data/documentation/_build/html/tips_and_tricks/tips_and_tricks.html +198 -198
- data/documentation/_build/html/why_bake/why_bake.html +241 -241
- data/lib/bake/config/checks.rb +76 -68
- data/lib/bake/model/metamodel.rb +6 -0
- data/lib/common/version.rb +1 -1
- metadata +3 -5
- data/documentation/_build/html/_sources/tips_and_tricks/static_code_analysis.txt +0 -122
- data/documentation/_build/html/_static/logo_conformant_48.png +0 -0
- 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 — 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/
|
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">« 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 ... »</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>: <name> {<br>
|
205
|
-
<br>
|
206
|
-
|
207
|
-
<span class="help" onMouseover="showDescription()" onMouseout="notip()">Description</span> <text><br><br>
|
208
|
-
|
209
|
-
<span class="help" onMouseover="showVersion()" onMouseout="notip()">RequiredBakeVersion</span> minimum: <major.minor.patch>, maximum: <major.minor.patch><br><br>
|
210
|
-
|
211
|
-
<span class="help" onMouseover="showResponsible()" onMouseout="notip()">Responsible</span> {<br>
|
212
|
-
<span class="help" onMouseover="showPerson()" onMouseout="notip()">Person</span> <name>,
|
213
|
-
<span class="help" onMouseover="showPersonEmail()" onMouseout="notip()">email</span>: <adr><br>
|
214
|
-
}<br><br>
|
215
|
-
|
216
|
-
<span class="mycomment"># 0..n configs</span><br>
|
217
|
-
<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> <name>,
|
220
|
-
<span class="help" onMouseover="showExtends()" onMouseout="notip()">extends</span>: <parent(s)>,
|
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
|
-
<span class="mycomment"># Valid for all config types</span><br><br>
|
225
|
-
<span class="help" onMouseover="showDescription()" onMouseout="notip()">Description</span> <text><br>
|
226
|
-
<span class="help" onMouseover="showIncludeDir()" onMouseout="notip()">IncludeDir</span> <dir>, <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
|
-
<span class="help" onMouseover="showSet()" onMouseout="notip()">Set</span> <variable>, value: <value> | cmd: <line>, <span class="help" onMouseover="showEnv()" onMouseout="notip()">env</span>: true|false<br>
|
228
|
-
<span class="help" onMouseover="showDependency()" onMouseout="notip()">Dependency</span> <project>,
|
229
|
-
<span class="help" onMouseover="showDependencyConfig()" onMouseout="notip()">config</span>: <name><br>
|
230
|
-
<span class="help" onMouseover="showExternalLibrary()" onMouseout="notip()">ExternalLibrary</span> <lib>,
|
231
|
-
<span class="help" onMouseover="showExternalLibrarySearch()" onMouseout="notip()">search</span>: true|false<br>
|
232
|
-
<span class="help" onMouseover="showUserLibrary()" onMouseout="notip()">UserLibrary</span> <lib><br>
|
233
|
-
<span class="help" onMouseover="showExternalLibrarySearchPath()" onMouseout="notip()">ExternalLibrarySearchPath</span> <path><br>
|
234
|
-
<span class="help" onMouseover="showPreSteps()" onMouseout="notip()">PreSteps</span> {<br>
|
235
|
-
<span class="help" onMouseover="showMakefile()" onMouseout="notip()">Makefile</span> <file>,
|
236
|
-
<span class="help" onMouseover="showMakefileLib()" onMouseout="notip()">lib</span>: <lib>,
|
237
|
-
<span class="help" onMouseover="showMakefileTarget()" onMouseout="notip()">target</span>: <target>,
|
238
|
-
<span class="help" onMouseover="showMakefilePathTo()" onMouseout="notip()">pathTo</span>: <paths>,
|
239
|
-
<span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
|
240
|
-
<span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: <name>,
|
241
|
-
<span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
|
242
|
-
<span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: <[array]> {<br>
|
243
|
-
<span class="help" onMouseover="showMakefileFlags()" onMouseout="notip()">Flags</span> <flags><br>
|
244
|
-
}<br>
|
245
|
-
<span class="help" onMouseover="showCommandLine()" onMouseout="notip()">CommandLine</span> <line>,
|
246
|
-
<span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
|
247
|
-
<span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: <name>,
|
248
|
-
<span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
|
249
|
-
<span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: <[array]><br>
|
250
|
-
}<br>
|
251
|
-
<span class="help" onMouseover="showPostSteps()" onMouseout="notip()">PostSteps</span> {<br>
|
252
|
-
<span class="mycomment"># Same as for PreSteps</span><br>
|
253
|
-
}<br>
|
254
|
-
<span class="help" onMouseover="showStartupSteps()" onMouseout="notip()">StartupSteps</span> {<br>
|
255
|
-
<span class="mycomment"># Same as for PreSteps</span><br>
|
256
|
-
}<br>
|
257
|
-
<span class="help" onMouseover="showExitSteps()" onMouseout="notip()">ExitSteps</span> {<br>
|
258
|
-
<span class="mycomment"># Same as for PreSteps</span><br>
|
259
|
-
}<br>
|
260
|
-
<span class="help" onMouseover="showDefaultToolchain()" onMouseout="notip()">DefaultToolchain</span> <basedOn>, <span class="help" onMouseover="showOutputDir()" onMouseout="notip()">outputDir</span>: <dir>, <span class="help" onMouseover="showEclipseOrder()" onMouseout="notip()">eclipseOrder</span>: true|false {<br>
|
261
|
-
<span class="help" onMouseover="showDefaultCompiler()" onMouseout="notip()">Compiler</span> ASM | CPP | C,
|
262
|
-
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
263
|
-
<span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> <flags><br>
|
264
|
-
<span class="help" onMouseover="showDefaultDefine()" onMouseout="notip()">Define</span> <define><br>
|
265
|
-
<span class="help" onMouseover="showInternalDefines()" onMouseout="notip()">InternalDefines</span> <file><br>
|
266
|
-
}<br>
|
267
|
-
<span class="help" onMouseover="showDefaultArchiver()" onMouseout="notip()">Archiver</span>
|
268
|
-
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
269
|
-
<span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> <flags><br>
|
270
|
-
}<br>
|
271
|
-
<span class="help" onMouseover="showDefaultLinker()" onMouseout="notip()">Linker</span>
|
272
|
-
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
273
|
-
<span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> <flags><br>
|
274
|
-
<span class="help" onMouseover="showLibPrefixFlags()" onMouseout="notip()">LibPrefixFlags</span> <flags><br>
|
275
|
-
<span class="help" onMouseover="showLibPostfixFlags()" onMouseout="notip()">LibPostfixFlags</span> <flags><br>
|
276
|
-
}<br>
|
277
|
-
<span class="help" onMouseover="showInternalIncludes()" onMouseout="notip()">InternalIncludes</span> <file><br>
|
278
|
-
<span class="help" onMouseover="showDocu()" onMouseout="notip()">Docu</span> <cmdLine><br>
|
279
|
-
}<br>
|
280
|
-
|
281
|
-
|
282
|
-
<span class="help" onMouseover="showToolchainProject()" onMouseout="notip()">Toolchain</span> <span class="help" onMouseover="showOutputDir()" onMouseout="notip()">outputDir</span>: <dir> {<br>
|
283
|
-
<span class="help" onMouseover="showCompiler()" onMouseout="notip()">Compiler</span> ASM | CPP | C,
|
284
|
-
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
285
|
-
<span class="help" onMouseover="showFlags()" onMouseout="notip()">Flags</span> <flags>, add: <flags>, remove: <flags><br>
|
286
|
-
<span class="help" onMouseover="showDefine()" onMouseout="notip()">Define</span> <define><br>
|
287
|
-
}<br>
|
288
|
-
<span class="help" onMouseover="showArchiver()" onMouseout="notip()">Archiver</span>
|
289
|
-
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
290
|
-
<span class="help" onMouseover="showFlags()" onMouseout="notip()">Flags</span> <flags>, add: <flags>, remove: <flags><br>
|
291
|
-
}<br>
|
292
|
-
<span class="help" onMouseover="showLinker()" onMouseout="notip()">Linker</span>
|
293
|
-
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
294
|
-
<span class="help" onMouseover="showFlags()" onMouseout="notip()">Flags</span> <flags>, add: <flags>, remove: <flags><br>
|
295
|
-
<span class="help" onMouseover="showLibPrefixFlags()" onMouseout="notip()">LibPrefixFlags</span> <flags>, add: <flags>, remove: <flags><br>
|
296
|
-
<span class="help" onMouseover="showLibPostfixFlags()" onMouseout="notip()">LibPostfixFlags</span> <flags>, add: <flags>, remove: <flags><br>
|
297
|
-
}<br>
|
298
|
-
<span class="help" onMouseover="showDocu()" onMouseout="notip()">Docu</span> <cmdLine><br>
|
299
|
-
}<br>
|
300
|
-
<span class="help" onMouseover="showPrebuild()" onMouseout="notip()">Prebuild</span> {<br>
|
301
|
-
<span class="help" onMouseover="showExcept()" onMouseout="notip()">Except</span> <project>,
|
302
|
-
<span class="help" onMouseover="showExceptConfig()" onMouseout="notip()">config</span>: <name><br>
|
303
|
-
}<br></span><br>
|
304
|
-
|
305
|
-
</span>
|
306
|
-
|
307
|
-
<span id="libExe_part"><span class="show" style="background-color:#EEEEEE;">
|
308
|
-
<span class="mycomment"># Valid for ExecutableConfig and LibraryConfig</span><br><br>
|
309
|
-
<span class="help" onMouseover="showFiles()" onMouseout="notip()">Files</span> <pattern> {<br>
|
310
|
-
<span class="help" onMouseover="showFilesFlags()" onMouseout="notip()">Flags</span> <flags>, add: <flags>, remove: <flags><br>
|
311
|
-
<span class="help" onMouseover="showFilesDefine()" onMouseout="notip()">Define</span> <define><br>
|
312
|
-
}<br>
|
313
|
-
<span class="help" onMouseover="showExcludeFiles()" onMouseout="notip()">ExcludeFiles</span> <pattern><br>
|
314
|
-
<span class="help" onMouseover="showArtifactName()" onMouseout="notip()">ArtifactName</span> <name><br>
|
315
|
-
</span><br></span>
|
316
|
-
|
317
|
-
<span id="exe_part"><span class="show" style="background-color:#EEEEEE;">
|
318
|
-
<span class="mycomment"># Valid for ExecutableConfig</span><br><br>
|
319
|
-
<span class="help" onMouseover="showLinkerScript()" onMouseout="notip()">LinkerScript</span> <script><br>
|
320
|
-
<span class="help" onMouseover="showMapFile()" onMouseout="notip()">MapFile</span> <name><br>
|
321
|
-
</span><br></span>
|
322
|
-
|
323
|
-
<span id="custom_part" class="hide"><span style="background-color:#EEEEEE;" class="show">
|
324
|
-
<span class="mycomment"># Valid for CustomConfig</span><br><br>
|
325
|
-
<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"> <name>,
|
328
|
-
<span class="help" onMouseover="showMakefileLib()" onMouseout="notip()">lib</span>: <lib>,
|
329
|
-
<span class="help" onMouseover="showMakefileTarget()" onMouseout="notip()">target</span>: <target>,
|
330
|
-
<span class="help" onMouseover="showMakefilePathTo()" onMouseout="notip()">pathTo</span>: <paths>,
|
331
|
-
<span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
|
332
|
-
<span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: <name>,
|
333
|
-
<span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
|
334
|
-
<span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: <[array]> {<br>
|
335
|
-
<span class="help" onMouseover="showMakefileFlags()" onMouseout="notip()">Flags</span> <flags><br>
|
336
|
-
}<br>
|
337
|
-
</span>
|
338
|
-
<span style="background-color:#DDDDDD;" id="commandline_part" class="hide"><line>,
|
339
|
-
<span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
|
340
|
-
<span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: <name>,
|
341
|
-
<span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
|
342
|
-
<span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: <[array]>
|
343
|
-
</span>
|
344
|
-
<br></span><br></span>
|
345
|
-
}<br>
|
346
|
-
}<br><br>
|
347
|
-
Adapt toolchain: <name>, os: <name>, mainProject: <name>, mainConfig: <name> {<br>
|
348
|
-
<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> 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> 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> UserLibrary "xy/z/libUser.a"</i><br>'+
|
459
|
-
'<i> 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> --do <filter name></i><br>'+
|
511
|
-
'<i> --omit <filter name></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> 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> CommandLine "ddump -Ruv -y 0xFFFFF -oRelease/application.bin Release/application.elf"</i><br>'+
|
561
|
-
'<i> 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> 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> Files "src/abc/def.asm"</i><br>'+
|
600
|
-
'or a pattern, e.g.<br>'+
|
601
|
-
'<i> 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> IncludeDir "../abc/include"</i><br>'+
|
620
|
-
'but<br>'+
|
621
|
-
'<i> 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> IncludeDir "include"</i><br>'+
|
625
|
-
'<i> 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
|
-
' <i>Dependency gtest, config: lib<br>'+
|
664
|
-
' 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
|
-
" <i>Flags \"-x -y\"</i> overwrites the inherited flags<br><br>"+
|
711
|
-
" <i>Flags add: \"-x -y\"</i> adds -x and -y if not exist<br><br>"+
|
712
|
-
" <i>Flags remove: \"-x -y\"</i> removes -x and -y if exist<br><br>"+
|
713
|
-
" It is possible to combine the attributes like this:<br>"+
|
714
|
-
" <i>Flags remove: \"-x\", add: \"-y\"</i><br><br>"+
|
715
|
-
" To remove -g followed by any string, e.g. -g3, the command is:<br>"+
|
716
|
-
" <i>Flags remove: \"-g.*\"</i><br>"+
|
717
|
-
" 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 (”) 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
|
-
© 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 — 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">« 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 ... »</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>: <name> {<br>
|
205
|
+
<br>
|
206
|
+
|
207
|
+
<span class="help" onMouseover="showDescription()" onMouseout="notip()">Description</span> <text><br><br>
|
208
|
+
|
209
|
+
<span class="help" onMouseover="showVersion()" onMouseout="notip()">RequiredBakeVersion</span> minimum: <major.minor.patch>, maximum: <major.minor.patch><br><br>
|
210
|
+
|
211
|
+
<span class="help" onMouseover="showResponsible()" onMouseout="notip()">Responsible</span> {<br>
|
212
|
+
<span class="help" onMouseover="showPerson()" onMouseout="notip()">Person</span> <name>,
|
213
|
+
<span class="help" onMouseover="showPersonEmail()" onMouseout="notip()">email</span>: <adr><br>
|
214
|
+
}<br><br>
|
215
|
+
|
216
|
+
<span class="mycomment"># 0..n configs</span><br>
|
217
|
+
<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> <name>,
|
220
|
+
<span class="help" onMouseover="showExtends()" onMouseout="notip()">extends</span>: <parent(s)>,
|
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
|
+
<span class="mycomment"># Valid for all config types</span><br><br>
|
225
|
+
<span class="help" onMouseover="showDescription()" onMouseout="notip()">Description</span> <text><br>
|
226
|
+
<span class="help" onMouseover="showIncludeDir()" onMouseout="notip()">IncludeDir</span> <dir>, <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
|
+
<span class="help" onMouseover="showSet()" onMouseout="notip()">Set</span> <variable>, value: <value> | cmd: <line>, <span class="help" onMouseover="showEnv()" onMouseout="notip()">env</span>: true|false<br>
|
228
|
+
<span class="help" onMouseover="showDependency()" onMouseout="notip()">Dependency</span> <project>,
|
229
|
+
<span class="help" onMouseover="showDependencyConfig()" onMouseout="notip()">config</span>: <name><br>
|
230
|
+
<span class="help" onMouseover="showExternalLibrary()" onMouseout="notip()">ExternalLibrary</span> <lib>,
|
231
|
+
<span class="help" onMouseover="showExternalLibrarySearch()" onMouseout="notip()">search</span>: true|false<br>
|
232
|
+
<span class="help" onMouseover="showUserLibrary()" onMouseout="notip()">UserLibrary</span> <lib><br>
|
233
|
+
<span class="help" onMouseover="showExternalLibrarySearchPath()" onMouseout="notip()">ExternalLibrarySearchPath</span> <path><br>
|
234
|
+
<span class="help" onMouseover="showPreSteps()" onMouseout="notip()">PreSteps</span> {<br>
|
235
|
+
<span class="help" onMouseover="showMakefile()" onMouseout="notip()">Makefile</span> <file>,
|
236
|
+
<span class="help" onMouseover="showMakefileLib()" onMouseout="notip()">lib</span>: <lib>,
|
237
|
+
<span class="help" onMouseover="showMakefileTarget()" onMouseout="notip()">target</span>: <target>,
|
238
|
+
<span class="help" onMouseover="showMakefilePathTo()" onMouseout="notip()">pathTo</span>: <paths>,
|
239
|
+
<span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
|
240
|
+
<span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: <name>,
|
241
|
+
<span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
|
242
|
+
<span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: <[array]> {<br>
|
243
|
+
<span class="help" onMouseover="showMakefileFlags()" onMouseout="notip()">Flags</span> <flags><br>
|
244
|
+
}<br>
|
245
|
+
<span class="help" onMouseover="showCommandLine()" onMouseout="notip()">CommandLine</span> <line>,
|
246
|
+
<span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
|
247
|
+
<span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: <name>,
|
248
|
+
<span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
|
249
|
+
<span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: <[array]><br>
|
250
|
+
}<br>
|
251
|
+
<span class="help" onMouseover="showPostSteps()" onMouseout="notip()">PostSteps</span> {<br>
|
252
|
+
<span class="mycomment"># Same as for PreSteps</span><br>
|
253
|
+
}<br>
|
254
|
+
<span class="help" onMouseover="showStartupSteps()" onMouseout="notip()">StartupSteps</span> {<br>
|
255
|
+
<span class="mycomment"># Same as for PreSteps</span><br>
|
256
|
+
}<br>
|
257
|
+
<span class="help" onMouseover="showExitSteps()" onMouseout="notip()">ExitSteps</span> {<br>
|
258
|
+
<span class="mycomment"># Same as for PreSteps</span><br>
|
259
|
+
}<br>
|
260
|
+
<span class="help" onMouseover="showDefaultToolchain()" onMouseout="notip()">DefaultToolchain</span> <basedOn>, <span class="help" onMouseover="showOutputDir()" onMouseout="notip()">outputDir</span>: <dir>, <span class="help" onMouseover="showEclipseOrder()" onMouseout="notip()">eclipseOrder</span>: true|false {<br>
|
261
|
+
<span class="help" onMouseover="showDefaultCompiler()" onMouseout="notip()">Compiler</span> ASM | CPP | C,
|
262
|
+
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
263
|
+
<span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> <flags><br>
|
264
|
+
<span class="help" onMouseover="showDefaultDefine()" onMouseout="notip()">Define</span> <define><br>
|
265
|
+
<span class="help" onMouseover="showInternalDefines()" onMouseout="notip()">InternalDefines</span> <file><br>
|
266
|
+
}<br>
|
267
|
+
<span class="help" onMouseover="showDefaultArchiver()" onMouseout="notip()">Archiver</span>
|
268
|
+
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
269
|
+
<span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> <flags><br>
|
270
|
+
}<br>
|
271
|
+
<span class="help" onMouseover="showDefaultLinker()" onMouseout="notip()">Linker</span>
|
272
|
+
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
273
|
+
<span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> <flags><br>
|
274
|
+
<span class="help" onMouseover="showLibPrefixFlags()" onMouseout="notip()">LibPrefixFlags</span> <flags><br>
|
275
|
+
<span class="help" onMouseover="showLibPostfixFlags()" onMouseout="notip()">LibPostfixFlags</span> <flags><br>
|
276
|
+
}<br>
|
277
|
+
<span class="help" onMouseover="showInternalIncludes()" onMouseout="notip()">InternalIncludes</span> <file><br>
|
278
|
+
<span class="help" onMouseover="showDocu()" onMouseout="notip()">Docu</span> <cmdLine><br>
|
279
|
+
}<br>
|
280
|
+
|
281
|
+
|
282
|
+
<span class="help" onMouseover="showToolchainProject()" onMouseout="notip()">Toolchain</span> <span class="help" onMouseover="showOutputDir()" onMouseout="notip()">outputDir</span>: <dir> {<br>
|
283
|
+
<span class="help" onMouseover="showCompiler()" onMouseout="notip()">Compiler</span> ASM | CPP | C,
|
284
|
+
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
285
|
+
<span class="help" onMouseover="showFlags()" onMouseout="notip()">Flags</span> <flags>, add: <flags>, remove: <flags><br>
|
286
|
+
<span class="help" onMouseover="showDefine()" onMouseout="notip()">Define</span> <define><br>
|
287
|
+
}<br>
|
288
|
+
<span class="help" onMouseover="showArchiver()" onMouseout="notip()">Archiver</span>
|
289
|
+
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
290
|
+
<span class="help" onMouseover="showFlags()" onMouseout="notip()">Flags</span> <flags>, add: <flags>, remove: <flags><br>
|
291
|
+
}<br>
|
292
|
+
<span class="help" onMouseover="showLinker()" onMouseout="notip()">Linker</span>
|
293
|
+
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
294
|
+
<span class="help" onMouseover="showFlags()" onMouseout="notip()">Flags</span> <flags>, add: <flags>, remove: <flags><br>
|
295
|
+
<span class="help" onMouseover="showLibPrefixFlags()" onMouseout="notip()">LibPrefixFlags</span> <flags>, add: <flags>, remove: <flags><br>
|
296
|
+
<span class="help" onMouseover="showLibPostfixFlags()" onMouseout="notip()">LibPostfixFlags</span> <flags>, add: <flags>, remove: <flags><br>
|
297
|
+
}<br>
|
298
|
+
<span class="help" onMouseover="showDocu()" onMouseout="notip()">Docu</span> <cmdLine><br>
|
299
|
+
}<br>
|
300
|
+
<span class="help" onMouseover="showPrebuild()" onMouseout="notip()">Prebuild</span> {<br>
|
301
|
+
<span class="help" onMouseover="showExcept()" onMouseout="notip()">Except</span> <project>,
|
302
|
+
<span class="help" onMouseover="showExceptConfig()" onMouseout="notip()">config</span>: <name><br>
|
303
|
+
}<br></span><br>
|
304
|
+
|
305
|
+
</span>
|
306
|
+
|
307
|
+
<span id="libExe_part"><span class="show" style="background-color:#EEEEEE;">
|
308
|
+
<span class="mycomment"># Valid for ExecutableConfig and LibraryConfig</span><br><br>
|
309
|
+
<span class="help" onMouseover="showFiles()" onMouseout="notip()">Files</span> <pattern> {<br>
|
310
|
+
<span class="help" onMouseover="showFilesFlags()" onMouseout="notip()">Flags</span> <flags>, add: <flags>, remove: <flags><br>
|
311
|
+
<span class="help" onMouseover="showFilesDefine()" onMouseout="notip()">Define</span> <define><br>
|
312
|
+
}<br>
|
313
|
+
<span class="help" onMouseover="showExcludeFiles()" onMouseout="notip()">ExcludeFiles</span> <pattern><br>
|
314
|
+
<span class="help" onMouseover="showArtifactName()" onMouseout="notip()">ArtifactName</span> <name><br>
|
315
|
+
</span><br></span>
|
316
|
+
|
317
|
+
<span id="exe_part"><span class="show" style="background-color:#EEEEEE;">
|
318
|
+
<span class="mycomment"># Valid for ExecutableConfig</span><br><br>
|
319
|
+
<span class="help" onMouseover="showLinkerScript()" onMouseout="notip()">LinkerScript</span> <script><br>
|
320
|
+
<span class="help" onMouseover="showMapFile()" onMouseout="notip()">MapFile</span> <name><br>
|
321
|
+
</span><br></span>
|
322
|
+
|
323
|
+
<span id="custom_part" class="hide"><span style="background-color:#EEEEEE;" class="show">
|
324
|
+
<span class="mycomment"># Valid for CustomConfig</span><br><br>
|
325
|
+
<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"> <name>,
|
328
|
+
<span class="help" onMouseover="showMakefileLib()" onMouseout="notip()">lib</span>: <lib>,
|
329
|
+
<span class="help" onMouseover="showMakefileTarget()" onMouseout="notip()">target</span>: <target>,
|
330
|
+
<span class="help" onMouseover="showMakefilePathTo()" onMouseout="notip()">pathTo</span>: <paths>,
|
331
|
+
<span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
|
332
|
+
<span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: <name>,
|
333
|
+
<span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
|
334
|
+
<span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: <[array]> {<br>
|
335
|
+
<span class="help" onMouseover="showMakefileFlags()" onMouseout="notip()">Flags</span> <flags><br>
|
336
|
+
}<br>
|
337
|
+
</span>
|
338
|
+
<span style="background-color:#DDDDDD;" id="commandline_part" class="hide"><line>,
|
339
|
+
<span class="help" onMouseover="showStepDefault()" onMouseout="notip()">default</span>: on|off,
|
340
|
+
<span class="help" onMouseover="showStepFilter()" onMouseout="notip()">filter</span>: <name>,
|
341
|
+
<span class="help" onMouseover="showEcho()" onMouseout="notip()">echo</span>: on|off,
|
342
|
+
<span class="help" onMouseover="showValidExitCodes()" onMouseout="notip()">validExitCodes</span>: <[array]>
|
343
|
+
</span>
|
344
|
+
<br></span><br></span>
|
345
|
+
}<br>
|
346
|
+
}<br><br>
|
347
|
+
Adapt toolchain: <name>, os: <name>, mainProject: <name>, mainConfig: <name> {<br>
|
348
|
+
<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> 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> 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> UserLibrary "xy/z/libUser.a"</i><br>'+
|
459
|
+
'<i> 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> --do <filter name></i><br>'+
|
511
|
+
'<i> --omit <filter name></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> 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> CommandLine "ddump -Ruv -y 0xFFFFF -oRelease/application.bin Release/application.elf"</i><br>'+
|
561
|
+
'<i> 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> 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> Files "src/abc/def.asm"</i><br>'+
|
600
|
+
'or a pattern, e.g.<br>'+
|
601
|
+
'<i> 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> IncludeDir "../abc/include"</i><br>'+
|
620
|
+
'but<br>'+
|
621
|
+
'<i> 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> IncludeDir "include"</i><br>'+
|
625
|
+
'<i> 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
|
+
' <i>Dependency gtest, config: lib<br>'+
|
664
|
+
' 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
|
+
" <i>Flags \"-x -y\"</i> overwrites the inherited flags<br><br>"+
|
711
|
+
" <i>Flags add: \"-x -y\"</i> adds -x and -y if not exist<br><br>"+
|
712
|
+
" <i>Flags remove: \"-x -y\"</i> removes -x and -y if exist<br><br>"+
|
713
|
+
" It is possible to combine the attributes like this:<br>"+
|
714
|
+
" <i>Flags remove: \"-x\", add: \"-y\"</i><br><br>"+
|
715
|
+
" To remove -g followed by any string, e.g. -g3, the command is:<br>"+
|
716
|
+
" <i>Flags remove: \"-g.*\"</i><br>"+
|
717
|
+
" 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 (”) 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
|
+
© 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>
|