bake-toolkit 2.10.3 → 2.11.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9ffeb560153458991dc570f4bc2593cb71224438
4
- data.tar.gz: fb35507be4a8527f87ff3b0e5f0d851d05de3ff8
3
+ metadata.gz: a06224eab0b59f7915bdd8ebeb389470f8261a4a
4
+ data.tar.gz: f57931da0df7084b81af5db918a826c2b3c146ba
5
5
  SHA512:
6
- metadata.gz: bee037b5e82b3fcb85179ec4b190f19238fdf61d4c664b50a27d4a19a0963462cb4bca93a3cfc7338d2ecebff2fb8cbb235b61936c21d19fe08840824536f232
7
- data.tar.gz: 4f561295d1dfba867a7dbb097914e784a5047dfa511fe3f424adbbfd8f86ce5f958795a2634c9bc84076e539358b264d56a9b467854b1fd37f30a2d9d594adf7
6
+ metadata.gz: 96214b36c6587ae06530ec7f6670e42460092fc913916a8982645f4fdce06db0c40c3da7d095f6389308cdb03fd28df13e7a58d1242b161745074aeb36e2b02a
7
+ data.tar.gz: 1619512c3c3e6260487069944b32218e7e0792bdb3f70c29f4b25de354bcd07af79c2545ef92e9fe2ee5889ad235c3a09be6f2ed8be4eeff55babd95205a4fd0
@@ -7,6 +7,14 @@
7
7
  <body>
8
8
  <h1>Changelog</h1>
9
9
 
10
+ July 31, 2015 - bake-toolkit 2.11.0<br>
11
+ <ul>
12
+ <li><b>Added: new parameters for <i>includeDir</i>: <i>inherit</i> and <i>infix</i></b>
13
+ <li><b>Added: dependency output for conversion tool</b>
14
+ <li><b>Bugfix: makefile flags where not used when cleaning the workspace</b>
15
+ </ul>
16
+
17
+
10
18
  July 6, 2015 - bake-toolkit 2.10.3<br>
11
19
  <ul>
12
20
  <li><b>Bugfix: Build stopped unintentionally when using -r</b>
@@ -74,7 +74,7 @@ bake is used to build software <font color="#009900"><b>fast</b></font> and <fon
74
74
 
75
75
  <p>
76
76
  <hr>
77
- <table width="100%" border="0"><tr><td align="left">Described bake-toolkit version: 2.10.3</td><td align="right">July 6, 2015</td></tr></table>
77
+ <table width="100%" border="0"><tr><td align="left">Described bake-toolkit version: 2.11.0</td><td align="right">July 31, 2015</td></tr></table>
78
78
 
79
79
  </body>
80
80
 
@@ -163,7 +163,7 @@ z-index: 100;
163
163
  &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showFilesDefine()" onMouseout="notip()">Define</span> &#60;define&#62;<br>
164
164
  &nbsp; &nbsp; }<br>
165
165
  &nbsp; &nbsp; <span class="help" onMouseover="showExcludeFiles()" onMouseout="notip()">ExcludeFiles</span> &#60;pattern&#62;<br>
166
- &nbsp; &nbsp; <span class="help" onMouseover="showIncludeDir()" onMouseout="notip()">IncludeDir</span> &#60;dir&#62;<br>
166
+ &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()">infix</span>: front|back<br>
167
167
 
168
168
  </span><br></span>
169
169
 
@@ -465,6 +465,16 @@ function showIncludeDir() {
465
465
  ddrivetip("IncludeDir", "No","0..n","-",str)
466
466
  }
467
467
 
468
+ function showInherit() {
469
+ str = 'Inherits the include to all projects, which depend on this project.'
470
+ ddrivetip("inherit", "No","0..1","false",str)
471
+ }
472
+
473
+ function showInfix() {
474
+ str = 'Injects the include path to all childs, either at the front (e.g. for mocking code) or at the end.'
475
+ ddrivetip("infix", "No","0..1","-",str)
476
+ }
477
+
468
478
  function showSet() {
469
479
  str = 'Sets a variable for this and all dependent projects.<br>'+
470
480
  'The variable can be a simple value or the result of a cmd, e.g. \"cat myVar.txt\".'
@@ -88,6 +88,13 @@ module Bake
88
88
  end
89
89
  end
90
90
  end
91
+
92
+ config.includeDir.each do |inc|
93
+ if not ["front", "back", ""].include?inc.infix
94
+ Bake.formatter.printError("infix of IncludeDir must be 'front' or 'back'", inc)
95
+ ExitHelper.exit(1)
96
+ end
97
+ end if config.respond_to?("includeDir")
91
98
  end
92
99
  configs
93
100
  end
@@ -122,6 +122,8 @@ module Bake
122
122
 
123
123
  class IncludeDir < ModelElement
124
124
  has_attr 'name', String, :defaultValueLiteral => ""
125
+ has_attr 'infix', String, :defaultValueLiteral => ""
126
+ has_attr 'inherit', Boolean, :defaultValueLiteral => "false"
125
127
  end
126
128
 
127
129
  class ExternalLibrary < ModelElement
@@ -15,7 +15,7 @@ module Bake
15
15
 
16
16
  class Block
17
17
 
18
- attr_reader :lib_elements, :projectDir, :library, :config
18
+ attr_reader :lib_elements, :projectDir, :library, :config, :projectName
19
19
  attr_accessor :visited, :inDeps, :result
20
20
 
21
21
  def startupSteps
@@ -41,7 +41,15 @@ module Bake
41
41
  def dependencies
42
42
  @dependencies ||= []
43
43
  end
44
+
45
+ def childs
46
+ @childs ||= []
47
+ end
44
48
 
49
+ def parents
50
+ @parents ||= []
51
+ end
52
+
45
53
  def set_library(library)
46
54
  @library = library
47
55
  end
@@ -56,8 +56,7 @@ module Bake
56
56
  cmdTime = File.mtime(cmdLineFile)
57
57
  return "because config file has been changed" if cmdTime < File.mtime(@config.file_name)
58
58
  return "because DefaultToolchain has been changed" if cmdTime < defaultToolchainTime
59
- return "because environment variables used for toolchain have been changed" if (Bake.options.envToolchain)
60
- false
59
+ return "because command line has been changed (IncludeDir inherit/infix, environment variables, ...)"
61
60
  end
62
61
 
63
62
  def self.isCmdLineEqual?(cmd, cmdLineFile)
@@ -119,6 +119,7 @@ module Bake
119
119
  reason = needed?(source, object, type, dep_filename_conv)
120
120
  if not reason
121
121
  cmdLineCheck = true
122
+ # currently this returns always != nil
122
123
  reason = config_changed?(cmdLineFile)
123
124
  end
124
125
  return true unless reason
@@ -402,10 +403,54 @@ module Bake
402
403
 
403
404
  end
404
405
 
406
+ def getSubBlocks(b, method)
407
+ b.send(method).each do |child_b|
408
+ if not @otherBlocks.include?child_b
409
+ @otherBlocks << child_b
410
+ getSubBlocks(child_b, method)
411
+ end
412
+ end
413
+ end
414
+
415
+ def getBlocks(method)
416
+ @otherBlocks = []
417
+ getSubBlocks(@block, method)
418
+ return @otherBlocks
419
+ end
420
+
421
+ def mapInclude(inc, projDir)
422
+ (inc.name == "___ROOTS___") ? (Bake.options.roots.map { |r| File.rel_from_to_project(projDir,r,false) }) : @block.convPath(inc)
423
+ end
424
+
405
425
  def calcIncludes
426
+
406
427
  @include_list = @config.includeDir.uniq.map do |dir|
407
- (dir.name == "___ROOTS___") ? (Bake.options.roots.map { |r| File.rel_from_to_project(@projectDir,r,false) }) : @block.convPath(dir)
408
- end.flatten.uniq
428
+ mapInclude(dir, @projectDir)
429
+ end
430
+
431
+ getBlocks(:childs).each do |b|
432
+ b.config.includeDir.each do |inc|
433
+ if inc.inherit == true
434
+ @include_list << mapInclude(inc, b.config.parent.get_project_dir)
435
+ end
436
+ end if b.config.respond_to?("includeDir")
437
+ end
438
+
439
+ getBlocks(:parents).each do |b|
440
+ if b.config.respond_to?("includeDir")
441
+ include_list_front = []
442
+ b.config.includeDir.each do |inc|
443
+ if inc.infix == "front"
444
+ include_list_front << mapInclude(inc, b.config.parent.get_project_dir)
445
+ elsif inc.infix == "back"
446
+ @include_list << mapInclude(inc, b.config.parent.get_project_dir)
447
+ end
448
+ end
449
+ @include_list = include_list_front + @include_list
450
+ end
451
+ end
452
+
453
+ @include_list = @include_list.flatten.uniq
409
454
 
410
455
  @include_array = {}
411
456
  [:CPP, :C, :ASM].each do |type|
@@ -21,6 +21,10 @@ module Bake
21
21
  @include_list.each { |s| puts " #{s}" }
22
22
  puts " BAKE_DEFINES"
23
23
  (@tcs[:COMPILER][:CPP][:DEFINES] + @tcs[:COMPILER][:C][:DEFINES] + @tcs[:COMPILER][:ASM][:DEFINES]).uniq.each { |s| puts " #{s}" }
24
+ puts " BAKE_DEPENDENCIES"
25
+ @block.childs.each { |dep| puts " #{dep.projectName}" }
26
+ puts " BAKE_DEPENDENCIES_FILTERED"
27
+ @block.childs.each { |dep| puts " #{dep.projectName}" unless @projectName == dep.projectName or dep.projectName == "gmock" or dep.projectName == "gtest" }
24
28
  puts "END_INFO"
25
29
  end
26
30
  return true
@@ -36,7 +36,8 @@ module Bake
36
36
 
37
37
  def calcCleanLine
38
38
  @cleanLine = remove_empty_strings_and_join([
39
- MAKE_COMMAND, MAKE_CLEAN,
39
+ MAKE_COMMAND, MAKE_CLEAN,
40
+ @flags,
40
41
  MAKE_DIR_FLAG, File.dirname(@makefile),
41
42
  MAKE_FILE_FLAG, File.basename(@makefile),
42
43
  @path_to])
@@ -1,7 +1,7 @@
1
1
  module Bake
2
2
  class Version
3
3
  def self.number
4
- "2.10.3"
4
+ "2.11.0"
5
5
  end
6
6
  end
7
7
 
@@ -91,24 +91,47 @@ module Bake
91
91
  end if configSteps
92
92
  end
93
93
 
94
- def addDependencies(block, configDeps)
95
- configDeps.each do |dep|
96
- @loadedConfig.referencedConfigs[dep.name].each do |config|
97
- if config.name == dep.config
98
- block.dependencies << config.qname
94
+ def addDependencies(block, config)
95
+ config.dependency.each do |dep|
96
+ @loadedConfig.referencedConfigs[dep.name].each do |configRef|
97
+ if configRef.name == dep.config
98
+ block.dependencies << configRef.qname if not Bake.options.project# and not Bake.options.filename
99
+ blockRef = Blocks::ALL_BLOCKS[configRef.qname]
100
+ block.childs << blockRef
101
+ blockRef.parents << block
99
102
  break
100
103
  end
101
104
  end
102
105
  end
103
106
  end
104
107
 
105
- def convert2bb
108
+ def makeBlocks
106
109
  @loadedConfig.referencedConfigs.each do |projName, configs|
107
110
  configs.each do |config|
108
-
109
111
  block = Blocks::Block.new(config, @loadedConfig.referencedConfigs)
110
-
111
112
  Blocks::ALL_BLOCKS[config.qname] = block
113
+ end
114
+ end
115
+ end
116
+
117
+ def makeGraph
118
+ @loadedConfig.referencedConfigs.each do |projName, configs|
119
+ configs.each do |config|
120
+ block = Blocks::ALL_BLOCKS[config.qname]
121
+ addDependencies(block, config)
122
+ end
123
+ end
124
+ Blocks::ALL_BLOCKS.each do |name,block|
125
+ block.dependencies.uniq!
126
+ block.childs.uniq!
127
+ block.parents.uniq!
128
+ end
129
+ end
130
+
131
+ def convert2bb
132
+ @loadedConfig.referencedConfigs.each do |projName, configs|
133
+ configs.each do |config|
134
+ block = Blocks::ALL_BLOCKS[config.qname]
112
135
 
113
136
  addSteps(block, block.startupSteps, config.startupSteps)
114
137
  addSteps(block, block.exitSteps, config.exitSteps)
@@ -141,9 +164,7 @@ module Bake
141
164
  end
142
165
  end
143
166
 
144
- if not Bake.options.project# and not Bake.options.filename
145
- addDependencies(block, config.dependency)
146
- end
167
+
147
168
 
148
169
  end
149
170
  end
@@ -284,6 +305,8 @@ module Bake
284
305
 
285
306
  @@linkBlock = 0
286
307
 
308
+ makeBlocks
309
+ makeGraph
287
310
  convert2bb
288
311
 
289
312
  Blocks::Show.includes if Bake.options.show_includes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bake-toolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.10.3
4
+ version: 2.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Schaal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-06 00:00:00.000000000 Z
11
+ date: 2015-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rtext