bake-toolkit 2.28.0 → 2.28.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,206 +1,206 @@
|
|
|
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>Prebuild configurations for distributions — 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="Concepts" href="concepts.html" />
|
|
34
|
-
<link rel="next" title="Injection and inheritance of IncludeDir and Dependency" href="inject.html" />
|
|
35
|
-
<link rel="prev" title="The link order" href="link_order.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 current"><a class="reference internal" href="concepts.html">Concepts</a></li>
|
|
75
|
-
<li class="toctree-l1"><a class="reference internal" href="../syntax/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="#">Prebuild configurations for distributions</a><ul>
|
|
100
|
-
<li><a class="reference internal" href="#typical-workflow">Typical workflow</a></li>
|
|
101
|
-
</ul>
|
|
102
|
-
</li>
|
|
103
|
-
</ul>
|
|
104
|
-
</ul>
|
|
105
|
-
</li>
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
<li>
|
|
112
|
-
<a href="link_order.html" title="Previous Chapter: The link order"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« The link order</span>
|
|
113
|
-
</a>
|
|
114
|
-
</li>
|
|
115
|
-
<li>
|
|
116
|
-
<a href="inject.html" title="Next Chapter: Injection and inheritance of IncludeDir and Dependency"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Injection and... »</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="prebuild-configurations-for-distributions">
|
|
145
|
-
<h1>Prebuild configurations for distributions<a class="headerlink" href="#prebuild-configurations-for-distributions" title="Permalink to this headline">¶</a></h1>
|
|
146
|
-
<p>This is a useful feature if you want to make a part of workspace available for third party without changing the configuration.</p>
|
|
147
|
-
<p>There are two major use cases:</p>
|
|
148
|
-
<ul class="simple">
|
|
149
|
-
<li>Only a few projects shall be closed source (e.g. to hide some algorithms)</li>
|
|
150
|
-
<li>Only a few projects shall be open source (e.g. if a supplier has integrate a library)</li>
|
|
151
|
-
</ul>
|
|
152
|
-
<p>Both is possible with bake, but the current UI is optimized for the latter one.</p>
|
|
153
|
-
<p>Add in the Project.meta the following code:</p>
|
|
154
|
-
<div class="highlight-console"><div class="highlight"><pre><span class="go">Prebuild {</span>
|
|
155
|
-
<span class="go"> Except main, config: Debug</span>
|
|
156
|
-
<span class="go"> Except newLib, config: Debug</span>
|
|
157
|
-
<span class="go"> Except setup, config: Release</span>
|
|
158
|
-
<span class="go">}</span>
|
|
159
|
-
</pre></div>
|
|
160
|
-
</div>
|
|
161
|
-
<p>It is possible to specify the Prebuild tags in all configurations, not only in the main configuration. Logically they will be merged.</p>
|
|
162
|
-
<p>In the example above, no configurations will be built - except those three. The prebuild output is used directly.</p>
|
|
163
|
-
<p>To reference a configuration of the same project, omit the project name, e.g.:</p>
|
|
164
|
-
<div class="highlight-console"><div class="highlight"><pre><span class="go">Except config: Base</span>
|
|
165
|
-
</pre></div>
|
|
166
|
-
</div>
|
|
167
|
-
<p>To reference all configuration of a project, omit the config name, e.g.:</p>
|
|
168
|
-
<div class="highlight-console"><div class="highlight"><pre><span class="go">Except newLib</span>
|
|
169
|
-
</pre></div>
|
|
170
|
-
</div>
|
|
171
|
-
<p>This prebuild behaviour must be explicitly turned on by using the following the command line argument:</p>
|
|
172
|
-
<div class="highlight-console"><div class="highlight"><pre><span class="go">--prebuild</span>
|
|
173
|
-
</pre></div>
|
|
174
|
-
</div>
|
|
175
|
-
<p>Note, that if objects files exist, the library will be built from existing object files (glob for *.o in appropriate build folder). If only the archive exists, the archive will be used without building it.</p>
|
|
176
|
-
<div class="section" id="typical-workflow">
|
|
177
|
-
<h2>Typical workflow<a class="headerlink" href="#typical-workflow" title="Permalink to this headline">¶</a></h2>
|
|
178
|
-
<ol class="arabic simple">
|
|
179
|
-
<li>Compiling the workspace completely without prebuild feature.</li>
|
|
180
|
-
<li>Executing a distribution script which copies all relevant files to a distribution directory.
|
|
181
|
-
Make sure to add all header files of prebuild libraries if they are needed for other non-prebuild libraries.
|
|
182
|
-
You may use the dependency files in the output directory for that script.</li>
|
|
183
|
-
<li>In the distribution folder use “–prebuild” when compiling the workspace.</li>
|
|
184
|
-
</ol>
|
|
185
|
-
</div>
|
|
186
|
-
</div>
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
</div>
|
|
190
|
-
|
|
191
|
-
</div>
|
|
192
|
-
</div>
|
|
193
|
-
<footer class="footer">
|
|
194
|
-
<div class="container">
|
|
195
|
-
<p class="pull-right">
|
|
196
|
-
<a href="#">Back to top</a>
|
|
197
|
-
|
|
198
|
-
</p>
|
|
199
|
-
<p>
|
|
200
|
-
© Copyright 2016, E.S.R.Labs AG.<br/>
|
|
201
|
-
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
|
|
202
|
-
</p>
|
|
203
|
-
</div>
|
|
204
|
-
</footer>
|
|
205
|
-
</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>Prebuild configurations for distributions — 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="Concepts" href="concepts.html" />
|
|
34
|
+
<link rel="next" title="Injection and inheritance of IncludeDir and Dependency" href="inject.html" />
|
|
35
|
+
<link rel="prev" title="The link order" href="link_order.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 current"><a class="reference internal" href="concepts.html">Concepts</a></li>
|
|
75
|
+
<li class="toctree-l1"><a class="reference internal" href="../syntax/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="#">Prebuild configurations for distributions</a><ul>
|
|
100
|
+
<li><a class="reference internal" href="#typical-workflow">Typical workflow</a></li>
|
|
101
|
+
</ul>
|
|
102
|
+
</li>
|
|
103
|
+
</ul>
|
|
104
|
+
</ul>
|
|
105
|
+
</li>
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
<li>
|
|
112
|
+
<a href="link_order.html" title="Previous Chapter: The link order"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« The link order</span>
|
|
113
|
+
</a>
|
|
114
|
+
</li>
|
|
115
|
+
<li>
|
|
116
|
+
<a href="inject.html" title="Next Chapter: Injection and inheritance of IncludeDir and Dependency"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Injection and... »</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="prebuild-configurations-for-distributions">
|
|
145
|
+
<h1>Prebuild configurations for distributions<a class="headerlink" href="#prebuild-configurations-for-distributions" title="Permalink to this headline">¶</a></h1>
|
|
146
|
+
<p>This is a useful feature if you want to make a part of workspace available for third party without changing the configuration.</p>
|
|
147
|
+
<p>There are two major use cases:</p>
|
|
148
|
+
<ul class="simple">
|
|
149
|
+
<li>Only a few projects shall be closed source (e.g. to hide some algorithms)</li>
|
|
150
|
+
<li>Only a few projects shall be open source (e.g. if a supplier has integrate a library)</li>
|
|
151
|
+
</ul>
|
|
152
|
+
<p>Both is possible with bake, but the current UI is optimized for the latter one.</p>
|
|
153
|
+
<p>Add in the Project.meta the following code:</p>
|
|
154
|
+
<div class="highlight-console"><div class="highlight"><pre><span class="go">Prebuild {</span>
|
|
155
|
+
<span class="go"> Except main, config: Debug</span>
|
|
156
|
+
<span class="go"> Except newLib, config: Debug</span>
|
|
157
|
+
<span class="go"> Except setup, config: Release</span>
|
|
158
|
+
<span class="go">}</span>
|
|
159
|
+
</pre></div>
|
|
160
|
+
</div>
|
|
161
|
+
<p>It is possible to specify the Prebuild tags in all configurations, not only in the main configuration. Logically they will be merged.</p>
|
|
162
|
+
<p>In the example above, no configurations will be built - except those three. The prebuild output is used directly.</p>
|
|
163
|
+
<p>To reference a configuration of the same project, omit the project name, e.g.:</p>
|
|
164
|
+
<div class="highlight-console"><div class="highlight"><pre><span class="go">Except config: Base</span>
|
|
165
|
+
</pre></div>
|
|
166
|
+
</div>
|
|
167
|
+
<p>To reference all configuration of a project, omit the config name, e.g.:</p>
|
|
168
|
+
<div class="highlight-console"><div class="highlight"><pre><span class="go">Except newLib</span>
|
|
169
|
+
</pre></div>
|
|
170
|
+
</div>
|
|
171
|
+
<p>This prebuild behaviour must be explicitly turned on by using the following the command line argument:</p>
|
|
172
|
+
<div class="highlight-console"><div class="highlight"><pre><span class="go">--prebuild</span>
|
|
173
|
+
</pre></div>
|
|
174
|
+
</div>
|
|
175
|
+
<p>Note, that if objects files exist, the library will be built from existing object files (glob for *.o in appropriate build folder). If only the archive exists, the archive will be used without building it.</p>
|
|
176
|
+
<div class="section" id="typical-workflow">
|
|
177
|
+
<h2>Typical workflow<a class="headerlink" href="#typical-workflow" title="Permalink to this headline">¶</a></h2>
|
|
178
|
+
<ol class="arabic simple">
|
|
179
|
+
<li>Compiling the workspace completely without prebuild feature.</li>
|
|
180
|
+
<li>Executing a distribution script which copies all relevant files to a distribution directory.
|
|
181
|
+
Make sure to add all header files of prebuild libraries if they are needed for other non-prebuild libraries.
|
|
182
|
+
You may use the dependency files in the output directory for that script.</li>
|
|
183
|
+
<li>In the distribution folder use “–prebuild” when compiling the workspace.</li>
|
|
184
|
+
</ol>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
</div>
|
|
190
|
+
|
|
191
|
+
</div>
|
|
192
|
+
</div>
|
|
193
|
+
<footer class="footer">
|
|
194
|
+
<div class="container">
|
|
195
|
+
<p class="pull-right">
|
|
196
|
+
<a href="#">Back to top</a>
|
|
197
|
+
|
|
198
|
+
</p>
|
|
199
|
+
<p>
|
|
200
|
+
© Copyright 2016, E.S.R.Labs AG.<br/>
|
|
201
|
+
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
|
|
202
|
+
</p>
|
|
203
|
+
</div>
|
|
204
|
+
</footer>
|
|
205
|
+
</body>
|
|
206
206
|
</html>
|
|
@@ -1,261 +1,261 @@
|
|
|
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 main project — 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="Concepts" href="concepts.html" />
|
|
34
|
-
<link rel="next" title="The build hierarchy" href="build_hierarchy.html" />
|
|
35
|
-
<link rel="prev" title="The Project.meta file" href="the_project_meta_file.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 current"><a class="reference internal" href="concepts.html">Concepts</a></li>
|
|
75
|
-
<li class="toctree-l1"><a class="reference internal" href="../syntax/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 main project</a><ul>
|
|
100
|
-
<li><a class="reference internal" href="#advantages">Advantages</a></li>
|
|
101
|
-
<li><a class="reference internal" href="#example">Example</a></li>
|
|
102
|
-
<li><a class="reference internal" href="#output-directory">Output directory</a></li>
|
|
103
|
-
</ul>
|
|
104
|
-
</li>
|
|
105
|
-
</ul>
|
|
106
|
-
</ul>
|
|
107
|
-
</li>
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
<li>
|
|
114
|
-
<a href="the_project_meta_file.html" title="Previous Chapter: The Project.meta file"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« The Project.m...</span>
|
|
115
|
-
</a>
|
|
116
|
-
</li>
|
|
117
|
-
<li>
|
|
118
|
-
<a href="build_hierarchy.html" title="Next Chapter: The build hierarchy"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">The build hie... »</span>
|
|
119
|
-
</a>
|
|
120
|
-
</li>
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
</ul>
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
<form class="navbar-form navbar-right" action="../search.html" method="get">
|
|
131
|
-
<div class="form-group">
|
|
132
|
-
<input type="text" name="q" class="form-control" placeholder="Search" />
|
|
133
|
-
</div>
|
|
134
|
-
<input type="hidden" name="check_keywords" value="yes" />
|
|
135
|
-
<input type="hidden" name="area" value="default" />
|
|
136
|
-
</form>
|
|
137
|
-
|
|
138
|
-
</div>
|
|
139
|
-
</div>
|
|
140
|
-
</div>
|
|
141
|
-
|
|
142
|
-
<div class="container">
|
|
143
|
-
<div class="row">
|
|
144
|
-
<div class="col-md-12">
|
|
145
|
-
|
|
146
|
-
<div class="section" id="the-main-project">
|
|
147
|
-
<h1>The main project<a class="headerlink" href="#the-main-project" title="Permalink to this headline">¶</a></h1>
|
|
148
|
-
<p>The concept of the main project is different to many other build systems like Eclipse CDT.
|
|
149
|
-
In these build systems everything which is needed for a project is configured in the project itself.
|
|
150
|
-
In bake the main project can predefine stuff for all subprojects.
|
|
151
|
-
The main project can have a DefaultToolchain definition, which is valid for all projects and files referenced by the main project. Subprojects can overwrite or adjust these definitions.</p>
|
|
152
|
-
<p>Projects are always built in context of the main project.</p>
|
|
153
|
-
<p>To build a project, you have to specify</p>
|
|
154
|
-
<blockquote>
|
|
155
|
-
<div><ul class="simple">
|
|
156
|
-
<li>the main project</li>
|
|
157
|
-
<li>the config of the main project which references the project to build</li>
|
|
158
|
-
<li>the (sub)project to build if applicable</li>
|
|
159
|
-
</ul>
|
|
160
|
-
</div></blockquote>
|
|
161
|
-
<div class="section" id="advantages">
|
|
162
|
-
<h2>Advantages<a class="headerlink" href="#advantages" title="Permalink to this headline">¶</a></h2>
|
|
163
|
-
<p>Reducing the number of build configurations (toolchain settings like debug or release flags can be set outside of the project)
|
|
164
|
-
Most projects do not have any compiler definitions anymore
|
|
165
|
-
Only flags which must be used or flags which must not be used have to be specified in the projects
|
|
166
|
-
Changing compiler definitions for all projects can be done easily in the main project build configuration</p>
|
|
167
|
-
</div>
|
|
168
|
-
<div class="section" id="example">
|
|
169
|
-
<h2>Example<a class="headerlink" href="#example" title="Permalink to this headline">¶</a></h2>
|
|
170
|
-
<table border="1" class="docutils">
|
|
171
|
-
<colgroup>
|
|
172
|
-
<col width="50%" />
|
|
173
|
-
<col width="50%" />
|
|
174
|
-
</colgroup>
|
|
175
|
-
<thead valign="bottom">
|
|
176
|
-
<tr class="row-odd"><th class="head">Project.meta of Main (Debug and Release)</th>
|
|
177
|
-
<th class="head">Project.meta of Sub (only one build config!)</th>
|
|
178
|
-
</tr>
|
|
179
|
-
</thead>
|
|
180
|
-
<tbody valign="top">
|
|
181
|
-
<tr class="row-even"><td><div class="first last highlight-python"><div class="highlight"><pre>Project {
|
|
182
|
-
|
|
183
|
-
ExecutableConfig Debug {
|
|
184
|
-
Dependency Sub, config: Lib
|
|
185
|
-
Files "**/*.cpp"
|
|
186
|
-
IncludeDir "include"
|
|
187
|
-
DefaultToolchain GCC {
|
|
188
|
-
Compiler CPP {
|
|
189
|
-
Flags "... whatever -debug_info"
|
|
190
|
-
Define "DEBUG"
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
ExecutableConfig Release {
|
|
196
|
-
Dependency Sub, config: Lib
|
|
197
|
-
Files "**/*.cpp"
|
|
198
|
-
IncludeDir "include"
|
|
199
|
-
DefaultToolchain GCC {
|
|
200
|
-
Compiler CPP {
|
|
201
|
-
Flags "... whatever -optimize"
|
|
202
|
-
Define "NDEBUG"
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
</pre></div>
|
|
208
|
-
</div>
|
|
209
|
-
</td>
|
|
210
|
-
<td><div class="first last highlight-python"><div class="highlight"><pre>Project {
|
|
211
|
-
|
|
212
|
-
LibraryConfig Lib {
|
|
213
|
-
Files "**/*.cpp"
|
|
214
|
-
IncludeDir "include"
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
}
|
|
218
|
-
</pre></div>
|
|
219
|
-
</div>
|
|
220
|
-
</td>
|
|
221
|
-
</tr>
|
|
222
|
-
</tbody>
|
|
223
|
-
</table>
|
|
224
|
-
<div class="admonition note">
|
|
225
|
-
<p class="first admonition-title">Note</p>
|
|
226
|
-
<p class="last">A main project must have a DefaultToolchain - but it’s allowed to leave that definition empty.</p>
|
|
227
|
-
</div>
|
|
228
|
-
</div>
|
|
229
|
-
<div class="section" id="output-directory">
|
|
230
|
-
<h2>Output directory<a class="headerlink" href="#output-directory" title="Permalink to this headline">¶</a></h2>
|
|
231
|
-
<p>A project in a specific build configuration can be build in different contexts.
|
|
232
|
-
That’s why the output directory of a project cannot be simply the build configuration name of the project to avoid inconsistencies.
|
|
233
|
-
Therefore the output directory names are.</p>
|
|
234
|
-
<blockquote>
|
|
235
|
-
<div><ul class="simple">
|
|
236
|
-
<li>Main project: $(MainConfigName) like in regular Eclipse CDT builds</li>
|
|
237
|
-
<li>Subprojects: $(MainConfigName)_$(MainProjectName) instead of the config name of the subproject</li>
|
|
238
|
-
</ul>
|
|
239
|
-
</div></blockquote>
|
|
240
|
-
</div>
|
|
241
|
-
</div>
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
</div>
|
|
245
|
-
|
|
246
|
-
</div>
|
|
247
|
-
</div>
|
|
248
|
-
<footer class="footer">
|
|
249
|
-
<div class="container">
|
|
250
|
-
<p class="pull-right">
|
|
251
|
-
<a href="#">Back to top</a>
|
|
252
|
-
|
|
253
|
-
</p>
|
|
254
|
-
<p>
|
|
255
|
-
© Copyright 2016, E.S.R.Labs AG.<br/>
|
|
256
|
-
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
|
|
257
|
-
</p>
|
|
258
|
-
</div>
|
|
259
|
-
</footer>
|
|
260
|
-
</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 main project — 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="Concepts" href="concepts.html" />
|
|
34
|
+
<link rel="next" title="The build hierarchy" href="build_hierarchy.html" />
|
|
35
|
+
<link rel="prev" title="The Project.meta file" href="the_project_meta_file.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 current"><a class="reference internal" href="concepts.html">Concepts</a></li>
|
|
75
|
+
<li class="toctree-l1"><a class="reference internal" href="../syntax/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 main project</a><ul>
|
|
100
|
+
<li><a class="reference internal" href="#advantages">Advantages</a></li>
|
|
101
|
+
<li><a class="reference internal" href="#example">Example</a></li>
|
|
102
|
+
<li><a class="reference internal" href="#output-directory">Output directory</a></li>
|
|
103
|
+
</ul>
|
|
104
|
+
</li>
|
|
105
|
+
</ul>
|
|
106
|
+
</ul>
|
|
107
|
+
</li>
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
<li>
|
|
114
|
+
<a href="the_project_meta_file.html" title="Previous Chapter: The Project.meta file"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« The Project.m...</span>
|
|
115
|
+
</a>
|
|
116
|
+
</li>
|
|
117
|
+
<li>
|
|
118
|
+
<a href="build_hierarchy.html" title="Next Chapter: The build hierarchy"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">The build hie... »</span>
|
|
119
|
+
</a>
|
|
120
|
+
</li>
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
</ul>
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
<form class="navbar-form navbar-right" action="../search.html" method="get">
|
|
131
|
+
<div class="form-group">
|
|
132
|
+
<input type="text" name="q" class="form-control" placeholder="Search" />
|
|
133
|
+
</div>
|
|
134
|
+
<input type="hidden" name="check_keywords" value="yes" />
|
|
135
|
+
<input type="hidden" name="area" value="default" />
|
|
136
|
+
</form>
|
|
137
|
+
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
<div class="container">
|
|
143
|
+
<div class="row">
|
|
144
|
+
<div class="col-md-12">
|
|
145
|
+
|
|
146
|
+
<div class="section" id="the-main-project">
|
|
147
|
+
<h1>The main project<a class="headerlink" href="#the-main-project" title="Permalink to this headline">¶</a></h1>
|
|
148
|
+
<p>The concept of the main project is different to many other build systems like Eclipse CDT.
|
|
149
|
+
In these build systems everything which is needed for a project is configured in the project itself.
|
|
150
|
+
In bake the main project can predefine stuff for all subprojects.
|
|
151
|
+
The main project can have a DefaultToolchain definition, which is valid for all projects and files referenced by the main project. Subprojects can overwrite or adjust these definitions.</p>
|
|
152
|
+
<p>Projects are always built in context of the main project.</p>
|
|
153
|
+
<p>To build a project, you have to specify</p>
|
|
154
|
+
<blockquote>
|
|
155
|
+
<div><ul class="simple">
|
|
156
|
+
<li>the main project</li>
|
|
157
|
+
<li>the config of the main project which references the project to build</li>
|
|
158
|
+
<li>the (sub)project to build if applicable</li>
|
|
159
|
+
</ul>
|
|
160
|
+
</div></blockquote>
|
|
161
|
+
<div class="section" id="advantages">
|
|
162
|
+
<h2>Advantages<a class="headerlink" href="#advantages" title="Permalink to this headline">¶</a></h2>
|
|
163
|
+
<p>Reducing the number of build configurations (toolchain settings like debug or release flags can be set outside of the project)
|
|
164
|
+
Most projects do not have any compiler definitions anymore
|
|
165
|
+
Only flags which must be used or flags which must not be used have to be specified in the projects
|
|
166
|
+
Changing compiler definitions for all projects can be done easily in the main project build configuration</p>
|
|
167
|
+
</div>
|
|
168
|
+
<div class="section" id="example">
|
|
169
|
+
<h2>Example<a class="headerlink" href="#example" title="Permalink to this headline">¶</a></h2>
|
|
170
|
+
<table border="1" class="docutils">
|
|
171
|
+
<colgroup>
|
|
172
|
+
<col width="50%" />
|
|
173
|
+
<col width="50%" />
|
|
174
|
+
</colgroup>
|
|
175
|
+
<thead valign="bottom">
|
|
176
|
+
<tr class="row-odd"><th class="head">Project.meta of Main (Debug and Release)</th>
|
|
177
|
+
<th class="head">Project.meta of Sub (only one build config!)</th>
|
|
178
|
+
</tr>
|
|
179
|
+
</thead>
|
|
180
|
+
<tbody valign="top">
|
|
181
|
+
<tr class="row-even"><td><div class="first last highlight-python"><div class="highlight"><pre>Project {
|
|
182
|
+
|
|
183
|
+
ExecutableConfig Debug {
|
|
184
|
+
Dependency Sub, config: Lib
|
|
185
|
+
Files "**/*.cpp"
|
|
186
|
+
IncludeDir "include"
|
|
187
|
+
DefaultToolchain GCC {
|
|
188
|
+
Compiler CPP {
|
|
189
|
+
Flags "... whatever -debug_info"
|
|
190
|
+
Define "DEBUG"
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
ExecutableConfig Release {
|
|
196
|
+
Dependency Sub, config: Lib
|
|
197
|
+
Files "**/*.cpp"
|
|
198
|
+
IncludeDir "include"
|
|
199
|
+
DefaultToolchain GCC {
|
|
200
|
+
Compiler CPP {
|
|
201
|
+
Flags "... whatever -optimize"
|
|
202
|
+
Define "NDEBUG"
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
</pre></div>
|
|
208
|
+
</div>
|
|
209
|
+
</td>
|
|
210
|
+
<td><div class="first last highlight-python"><div class="highlight"><pre>Project {
|
|
211
|
+
|
|
212
|
+
LibraryConfig Lib {
|
|
213
|
+
Files "**/*.cpp"
|
|
214
|
+
IncludeDir "include"
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
}
|
|
218
|
+
</pre></div>
|
|
219
|
+
</div>
|
|
220
|
+
</td>
|
|
221
|
+
</tr>
|
|
222
|
+
</tbody>
|
|
223
|
+
</table>
|
|
224
|
+
<div class="admonition note">
|
|
225
|
+
<p class="first admonition-title">Note</p>
|
|
226
|
+
<p class="last">A main project must have a DefaultToolchain - but it’s allowed to leave that definition empty.</p>
|
|
227
|
+
</div>
|
|
228
|
+
</div>
|
|
229
|
+
<div class="section" id="output-directory">
|
|
230
|
+
<h2>Output directory<a class="headerlink" href="#output-directory" title="Permalink to this headline">¶</a></h2>
|
|
231
|
+
<p>A project in a specific build configuration can be build in different contexts.
|
|
232
|
+
That’s why the output directory of a project cannot be simply the build configuration name of the project to avoid inconsistencies.
|
|
233
|
+
Therefore the output directory names are.</p>
|
|
234
|
+
<blockquote>
|
|
235
|
+
<div><ul class="simple">
|
|
236
|
+
<li>Main project: $(MainConfigName) like in regular Eclipse CDT builds</li>
|
|
237
|
+
<li>Subprojects: $(MainConfigName)_$(MainProjectName) instead of the config name of the subproject</li>
|
|
238
|
+
</ul>
|
|
239
|
+
</div></blockquote>
|
|
240
|
+
</div>
|
|
241
|
+
</div>
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
</div>
|
|
245
|
+
|
|
246
|
+
</div>
|
|
247
|
+
</div>
|
|
248
|
+
<footer class="footer">
|
|
249
|
+
<div class="container">
|
|
250
|
+
<p class="pull-right">
|
|
251
|
+
<a href="#">Back to top</a>
|
|
252
|
+
|
|
253
|
+
</p>
|
|
254
|
+
<p>
|
|
255
|
+
© Copyright 2016, E.S.R.Labs AG.<br/>
|
|
256
|
+
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
|
|
257
|
+
</p>
|
|
258
|
+
</div>
|
|
259
|
+
</footer>
|
|
260
|
+
</body>
|
|
261
261
|
</html>
|