bake-toolkit 2.13.1 → 2.14.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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/_build/html/_sources/changelog.txt +7 -0
  3. data/documentation/_build/html/_sources/index.txt +1 -1
  4. data/documentation/_build/html/_sources/syntax/adapt_configs.txt +143 -0
  5. data/documentation/_build/html/_sources/syntax/derive_configs.txt +48 -60
  6. data/documentation/_build/html/_sources/syntax/syntax.txt +1 -0
  7. data/documentation/_build/html/_static/syntax.html +9 -6
  8. data/documentation/_build/html/changelog.html +14 -4
  9. data/documentation/_build/html/commandline/commandline.html +6 -6
  10. data/documentation/_build/html/concepts/build_hierarchy.html +4 -4
  11. data/documentation/_build/html/concepts/concepts.html +4 -4
  12. data/documentation/_build/html/concepts/the_main_project.html +4 -4
  13. data/documentation/_build/html/concepts/the_project_meta_file.html +4 -4
  14. data/documentation/_build/html/genindex.html +4 -4
  15. data/documentation/_build/html/ide/eclipse/eclipse.html +4 -4
  16. data/documentation/_build/html/ide/eclipse/how_to_convert_existing_cdt_workspace.html +4 -4
  17. data/documentation/_build/html/ide/eclipse/how_to_create_a_new_project_in_eclipse.html +4 -4
  18. data/documentation/_build/html/ide/eclipse/how_to_create_a_workspace_in_eclipse.html +4 -4
  19. data/documentation/_build/html/ide/eclipse/how_to_install_eclipse_plugin.html +4 -4
  20. data/documentation/_build/html/ide/eclipse/how_to_use_bake_in_eclipse.html +4 -4
  21. data/documentation/_build/html/ide/ide_integrations.html +4 -4
  22. data/documentation/_build/html/ide/vs/how_to_create_vs_projects.html +4 -4
  23. data/documentation/_build/html/ide/vs/how_to_debug_in_vs.html +4 -4
  24. data/documentation/_build/html/ide/vs/how_to_used_bake_in_vs.html +4 -4
  25. data/documentation/_build/html/ide/vs/vs.html +4 -4
  26. data/documentation/_build/html/ide/vs/vs_install.html +4 -4
  27. data/documentation/_build/html/index.html +8 -7
  28. data/documentation/_build/html/install/install_bake.html +4 -4
  29. data/documentation/_build/html/internal.html +4 -4
  30. data/documentation/_build/html/known_issues.html +4 -4
  31. data/documentation/_build/html/license.html +4 -4
  32. data/documentation/_build/html/performance/performance.html +4 -4
  33. data/documentation/_build/html/quickstart/quickstart.html +4 -4
  34. data/documentation/_build/html/search.html +4 -4
  35. data/documentation/_build/html/searchindex.js +1 -1
  36. data/documentation/_build/html/syntax/adapt_configs.html +287 -0
  37. data/documentation/_build/html/syntax/derive_configs.html +57 -116
  38. data/documentation/_build/html/syntax/project_meta_syntax.html +13 -10
  39. data/documentation/_build/html/syntax/syntax.html +11 -4
  40. data/documentation/_build/html/syntax/variable_substitutions.html +4 -4
  41. data/documentation/_build/html/tips_and_tricks/how_to_use_bake_with_cygwin.html +4 -4
  42. data/documentation/_build/html/tips_and_tricks/static_code_analysis.html +4 -4
  43. data/documentation/_build/html/tips_and_tricks/the_bakery.html +4 -4
  44. data/documentation/_build/html/tips_and_tricks/the_clang.html +4 -4
  45. data/documentation/_build/html/tips_and_tricks/tips_and_tricks.html +4 -4
  46. data/documentation/_build/html/why_bake/why_bake.html +6 -6
  47. data/lib/adapt/config/loader.rb +111 -0
  48. data/lib/bake/cache.rb +25 -1
  49. data/lib/bake/config/checks.rb +61 -0
  50. data/lib/bake/config/loader.rb +41 -40
  51. data/lib/bake/libElement.rb +54 -55
  52. data/lib/bake/mergeConfig.rb +170 -154
  53. data/lib/bake/model/language.rb +2 -4
  54. data/lib/bake/model/metamodel.rb +31 -19
  55. data/lib/bake/model/metamodel_ext.rb +4 -1
  56. data/lib/bake/options/options.rb +12 -3
  57. data/lib/bake/options/usage.rb +1 -0
  58. data/lib/blocks/block.rb +0 -4
  59. data/lib/blocks/blockBase.rb +2 -1
  60. data/lib/blocks/compile.rb +5 -5
  61. data/lib/blocks/makefile.rb +1 -1
  62. data/lib/blocks/showIncludes.rb +13 -2
  63. data/lib/common/version.rb +3 -3
  64. data/lib/tocxx.rb +7 -2
  65. metadata +10 -6
@@ -5,7 +5,7 @@
5
5
  <head>
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
7
 
8
- <title>The Syntax of the Project.meta file &mdash; bake 2.13.1 documentation</title>
8
+ <title>The Syntax of the Project.meta file &mdash; bake 2.14.0 documentation</title>
9
9
 
10
10
  <link rel="stylesheet" href="../_static/basic.css" type="text/css" />
11
11
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@@ -15,7 +15,7 @@
15
15
  <script type="text/javascript">
16
16
  var DOCUMENTATION_OPTIONS = {
17
17
  URL_ROOT: '../',
18
- VERSION: '2.13.1',
18
+ VERSION: '2.14.0',
19
19
  COLLAPSE_INDEX: false,
20
20
  FILE_SUFFIX: '.html',
21
21
  HAS_SOURCE: true
@@ -29,7 +29,7 @@
29
29
  <script type="text/javascript" src="../_static/bootstrap-3.3.4/js/bootstrap.min.js"></script>
30
30
  <script type="text/javascript" src="../_static/bootstrap-sphinx.js"></script>
31
31
  <link rel="shortcut icon" href="../_static/logo_tiny_32.ico"/>
32
- <link rel="top" title="bake 2.13.1 documentation" href="../index.html" />
32
+ <link rel="top" title="bake 2.14.0 documentation" href="../index.html" />
33
33
  <link rel="up" title="Syntax" href="syntax.html" />
34
34
  <link rel="next" title="Variables in Project.meta" href="variable_substitutions.html" />
35
35
  <link rel="prev" title="Syntax" href="syntax.html" />
@@ -220,6 +220,8 @@ z-index: 100;
220
220
 
221
221
  <span><span style="background-color:#EEEEEE;" class="show">
222
222
  &nbsp; &nbsp; <span class="mycomment"># Valid for all config types</span><br><br>
223
+ &nbsp; &nbsp; <span class="help" onMouseover="showDescription()" onMouseout="notip()">Description</span> &#60;text&#62;<br>
224
+ &nbsp; &nbsp; <span class="help" onMouseover="showIncludeDir()" onMouseout="notip()">IncludeDir</span> &#60;dir&#62;, <span class="help" onMouseover="showInherit()" onMouseout="notip()">inherit</span>: true|false, <span class="help" onMouseover="showInfix()" onMouseout="notip()">inject</span>: front|back<br>
223
225
  &nbsp; &nbsp; <span class="help" onMouseover="showSet()" onMouseout="notip()">Set</span> &#60;variable&#62;, value: &#60;value&#62; | cmd: &#60;line&#62;, <span class="help" onMouseover="showEnv()" onMouseout="notip()">env</span>: true|false<br>
224
226
  &nbsp; &nbsp; <span class="help" onMouseover="showDependency()" onMouseout="notip()">Dependency</span> &#60;project&#62;,
225
227
  <span class="help" onMouseover="showDependencyConfig()" onMouseout="notip()">config</span>: &#60;name&#62;<br>
@@ -302,7 +304,6 @@ z-index: 100;
302
304
  &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showFilesDefine()" onMouseout="notip()">Define</span> &#60;define&#62;<br>
303
305
  &nbsp; &nbsp; }<br>
304
306
  &nbsp; &nbsp; <span class="help" onMouseover="showExcludeFiles()" onMouseout="notip()">ExcludeFiles</span> &#60;pattern&#62;<br>
305
- &nbsp; &nbsp; <span class="help" onMouseover="showIncludeDir()" onMouseout="notip()">IncludeDir</span> &#60;dir&#62;, <span class="help" onMouseover="showInherit()" onMouseout="notip()">inherit</span>: true|false, <span class="help" onMouseover="showInfix()" onMouseout="notip()">inject</span>: front|back<br>
306
307
 
307
308
  </span><br></span>
308
309
 
@@ -368,7 +369,7 @@ function showResponsible() {
368
369
  }
369
370
 
370
371
  function showDescription() {
371
- str = 'Description of the project.'
372
+ str = 'Description of the project or config.'
372
373
  ddrivetip("Description", "No", "0..1", "-",str)
373
374
  }
374
375
 
@@ -554,7 +555,8 @@ function showCommandLine() {
554
555
 
555
556
 
556
557
  function showEclipseOrder() {
557
- str = 'If not specified or false, all files are compiled in alphabetical order using their full names.<p>'+
558
+ str = 'If not specified or false, all files are compiled in order of appearance in Project.meta. '+
559
+ 'If the filename is a glob pattern, files are sorted alphabetically.<p>'+
558
560
  'If true, files are compiled in alphabetical order within a folder, '+
559
561
  'but the folders are sorted in reverse alphabetical order.<br>'+
560
562
  'This is only used for backward compatibility.'
@@ -813,14 +815,14 @@ return false
813
815
 
814
816
  function positiontip(e){
815
817
  if (enabletip){
816
- var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
817
- var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
818
+ var curX=(ns6)?e.offsetX : event.clientX+ietruebody().scrollLeft;
819
+ var curY=(ns6)?e.pageY-80 : event.clientY+ietruebody().scrollTop;
818
820
  //Find out how close the mouse is to the corner of the window
819
821
  var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint
820
822
  var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint*2 : window.innerHeight-e.clientY-offsetypoint
821
823
  var bottom=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight
822
824
 
823
- var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000
825
+ var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : offsetxpoint
824
826
 
825
827
  //if the horizontal distance isn't enough to accomodate the width of the context menu
826
828
  if (rightedge<tipobj.offsetWidth+offsetxpoint/2)
@@ -841,6 +843,7 @@ tipobj.style.visibility="visible"
841
843
  }
842
844
  }
843
845
 
846
+
844
847
  function notip(){
845
848
  if (ns6||ie){
846
849
  enabletip=false
@@ -882,7 +885,7 @@ document.onmousemove=positiontip
882
885
 
883
886
  </p>
884
887
  <p>
885
- &copy; Copyright 2015, E.S.R.Labs AG.<br/>
888
+ &copy; Copyright 2016, E.S.R.Labs AG.<br/>
886
889
  Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
887
890
  </p>
888
891
  </div>
@@ -5,7 +5,7 @@
5
5
  <head>
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
7
 
8
- <title>Syntax &mdash; bake 2.13.1 documentation</title>
8
+ <title>Syntax &mdash; bake 2.14.0 documentation</title>
9
9
 
10
10
  <link rel="stylesheet" href="../_static/basic.css" type="text/css" />
11
11
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@@ -15,7 +15,7 @@
15
15
  <script type="text/javascript">
16
16
  var DOCUMENTATION_OPTIONS = {
17
17
  URL_ROOT: '../',
18
- VERSION: '2.13.1',
18
+ VERSION: '2.14.0',
19
19
  COLLAPSE_INDEX: false,
20
20
  FILE_SUFFIX: '.html',
21
21
  HAS_SOURCE: true
@@ -29,7 +29,7 @@
29
29
  <script type="text/javascript" src="../_static/bootstrap-3.3.4/js/bootstrap.min.js"></script>
30
30
  <script type="text/javascript" src="../_static/bootstrap-sphinx.js"></script>
31
31
  <link rel="shortcut icon" href="../_static/logo_tiny_32.ico"/>
32
- <link rel="top" title="bake 2.13.1 documentation" href="../index.html" />
32
+ <link rel="top" title="bake 2.14.0 documentation" href="../index.html" />
33
33
  <link rel="next" title="The Syntax of the Project.meta file" href="project_meta_syntax.html" />
34
34
  <link rel="prev" title="The build hierarchy" href="../concepts/build_hierarchy.html" />
35
35
  <meta charset='utf-8'>
@@ -157,6 +157,13 @@
157
157
  <li class="toctree-l2"><a class="reference internal" href="derive_configs.html#inheritance-implications">Inheritance implications</a></li>
158
158
  </ul>
159
159
  </li>
160
+ <li class="toctree-l1"><a class="reference internal" href="adapt_configs.html">Adapt configs</a><ul>
161
+ <li class="toctree-l2"><a class="reference internal" href="adapt_configs.html#introduction">Introduction</a></li>
162
+ <li class="toctree-l2"><a class="reference internal" href="adapt_configs.html#effectiveness">Effectiveness</a></li>
163
+ <li class="toctree-l2"><a class="reference internal" href="adapt_configs.html#occurrences">Occurrences</a></li>
164
+ <li class="toctree-l2"><a class="reference internal" href="adapt_configs.html#types">Types</a></li>
165
+ </ul>
166
+ </li>
160
167
  </ul>
161
168
  </div>
162
169
  </div>
@@ -173,7 +180,7 @@
173
180
 
174
181
  </p>
175
182
  <p>
176
- &copy; Copyright 2015, E.S.R.Labs AG.<br/>
183
+ &copy; Copyright 2016, E.S.R.Labs AG.<br/>
177
184
  Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
178
185
  </p>
179
186
  </div>
@@ -5,7 +5,7 @@
5
5
  <head>
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
7
 
8
- <title>Variables in Project.meta &mdash; bake 2.13.1 documentation</title>
8
+ <title>Variables in Project.meta &mdash; bake 2.14.0 documentation</title>
9
9
 
10
10
  <link rel="stylesheet" href="../_static/basic.css" type="text/css" />
11
11
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@@ -15,7 +15,7 @@
15
15
  <script type="text/javascript">
16
16
  var DOCUMENTATION_OPTIONS = {
17
17
  URL_ROOT: '../',
18
- VERSION: '2.13.1',
18
+ VERSION: '2.14.0',
19
19
  COLLAPSE_INDEX: false,
20
20
  FILE_SUFFIX: '.html',
21
21
  HAS_SOURCE: true
@@ -29,7 +29,7 @@
29
29
  <script type="text/javascript" src="../_static/bootstrap-3.3.4/js/bootstrap.min.js"></script>
30
30
  <script type="text/javascript" src="../_static/bootstrap-sphinx.js"></script>
31
31
  <link rel="shortcut icon" href="../_static/logo_tiny_32.ico"/>
32
- <link rel="top" title="bake 2.13.1 documentation" href="../index.html" />
32
+ <link rel="top" title="bake 2.14.0 documentation" href="../index.html" />
33
33
  <link rel="up" title="Syntax" href="syntax.html" />
34
34
  <link rel="next" title="Derive configs" href="derive_configs.html" />
35
35
  <link rel="prev" title="The Syntax of the Project.meta file" href="project_meta_syntax.html" />
@@ -370,7 +370,7 @@ If you have the special case that the referenced project is contained in an othe
370
370
 
371
371
  </p>
372
372
  <p>
373
- &copy; Copyright 2015, E.S.R.Labs AG.<br/>
373
+ &copy; Copyright 2016, E.S.R.Labs AG.<br/>
374
374
  Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
375
375
  </p>
376
376
  </div>
@@ -5,7 +5,7 @@
5
5
  <head>
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
7
 
8
- <title>How to use bake with cygwin &mdash; bake 2.13.1 documentation</title>
8
+ <title>How to use bake with cygwin &mdash; bake 2.14.0 documentation</title>
9
9
 
10
10
  <link rel="stylesheet" href="../_static/basic.css" type="text/css" />
11
11
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@@ -15,7 +15,7 @@
15
15
  <script type="text/javascript">
16
16
  var DOCUMENTATION_OPTIONS = {
17
17
  URL_ROOT: '../',
18
- VERSION: '2.13.1',
18
+ VERSION: '2.14.0',
19
19
  COLLAPSE_INDEX: false,
20
20
  FILE_SUFFIX: '.html',
21
21
  HAS_SOURCE: true
@@ -29,7 +29,7 @@
29
29
  <script type="text/javascript" src="../_static/bootstrap-3.3.4/js/bootstrap.min.js"></script>
30
30
  <script type="text/javascript" src="../_static/bootstrap-sphinx.js"></script>
31
31
  <link rel="shortcut icon" href="../_static/logo_tiny_32.ico"/>
32
- <link rel="top" title="bake 2.13.1 documentation" href="../index.html" />
32
+ <link rel="top" title="bake 2.14.0 documentation" href="../index.html" />
33
33
  <link rel="up" title="Tips and Tricks" href="tips_and_tricks.html" />
34
34
  <link rel="next" title="Clang Analyze" href="the_clang.html" />
35
35
  <link rel="prev" title="Static Code Analysis" href="static_code_analysis.html" />
@@ -195,7 +195,7 @@ Depending on your Cygwin installation, you have to call &#8220;bake.bat&#8221; i
195
195
 
196
196
  </p>
197
197
  <p>
198
- &copy; Copyright 2015, E.S.R.Labs AG.<br/>
198
+ &copy; Copyright 2016, E.S.R.Labs AG.<br/>
199
199
  Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
200
200
  </p>
201
201
  </div>
@@ -5,7 +5,7 @@
5
5
  <head>
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
7
 
8
- <title>Static Code Analysis &mdash; bake 2.13.1 documentation</title>
8
+ <title>Static Code Analysis &mdash; bake 2.14.0 documentation</title>
9
9
 
10
10
  <link rel="stylesheet" href="../_static/basic.css" type="text/css" />
11
11
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@@ -15,7 +15,7 @@
15
15
  <script type="text/javascript">
16
16
  var DOCUMENTATION_OPTIONS = {
17
17
  URL_ROOT: '../',
18
- VERSION: '2.13.1',
18
+ VERSION: '2.14.0',
19
19
  COLLAPSE_INDEX: false,
20
20
  FILE_SUFFIX: '.html',
21
21
  HAS_SOURCE: true
@@ -29,7 +29,7 @@
29
29
  <script type="text/javascript" src="../_static/bootstrap-3.3.4/js/bootstrap.min.js"></script>
30
30
  <script type="text/javascript" src="../_static/bootstrap-sphinx.js"></script>
31
31
  <link rel="shortcut icon" href="../_static/logo_tiny_32.ico"/>
32
- <link rel="top" title="bake 2.13.1 documentation" href="../index.html" />
32
+ <link rel="top" title="bake 2.14.0 documentation" href="../index.html" />
33
33
  <link rel="up" title="Tips and Tricks" href="tips_and_tricks.html" />
34
34
  <link rel="next" title="How to use bake with cygwin" href="how_to_use_bake_with_cygwin.html" />
35
35
  <link rel="prev" title="The Bakery" href="the_bakery.html" />
@@ -276,7 +276,7 @@ You can use the <em>&#8211;lint-max</em> and the <em>&#8211;lint-min</em> option
276
276
 
277
277
  </p>
278
278
  <p>
279
- &copy; Copyright 2015, E.S.R.Labs AG.<br/>
279
+ &copy; Copyright 2016, E.S.R.Labs AG.<br/>
280
280
  Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
281
281
  </p>
282
282
  </div>
@@ -5,7 +5,7 @@
5
5
  <head>
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
7
 
8
- <title>The Bakery &mdash; bake 2.13.1 documentation</title>
8
+ <title>The Bakery &mdash; bake 2.14.0 documentation</title>
9
9
 
10
10
  <link rel="stylesheet" href="../_static/basic.css" type="text/css" />
11
11
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@@ -15,7 +15,7 @@
15
15
  <script type="text/javascript">
16
16
  var DOCUMENTATION_OPTIONS = {
17
17
  URL_ROOT: '../',
18
- VERSION: '2.13.1',
18
+ VERSION: '2.14.0',
19
19
  COLLAPSE_INDEX: false,
20
20
  FILE_SUFFIX: '.html',
21
21
  HAS_SOURCE: true
@@ -29,7 +29,7 @@
29
29
  <script type="text/javascript" src="../_static/bootstrap-3.3.4/js/bootstrap.min.js"></script>
30
30
  <script type="text/javascript" src="../_static/bootstrap-sphinx.js"></script>
31
31
  <link rel="shortcut icon" href="../_static/logo_tiny_32.ico"/>
32
- <link rel="top" title="bake 2.13.1 documentation" href="../index.html" />
32
+ <link rel="top" title="bake 2.14.0 documentation" href="../index.html" />
33
33
  <link rel="up" title="Tips and Tricks" href="tips_and_tricks.html" />
34
34
  <link rel="next" title="Static Code Analysis" href="static_code_analysis.html" />
35
35
  <link rel="prev" title="Tips and Tricks" href="tips_and_tricks.html" />
@@ -397,7 +397,7 @@ Collection MySpecialCollection {
397
397
 
398
398
  </p>
399
399
  <p>
400
- &copy; Copyright 2015, E.S.R.Labs AG.<br/>
400
+ &copy; Copyright 2016, E.S.R.Labs AG.<br/>
401
401
  Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
402
402
  </p>
403
403
  </div>
@@ -5,7 +5,7 @@
5
5
  <head>
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
7
 
8
- <title>Clang Analyze &mdash; bake 2.13.1 documentation</title>
8
+ <title>Clang Analyze &mdash; bake 2.14.0 documentation</title>
9
9
 
10
10
  <link rel="stylesheet" href="../_static/basic.css" type="text/css" />
11
11
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@@ -15,7 +15,7 @@
15
15
  <script type="text/javascript">
16
16
  var DOCUMENTATION_OPTIONS = {
17
17
  URL_ROOT: '../',
18
- VERSION: '2.13.1',
18
+ VERSION: '2.14.0',
19
19
  COLLAPSE_INDEX: false,
20
20
  FILE_SUFFIX: '.html',
21
21
  HAS_SOURCE: true
@@ -29,7 +29,7 @@
29
29
  <script type="text/javascript" src="../_static/bootstrap-3.3.4/js/bootstrap.min.js"></script>
30
30
  <script type="text/javascript" src="../_static/bootstrap-sphinx.js"></script>
31
31
  <link rel="shortcut icon" href="../_static/logo_tiny_32.ico"/>
32
- <link rel="top" title="bake 2.13.1 documentation" href="../index.html" />
32
+ <link rel="top" title="bake 2.14.0 documentation" href="../index.html" />
33
33
  <link rel="up" title="Tips and Tricks" href="tips_and_tricks.html" />
34
34
  <link rel="next" title="Performance" href="../performance/performance.html" />
35
35
  <link rel="prev" title="How to use bake with cygwin" href="how_to_use_bake_with_cygwin.html" />
@@ -193,7 +193,7 @@ invoking the compiler, the Clang Analyzer will be called.</p>
193
193
 
194
194
  </p>
195
195
  <p>
196
- &copy; Copyright 2015, E.S.R.Labs AG.<br/>
196
+ &copy; Copyright 2016, E.S.R.Labs AG.<br/>
197
197
  Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
198
198
  </p>
199
199
  </div>
@@ -5,7 +5,7 @@
5
5
  <head>
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
7
 
8
- <title>Tips and Tricks &mdash; bake 2.13.1 documentation</title>
8
+ <title>Tips and Tricks &mdash; bake 2.14.0 documentation</title>
9
9
 
10
10
  <link rel="stylesheet" href="../_static/basic.css" type="text/css" />
11
11
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@@ -15,7 +15,7 @@
15
15
  <script type="text/javascript">
16
16
  var DOCUMENTATION_OPTIONS = {
17
17
  URL_ROOT: '../',
18
- VERSION: '2.13.1',
18
+ VERSION: '2.14.0',
19
19
  COLLAPSE_INDEX: false,
20
20
  FILE_SUFFIX: '.html',
21
21
  HAS_SOURCE: true
@@ -29,7 +29,7 @@
29
29
  <script type="text/javascript" src="../_static/bootstrap-3.3.4/js/bootstrap.min.js"></script>
30
30
  <script type="text/javascript" src="../_static/bootstrap-sphinx.js"></script>
31
31
  <link rel="shortcut icon" href="../_static/logo_tiny_32.ico"/>
32
- <link rel="top" title="bake 2.13.1 documentation" href="../index.html" />
32
+ <link rel="top" title="bake 2.14.0 documentation" href="../index.html" />
33
33
  <link rel="next" title="The Bakery" href="the_bakery.html" />
34
34
  <link rel="prev" title="How to Debug in Visual Studio" href="../ide/vs/how_to_debug_in_vs.html" />
35
35
  <meta charset='utf-8'>
@@ -188,7 +188,7 @@ However, remove the IncludeDir statements from the Project.meta and check it out
188
188
 
189
189
  </p>
190
190
  <p>
191
- &copy; Copyright 2015, E.S.R.Labs AG.<br/>
191
+ &copy; Copyright 2016, E.S.R.Labs AG.<br/>
192
192
  Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
193
193
  </p>
194
194
  </div>
@@ -5,7 +5,7 @@
5
5
  <head>
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
7
 
8
- <title>Why you should use bake &mdash; bake 2.13.1 documentation</title>
8
+ <title>Why you should use bake &mdash; bake 2.14.0 documentation</title>
9
9
 
10
10
  <link rel="stylesheet" href="../_static/basic.css" type="text/css" />
11
11
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@@ -15,7 +15,7 @@
15
15
  <script type="text/javascript">
16
16
  var DOCUMENTATION_OPTIONS = {
17
17
  URL_ROOT: '../',
18
- VERSION: '2.13.1',
18
+ VERSION: '2.14.0',
19
19
  COLLAPSE_INDEX: false,
20
20
  FILE_SUFFIX: '.html',
21
21
  HAS_SOURCE: true
@@ -29,9 +29,9 @@
29
29
  <script type="text/javascript" src="../_static/bootstrap-3.3.4/js/bootstrap.min.js"></script>
30
30
  <script type="text/javascript" src="../_static/bootstrap-sphinx.js"></script>
31
31
  <link rel="shortcut icon" href="../_static/logo_tiny_32.ico"/>
32
- <link rel="top" title="bake 2.13.1 documentation" href="../index.html" />
32
+ <link rel="top" title="bake 2.14.0 documentation" href="../index.html" />
33
33
  <link rel="next" title="Install bake" href="../install/install_bake.html" />
34
- <link rel="prev" title="bake 2.13.1" href="../index.html" />
34
+ <link rel="prev" title="bake 2.14.0" href="../index.html" />
35
35
  <meta charset='utf-8'>
36
36
  <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
37
37
  <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
@@ -108,7 +108,7 @@
108
108
 
109
109
 
110
110
  <li>
111
- <a href="../index.html" title="Previous Chapter: bake 2.13.1"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">&laquo; bake 2.13.1</span>
111
+ <a href="../index.html" title="Previous Chapter: bake 2.14.0"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">&laquo; bake 2.14.0</span>
112
112
  </a>
113
113
  </li>
114
114
  <li>
@@ -233,7 +233,7 @@ it should be easy to switch between different version of the tool.</td>
233
233
 
234
234
  </p>
235
235
  <p>
236
- &copy; Copyright 2015, E.S.R.Labs AG.<br/>
236
+ &copy; Copyright 2016, E.S.R.Labs AG.<br/>
237
237
  Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.<br/>
238
238
  </p>
239
239
  </div>
@@ -0,0 +1,111 @@
1
+ require 'bake/model/loader'
2
+ require 'bake/config/checks'
3
+
4
+ module Bake
5
+
6
+ class AdaptConfig
7
+ attr_reader :referencedConfigs
8
+
9
+ @@filenames = []
10
+
11
+ def self.filenames
12
+ @@filenames
13
+ end
14
+
15
+ def loadProjMeta(filename, filenum)
16
+
17
+ Bake::Configs::Checks.symlinkCheck(filename)
18
+
19
+ f = @loader.load(filename)
20
+
21
+ if f.root_elements.length != 1 or not Metamodel::Adapt === f.root_elements[0]
22
+ Bake.formatter.printError("Config file must have exactly one 'Adapt' element as root element", filename)
23
+ ExitHelper.exit(1)
24
+ end
25
+
26
+ adapt = f.root_elements[0]
27
+ configs = adapt.getConfig
28
+
29
+ Bake::Configs::Checks::commonMetamodelCheck(configs, filename)
30
+
31
+ configs.each do |c|
32
+ if not c.extends.empty?
33
+ Bake.formatter.printError("Attribute 'extends' must not be used in adapt config.",c)
34
+ ExitHelper.exit(1)
35
+ end
36
+ if c.name.empty?
37
+ Bake.formatter.printError("Configs must be named.",c)
38
+ ExitHelper.exit(1)
39
+ end
40
+ if c.project.empty?
41
+ Bake.formatter.printError("The corresponding project must be specified.",c)
42
+ ExitHelper.exit(1)
43
+ end
44
+ if not ["replace", "remove", "extend"].include?c.type
45
+ Bake.formatter.printError("Allowed types are 'replace', 'remove' and 'extend'.",c)
46
+ ExitHelper.exit(1)
47
+ end
48
+ end
49
+
50
+ configs
51
+ end
52
+
53
+ def getPotentialAdaptionProjects()
54
+ potentialAdapts = []
55
+ Bake.options.roots.each do |r|
56
+ if (r.length == 3 && r.include?(":/"))
57
+ r = r + Bake.options.main_project_name # glob would not work otherwise on windows (ruby bug?)
58
+ end
59
+ Bake.options.adapt.each do |a|
60
+ fn = r+"/**{,/*/**}/#{a}/Adapt.meta"
61
+ potentialAdapts.concat(Dir.glob(fn).sort)
62
+ end
63
+ end
64
+
65
+ potentialAdapts.uniq
66
+ end
67
+
68
+ def chooseProjectFilenames(potentialAdapts)
69
+ @@filenames = []
70
+
71
+ Bake.options.adapt.each do |a|
72
+ adapts = potentialAdapts.find_all { |p| p.include?(a+"/Adapt.meta") }
73
+ if adapts.empty?
74
+ Bake.formatter.printError("Adaption project #{a} not found")
75
+ ExitHelper.exit(1)
76
+ else
77
+ @@filenames << adapts[0]
78
+ if (adapts.length > 1)
79
+ Bake.formatter.printWarning("Adaption project #{a} exists more than once")
80
+ chosen = " (chosen)"
81
+ adapts.each do |f|
82
+ Bake.formatter.printWarning(" #{File.dirname(f)}#{chosen}")
83
+ chosen = ""
84
+ end
85
+ end
86
+ end
87
+ end
88
+
89
+ end
90
+
91
+ def load()
92
+ @@filenames = []
93
+ return [] if Bake.options.adapt.empty?
94
+
95
+ @loader = Loader.new
96
+
97
+ potentialProjects = getPotentialAdaptionProjects()
98
+ chooseProjectFilenames(potentialProjects)
99
+
100
+ configs = []
101
+ @@filenames.each_with_index do |f,i|
102
+ configs.concat(loadProjMeta(f, i+1))
103
+ end
104
+
105
+ return configs
106
+ end
107
+
108
+
109
+ end
110
+
111
+ end