bake-toolkit 2.18.0 → 2.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/_build/html/_sources/changelog.txt +5 -0
  3. data/documentation/_build/html/_sources/index.txt +1 -1
  4. data/documentation/_build/html/_sources/quickstart/quickstart.txt +5 -5
  5. data/documentation/_build/html/_sources/syntax/variable_substitutions.txt +15 -15
  6. data/documentation/_build/html/_sources/tips_and_tricks/how_to_use_bake_with_cygwin.txt +20 -7
  7. data/documentation/_build/html/_static/basic.css +598 -598
  8. data/documentation/_build/html/_static/bootstrap-2.3.2/css/bootstrap-responsive.css +1109 -1109
  9. data/documentation/_build/html/_static/bootstrap-2.3.2/css/bootstrap-responsive.min.css +9 -9
  10. data/documentation/_build/html/_static/bootstrap-2.3.2/css/bootstrap.css +6167 -6167
  11. data/documentation/_build/html/_static/bootstrap-2.3.2/css/bootstrap.min.css +9 -9
  12. data/documentation/_build/html/_static/bootstrap-2.3.2/js/bootstrap.js +2287 -2287
  13. data/documentation/_build/html/_static/bootstrap-2.3.2/js/bootstrap.min.js +5 -5
  14. data/documentation/_build/html/_static/bootstrap-3.3.4/css/bootstrap-theme.css +476 -476
  15. data/documentation/_build/html/_static/bootstrap-3.3.4/css/bootstrap-theme.min.css +4 -4
  16. data/documentation/_build/html/_static/bootstrap-3.3.4/css/bootstrap.css +6584 -6584
  17. data/documentation/_build/html/_static/bootstrap-3.3.4/css/bootstrap.min.css +4 -4
  18. data/documentation/_build/html/_static/bootstrap-3.3.4/fonts/glyphicons-halflings-regular.svg +287 -287
  19. data/documentation/_build/html/_static/bootstrap-3.3.4/js/bootstrap.js +2317 -2317
  20. data/documentation/_build/html/_static/bootstrap-3.3.4/js/bootstrap.min.js +6 -6
  21. data/documentation/_build/html/_static/bootstrap-3.3.4/js/npm.js +12 -12
  22. data/documentation/_build/html/_static/bootstrap-sphinx.css +186 -186
  23. data/documentation/_build/html/_static/bootstrap-sphinx.js +161 -161
  24. data/documentation/_build/html/_static/bootswatch-2.3.2/amelia/bootstrap.min.css +9 -9
  25. data/documentation/_build/html/_static/bootswatch-2.3.2/cerulean/bootstrap.min.css +9 -9
  26. data/documentation/_build/html/_static/bootswatch-2.3.2/cosmo/bootstrap.min.css +9 -9
  27. data/documentation/_build/html/_static/bootswatch-2.3.2/cyborg/bootstrap.min.css +9 -9
  28. data/documentation/_build/html/_static/bootswatch-2.3.2/flatly/bootstrap.min.css +9 -9
  29. data/documentation/_build/html/_static/bootswatch-2.3.2/journal/bootstrap.min.css +9 -9
  30. data/documentation/_build/html/_static/bootswatch-2.3.2/readable/bootstrap.min.css +9 -9
  31. data/documentation/_build/html/_static/bootswatch-2.3.2/simplex/bootstrap.min.css +9 -9
  32. data/documentation/_build/html/_static/bootswatch-2.3.2/slate/bootstrap.min.css +9 -9
  33. data/documentation/_build/html/_static/bootswatch-2.3.2/spacelab/bootstrap.min.css +9 -9
  34. data/documentation/_build/html/_static/bootswatch-2.3.2/spruce/bootstrap.min.css +9 -9
  35. data/documentation/_build/html/_static/bootswatch-2.3.2/superhero/bootstrap.min.css +9 -9
  36. data/documentation/_build/html/_static/bootswatch-2.3.2/united/bootstrap.min.css +9 -9
  37. data/documentation/_build/html/_static/bootswatch-3.3.4/cerulean/bootstrap.min.css +6 -6
  38. data/documentation/_build/html/_static/bootswatch-3.3.4/cosmo/bootstrap.min.css +6 -6
  39. data/documentation/_build/html/_static/bootswatch-3.3.4/custom/bootstrap.min.css +6 -6
  40. data/documentation/_build/html/_static/bootswatch-3.3.4/cyborg/bootstrap.min.css +6 -6
  41. data/documentation/_build/html/_static/bootswatch-3.3.4/darkly/bootstrap.min.css +6 -6
  42. data/documentation/_build/html/_static/bootswatch-3.3.4/flatly/bootstrap.min.css +6 -6
  43. data/documentation/_build/html/_static/bootswatch-3.3.4/fonts/glyphicons-halflings-regular.svg +287 -287
  44. data/documentation/_build/html/_static/bootswatch-3.3.4/journal/bootstrap.min.css +6 -6
  45. data/documentation/_build/html/_static/bootswatch-3.3.4/lumen/bootstrap.min.css +6 -6
  46. data/documentation/_build/html/_static/bootswatch-3.3.4/paper/bootstrap.min.css +6 -6
  47. data/documentation/_build/html/_static/bootswatch-3.3.4/readable/bootstrap.min.css +6 -6
  48. data/documentation/_build/html/_static/bootswatch-3.3.4/sandstone/bootstrap.min.css +6 -6
  49. data/documentation/_build/html/_static/bootswatch-3.3.4/simplex/bootstrap.min.css +6 -6
  50. data/documentation/_build/html/_static/bootswatch-3.3.4/slate/bootstrap.min.css +6 -6
  51. data/documentation/_build/html/_static/bootswatch-3.3.4/spacelab/bootstrap.min.css +6 -6
  52. data/documentation/_build/html/_static/bootswatch-3.3.4/superhero/bootstrap.min.css +6 -6
  53. data/documentation/_build/html/_static/bootswatch-3.3.4/united/bootstrap.min.css +6 -6
  54. data/documentation/_build/html/_static/bootswatch-3.3.4/yeti/bootstrap.min.css +6 -6
  55. data/documentation/_build/html/_static/doctools.js +263 -263
  56. data/documentation/_build/html/_static/jquery-1.11.1.js +10308 -10308
  57. data/documentation/_build/html/_static/jquery.js +4 -4
  58. data/documentation/_build/html/_static/js/jquery-1.11.0.min.js +4 -4
  59. data/documentation/_build/html/_static/js/jquery-fix.js +1 -1
  60. data/documentation/_build/html/_static/searchtools.js +621 -621
  61. data/documentation/_build/html/_static/underscore-1.3.1.js +999 -999
  62. data/documentation/_build/html/_static/underscore.js +31 -31
  63. data/documentation/_build/html/_static/websupport.js +808 -808
  64. data/documentation/_build/html/changelog.html +944 -937
  65. data/documentation/_build/html/commandline/commandline.html +284 -284
  66. data/documentation/_build/html/concepts/concepts.html +186 -186
  67. data/documentation/_build/html/concepts/link_order.html +245 -245
  68. data/documentation/_build/html/concepts/the_main_project.html +260 -260
  69. data/documentation/_build/html/concepts/the_project_meta_file.html +288 -288
  70. data/documentation/_build/html/genindex.html +152 -152
  71. data/documentation/_build/html/ide/eclipse/eclipse.html +186 -186
  72. data/documentation/_build/html/ide/eclipse/how_to_convert_existing_cdt_workspace.html +208 -208
  73. data/documentation/_build/html/ide/eclipse/how_to_create_a_new_project_in_eclipse.html +191 -191
  74. data/documentation/_build/html/ide/eclipse/how_to_create_a_workspace_in_eclipse.html +198 -198
  75. data/documentation/_build/html/ide/eclipse/how_to_debug_in_eclipse.html +198 -198
  76. data/documentation/_build/html/ide/eclipse/how_to_install_eclipse_plugin.html +196 -196
  77. data/documentation/_build/html/ide/eclipse/how_to_use_bake_in_eclipse.html +256 -256
  78. data/documentation/_build/html/ide/ide_integrations.html +183 -183
  79. data/documentation/_build/html/ide/vs/how_to_create_vs_projects.html +171 -171
  80. data/documentation/_build/html/ide/vs/how_to_debug_in_vs.html +185 -185
  81. data/documentation/_build/html/ide/vs/how_to_used_bake_in_vs.html +190 -190
  82. data/documentation/_build/html/ide/vs/vs.html +170 -170
  83. data/documentation/_build/html/ide/vs/vs_install.html +202 -202
  84. data/documentation/_build/html/index.html +241 -241
  85. data/documentation/_build/html/install/install_bake.html +279 -279
  86. data/documentation/_build/html/internal.html +217 -217
  87. data/documentation/_build/html/known_issues.html +175 -175
  88. data/documentation/_build/html/license.html +236 -236
  89. data/documentation/_build/html/performance/performance.html +373 -373
  90. data/documentation/_build/html/quickstart/quickstart.html +236 -236
  91. data/documentation/_build/html/search.html +174 -174
  92. data/documentation/_build/html/searchindex.js +1 -1
  93. data/documentation/_build/html/syntax/adapt_configs.html +286 -286
  94. data/documentation/_build/html/syntax/derive_configs.html +247 -247
  95. data/documentation/_build/html/syntax/project_meta_syntax.html +893 -893
  96. data/documentation/_build/html/syntax/syntax.html +189 -189
  97. data/documentation/_build/html/syntax/variable_substitutions.html +378 -378
  98. data/documentation/_build/html/tips_and_tricks/bundle.html +180 -180
  99. data/documentation/_build/html/tips_and_tricks/how_to_use_bake_with_cygwin.html +214 -203
  100. data/documentation/_build/html/tips_and_tricks/static_code_analysis.html +284 -284
  101. data/documentation/_build/html/tips_and_tricks/the_bakery.html +405 -405
  102. data/documentation/_build/html/tips_and_tricks/the_clang.html +201 -201
  103. data/documentation/_build/html/tips_and_tricks/tips_and_tricks.html +197 -197
  104. data/documentation/_build/html/why_bake/why_bake.html +241 -241
  105. data/lib/bake/subst.rb +40 -40
  106. data/lib/bake/toolchain/diab.rb +53 -53
  107. data/lib/bake/toolchain/gcc.rb +48 -48
  108. data/lib/bake/toolchain/gcc_env.rb +52 -52
  109. data/lib/bake/toolchain/msvc.rb +57 -57
  110. data/lib/blocks/block.rb +78 -63
  111. data/lib/blocks/blockBase.rb +33 -33
  112. data/lib/common/version.rb +2 -2
  113. metadata +4 -38
  114. data/documentation/_build/html/_images/logo_conformant_1024.png +0 -0
  115. data/documentation/_build/html/_images/logo_conformant_48.png +0 -0
  116. data/documentation/_build/html/_sources/concepts/build_hierarchy.txt +0 -34
  117. data/documentation/_build/html/_static/agogo.css +0 -509
  118. data/documentation/_build/html/_static/background_b01.png +0 -0
  119. data/documentation/_build/html/_static/bgfooter.png +0 -0
  120. data/documentation/_build/html/_static/bgtop.png +0 -0
  121. data/documentation/_build/html/_static/bizstyle.css +0 -490
  122. data/documentation/_build/html/_static/bizstyle.js +0 -41
  123. data/documentation/_build/html/_static/css/badge_only.css +0 -2
  124. data/documentation/_build/html/_static/css/theme.css +0 -5
  125. data/documentation/_build/html/_static/css3-mediaqueries.js +0 -1
  126. data/documentation/_build/html/_static/css3-mediaqueries_src.js +0 -1104
  127. data/documentation/_build/html/_static/debugEclipse/app.png +0 -0
  128. data/documentation/_build/html/_static/debugEclipse/debug.png +0 -0
  129. data/documentation/_build/html/_static/debugEclipse/flag.png +0 -0
  130. data/documentation/_build/html/_static/debugEclipse/map.png +0 -0
  131. data/documentation/_build/html/_static/debugEclipse/path.png +0 -0
  132. data/documentation/_build/html/_static/fonts/Inconsolata-Bold.ttf +0 -0
  133. data/documentation/_build/html/_static/fonts/Inconsolata.ttf +0 -0
  134. data/documentation/_build/html/_static/fonts/Lato-Bold.ttf +0 -0
  135. data/documentation/_build/html/_static/fonts/Lato-Regular.ttf +0 -0
  136. data/documentation/_build/html/_static/fonts/RobotoSlab-Bold.ttf +0 -0
  137. data/documentation/_build/html/_static/fonts/RobotoSlab-Regular.ttf +0 -0
  138. data/documentation/_build/html/_static/fonts/fontawesome-webfont.eot +0 -0
  139. data/documentation/_build/html/_static/fonts/fontawesome-webfont.svg +0 -414
  140. data/documentation/_build/html/_static/fonts/fontawesome-webfont.ttf +0 -0
  141. data/documentation/_build/html/_static/fonts/fontawesome-webfont.woff +0 -0
  142. data/documentation/_build/html/_static/js/modernizr.min.js +0 -4
  143. data/documentation/_build/html/_static/js/theme.js +0 -113
  144. data/documentation/_build/html/_static/logo_conformant_1024.png +0 -0
  145. data/documentation/_build/html/_static/logo_conformant_24.png +0 -0
  146. data/documentation/_build/html/_static/logo_conformant_256.png +0 -0
  147. data/documentation/_build/html/concepts/build_hierarchy.html +0 -205
@@ -1,248 +1,248 @@
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>Derive configs &mdash; bake 2.18.0 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: '2.18.0',
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 2.18.0 documentation" href="../index.html" />
33
- <link rel="up" title="Syntax" href="syntax.html" />
34
- <link rel="next" title="Adapt configs" href="adapt_configs.html" />
35
- <link rel="prev" title="Variables in Project.meta" href="variable_substitutions.html" />
36
- <meta charset='utf-8'>
37
- <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
38
- <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
39
- <meta name="apple-mobile-web-app-capable" content="yes">
40
-
41
- </head>
42
- <body role="document">
43
-
44
- <div id="navbar" class="navbar navbar-default navbar-fixed-top">
45
- <div class="container">
46
- <div class="navbar-header">
47
- <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
48
- <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
49
- <span class="icon-bar"></span>
50
- <span class="icon-bar"></span>
51
- <span class="icon-bar"></span>
52
- </button>
53
- <a class="navbar-brand" href="../index.html"><img src="../_static/logo_conformant_48.png">
54
- </a>
55
- <span class="navbar-text navbar-version pull-left"><b></b></span>
56
- </div>
57
-
58
- <div class="collapse navbar-collapse nav-collapse">
59
- <ul class="nav navbar-nav">
60
-
61
-
62
- <li class="dropdown globaltoc-container">
63
- <a role="button"
64
- id="dLabelGlobalToc"
65
- data-toggle="dropdown"
66
- data-target="#"
67
- href="../index.html">Section <b class="caret"></b></a>
68
- <ul class="dropdown-menu globaltoc"
69
- role="menu"
70
- aria-labelledby="dLabelGlobalToc"><ul class="current">
71
- <li class="toctree-l1"><a class="reference internal" href="../why_bake/why_bake.html">Why you should use bake</a></li>
72
- <li class="toctree-l1"><a class="reference internal" href="../install/install_bake.html">Install bake</a></li>
73
- <li class="toctree-l1"><a class="reference internal" href="../quickstart/quickstart.html">Quickstart</a></li>
74
- <li class="toctree-l1"><a class="reference internal" href="../concepts/concepts.html">Concepts</a></li>
75
- <li class="toctree-l1 current"><a class="reference internal" href="syntax.html">Syntax</a></li>
76
- <li class="toctree-l1"><a class="reference internal" href="../commandline/commandline.html">Commandline</a></li>
77
- <li class="toctree-l1"><a class="reference internal" href="../ide/ide_integrations.html">IDE Support</a></li>
78
- <li class="toctree-l1"><a class="reference internal" href="../tips_and_tricks/tips_and_tricks.html">Tips and Tricks</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="#">Derive configs</a><ul>
100
- <li><a class="reference internal" href="#deriving-a-config">Deriving a config</a></li>
101
- <li><a class="reference internal" href="#inheritance-implications">Inheritance implications</a></li>
102
- <li><a class="reference internal" href="#multiple-inheritance">Multiple inheritance</a></li>
103
- </ul>
104
- </li>
105
- </ul>
106
- </ul>
107
- </li>
108
-
109
-
110
-
111
-
112
-
113
- <li>
114
- <a href="variable_substitutions.html" title="Previous Chapter: Variables in Project.meta"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">&laquo; Variables in ...</span>
115
- </a>
116
- </li>
117
- <li>
118
- <a href="adapt_configs.html" title="Next Chapter: Adapt configs"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Adapt configs &raquo;</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="derive-configs">
147
- <h1>Derive configs<a class="headerlink" href="#derive-configs" title="Permalink to this headline">¶</a></h1>
148
- <p>bake supports deriving configs, which allows you to put repetetive settings in a base config.</p>
149
- <div class="section" id="deriving-a-config">
150
- <h2>Deriving a config<a class="headerlink" href="#deriving-a-config" title="Permalink to this headline">¶</a></h2>
151
- <p>Derving a config in bake is pretty straight forward, and looks like this:</p>
152
- <div class="highlight-text"><div class="highlight"><pre>ExecutableConfig A
153
- LibraryConfig B, extends: A
154
- CustomConfig C, extends: B
155
- ExecutableConfig D, extends: C
156
- </pre></div>
157
- </div>
158
- <div class="admonition note">
159
- <p class="first admonition-title">Note</p>
160
- <p class="last">The config type of the parent config does not matter, but only settings which are valid in BOTH configs will be inherited.
161
- In the example above D gets the dependencies from A, because &#8220;Dependency&#8221; is valid in all configs, but D does not get
162
- the &#8220;Files&#8221; from A and B, because &#8220;Files&#8221; is not valid in CustomConfig.</p>
163
- </div>
164
- </div>
165
- <div class="section" id="inheritance-implications">
166
- <h2>Inheritance implications<a class="headerlink" href="#inheritance-implications" title="Permalink to this headline">¶</a></h2>
167
- <p>In general it is very easy.</p>
168
- <ul class="simple">
169
- <li>Elements which can exist more than once (e.g. &#8220;Files&#8221;), are simply concatenated. First the parent elements, then the client elements.</li>
170
- <li>Elements which can exist only once:<ul>
171
- <li>if it exists in EITHER child OR parent, use this one</li>
172
- <li>is it exists in BOTH, attributes are merged (child attributes have high priority) and sub elements are inherited recursively</li>
173
- </ul>
174
- </li>
175
- </ul>
176
- <p>The following example</p>
177
- <div class="highlight-text"><div class="highlight"><pre>ExecutableConfig A {
178
- Files &quot;x.cpp&quot;
179
- Files &quot;y.cpp&quot;
180
- ArtifactName &quot;z.exe&quot;
181
- DefaultToolchain GCC {
182
- Linker {
183
- Flags &quot;-O3&quot;
184
- }
185
- }
186
- }
187
- ExecutableConfig B, extends: A {
188
- Files &quot;z.cpp&quot;
189
- IncludeDir &quot;inc&quot;
190
- ArtifactName &quot;a.exe&quot;
191
- DefaultToolchain Diab {
192
- Compiler CPP {
193
- Define &quot;TEST&quot;
194
- }
195
- }
196
- }
197
- </pre></div>
198
- </div>
199
- <p>results implicitly in:</p>
200
- <div class="highlight-text"><div class="highlight"><pre>ExecutableConfig B {
201
- Files &quot;x.cpp&quot;
202
- Files &quot;y.cpp&quot;
203
- Files &quot;z.cpp&quot;
204
- IncludeDir &quot;inc&quot;
205
- ArtifactName &quot;a.exe&quot;
206
- DefaultToolchain Diab {
207
- Compiler CPP {
208
- Define &quot;TEST&quot;
209
- }
210
- Linker {
211
- Flags &quot;-O3&quot;
212
- }
213
- }
214
- }
215
- </pre></div>
216
- </div>
217
- </div>
218
- <div class="section" id="multiple-inheritance">
219
- <h2>Multiple inheritance<a class="headerlink" href="#multiple-inheritance" title="Permalink to this headline">¶</a></h2>
220
- <p>It is possible to derive from several projects:</p>
221
- <div class="highlight-text"><div class="highlight"><pre>ExecutableConfig A
222
- LibraryConfig B
223
- ExecutableConfig C, extends: &quot;A, B&quot;
224
- </pre></div>
225
- </div>
226
- <p>&#8220;extends&#8221; defines a comma separated list. The merge will be performed with all parent configs.</p>
227
- </div>
228
- </div>
229
-
230
-
231
- </div>
232
-
233
- </div>
234
- </div>
235
- <footer class="footer">
236
- <div class="container">
237
- <p class="pull-right">
238
- <a href="#">Back to top</a>
239
-
240
- </p>
241
- <p>
242
- &copy; Copyright 2016, E.S.R.Labs AG.<br/>
243
- Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
244
- </p>
245
- </div>
246
- </footer>
247
- </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>Derive configs &mdash; bake 2.19.0 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: '2.19.0',
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 2.19.0 documentation" href="../index.html" />
33
+ <link rel="up" title="Syntax" href="syntax.html" />
34
+ <link rel="next" title="Adapt configs" href="adapt_configs.html" />
35
+ <link rel="prev" title="Variables in Project.meta" href="variable_substitutions.html" />
36
+ <meta charset='utf-8'>
37
+ <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
38
+ <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
39
+ <meta name="apple-mobile-web-app-capable" content="yes">
40
+
41
+ </head>
42
+ <body role="document">
43
+
44
+ <div id="navbar" class="navbar navbar-default navbar-fixed-top">
45
+ <div class="container">
46
+ <div class="navbar-header">
47
+ <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
48
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
49
+ <span class="icon-bar"></span>
50
+ <span class="icon-bar"></span>
51
+ <span class="icon-bar"></span>
52
+ </button>
53
+ <a class="navbar-brand" href="../index.html"><img src="../_static/logo_conformant_48.png">
54
+ </a>
55
+ <span class="navbar-text navbar-version pull-left"><b></b></span>
56
+ </div>
57
+
58
+ <div class="collapse navbar-collapse nav-collapse">
59
+ <ul class="nav navbar-nav">
60
+
61
+
62
+ <li class="dropdown globaltoc-container">
63
+ <a role="button"
64
+ id="dLabelGlobalToc"
65
+ data-toggle="dropdown"
66
+ data-target="#"
67
+ href="../index.html">Section <b class="caret"></b></a>
68
+ <ul class="dropdown-menu globaltoc"
69
+ role="menu"
70
+ aria-labelledby="dLabelGlobalToc"><ul class="current">
71
+ <li class="toctree-l1"><a class="reference internal" href="../why_bake/why_bake.html">Why you should use bake</a></li>
72
+ <li class="toctree-l1"><a class="reference internal" href="../install/install_bake.html">Install bake</a></li>
73
+ <li class="toctree-l1"><a class="reference internal" href="../quickstart/quickstart.html">Quickstart</a></li>
74
+ <li class="toctree-l1"><a class="reference internal" href="../concepts/concepts.html">Concepts</a></li>
75
+ <li class="toctree-l1 current"><a class="reference internal" href="syntax.html">Syntax</a></li>
76
+ <li class="toctree-l1"><a class="reference internal" href="../commandline/commandline.html">Commandline</a></li>
77
+ <li class="toctree-l1"><a class="reference internal" href="../ide/ide_integrations.html">IDE Support</a></li>
78
+ <li class="toctree-l1"><a class="reference internal" href="../tips_and_tricks/tips_and_tricks.html">Tips and Tricks</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="#">Derive configs</a><ul>
100
+ <li><a class="reference internal" href="#deriving-a-config">Deriving a config</a></li>
101
+ <li><a class="reference internal" href="#inheritance-implications">Inheritance implications</a></li>
102
+ <li><a class="reference internal" href="#multiple-inheritance">Multiple inheritance</a></li>
103
+ </ul>
104
+ </li>
105
+ </ul>
106
+ </ul>
107
+ </li>
108
+
109
+
110
+
111
+
112
+
113
+ <li>
114
+ <a href="variable_substitutions.html" title="Previous Chapter: Variables in Project.meta"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">&laquo; Variables in ...</span>
115
+ </a>
116
+ </li>
117
+ <li>
118
+ <a href="adapt_configs.html" title="Next Chapter: Adapt configs"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Adapt configs &raquo;</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="derive-configs">
147
+ <h1>Derive configs<a class="headerlink" href="#derive-configs" title="Permalink to this headline">¶</a></h1>
148
+ <p>bake supports deriving configs, which allows you to put repetetive settings in a base config.</p>
149
+ <div class="section" id="deriving-a-config">
150
+ <h2>Deriving a config<a class="headerlink" href="#deriving-a-config" title="Permalink to this headline">¶</a></h2>
151
+ <p>Derving a config in bake is pretty straight forward, and looks like this:</p>
152
+ <div class="highlight-text"><div class="highlight"><pre>ExecutableConfig A
153
+ LibraryConfig B, extends: A
154
+ CustomConfig C, extends: B
155
+ ExecutableConfig D, extends: C
156
+ </pre></div>
157
+ </div>
158
+ <div class="admonition note">
159
+ <p class="first admonition-title">Note</p>
160
+ <p class="last">The config type of the parent config does not matter, but only settings which are valid in BOTH configs will be inherited.
161
+ In the example above D gets the dependencies from A, because &#8220;Dependency&#8221; is valid in all configs, but D does not get
162
+ the &#8220;Files&#8221; from A and B, because &#8220;Files&#8221; is not valid in CustomConfig.</p>
163
+ </div>
164
+ </div>
165
+ <div class="section" id="inheritance-implications">
166
+ <h2>Inheritance implications<a class="headerlink" href="#inheritance-implications" title="Permalink to this headline">¶</a></h2>
167
+ <p>In general it is very easy.</p>
168
+ <ul class="simple">
169
+ <li>Elements which can exist more than once (e.g. &#8220;Files&#8221;), are simply concatenated. First the parent elements, then the client elements.</li>
170
+ <li>Elements which can exist only once:<ul>
171
+ <li>if it exists in EITHER child OR parent, use this one</li>
172
+ <li>is it exists in BOTH, attributes are merged (child attributes have high priority) and sub elements are inherited recursively</li>
173
+ </ul>
174
+ </li>
175
+ </ul>
176
+ <p>The following example</p>
177
+ <div class="highlight-text"><div class="highlight"><pre>ExecutableConfig A {
178
+ Files &quot;x.cpp&quot;
179
+ Files &quot;y.cpp&quot;
180
+ ArtifactName &quot;z.exe&quot;
181
+ DefaultToolchain GCC {
182
+ Linker {
183
+ Flags &quot;-O3&quot;
184
+ }
185
+ }
186
+ }
187
+ ExecutableConfig B, extends: A {
188
+ Files &quot;z.cpp&quot;
189
+ IncludeDir &quot;inc&quot;
190
+ ArtifactName &quot;a.exe&quot;
191
+ DefaultToolchain Diab {
192
+ Compiler CPP {
193
+ Define &quot;TEST&quot;
194
+ }
195
+ }
196
+ }
197
+ </pre></div>
198
+ </div>
199
+ <p>results implicitly in:</p>
200
+ <div class="highlight-text"><div class="highlight"><pre>ExecutableConfig B {
201
+ Files &quot;x.cpp&quot;
202
+ Files &quot;y.cpp&quot;
203
+ Files &quot;z.cpp&quot;
204
+ IncludeDir &quot;inc&quot;
205
+ ArtifactName &quot;a.exe&quot;
206
+ DefaultToolchain Diab {
207
+ Compiler CPP {
208
+ Define &quot;TEST&quot;
209
+ }
210
+ Linker {
211
+ Flags &quot;-O3&quot;
212
+ }
213
+ }
214
+ }
215
+ </pre></div>
216
+ </div>
217
+ </div>
218
+ <div class="section" id="multiple-inheritance">
219
+ <h2>Multiple inheritance<a class="headerlink" href="#multiple-inheritance" title="Permalink to this headline">¶</a></h2>
220
+ <p>It is possible to derive from several projects:</p>
221
+ <div class="highlight-text"><div class="highlight"><pre>ExecutableConfig A
222
+ LibraryConfig B
223
+ ExecutableConfig C, extends: &quot;A, B&quot;
224
+ </pre></div>
225
+ </div>
226
+ <p>&#8220;extends&#8221; defines a comma separated list. The merge will be performed with all parent configs.</p>
227
+ </div>
228
+ </div>
229
+
230
+
231
+ </div>
232
+
233
+ </div>
234
+ </div>
235
+ <footer class="footer">
236
+ <div class="container">
237
+ <p class="pull-right">
238
+ <a href="#">Back to top</a>
239
+
240
+ </p>
241
+ <p>
242
+ &copy; Copyright 2016, E.S.R.Labs AG.<br/>
243
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
244
+ </p>
245
+ </div>
246
+ </footer>
247
+ </body>
248
248
  </html>