bake-toolkit 2.52.1 → 2.53.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
  SHA256:
3
- metadata.gz: 6a2d5a5936542b4a6224264cff05e7dda54bf6059f1b5e6f064eda0f1ce81016
4
- data.tar.gz: 3f8e2cc7f126644ee2d64bb4f48efbd51a2b96072b1502310b9ea58cd4885faf
3
+ metadata.gz: c30b262873a0ace0c66d50fd465eadc5831efab3aec86c1581449326894f53b8
4
+ data.tar.gz: bde9aa588f9735d37088bc3954ac6bec2c605665d6a472fcf9c1859898db5cb0
5
5
  SHA512:
6
- metadata.gz: d9927f571614e0761f479ce586da3d8ea75a2c17cbee2bfda8f8be6188d112579231cd56fd3adad64691a2a2c386235edecd359176977a8e4c936a4c26943dec
7
- data.tar.gz: 6343ec2501a1d9db66daa120eb7785c2b8345d00b0c982a2addb8710012f1051b0ee5d5f2da87178d5a67fa87a6084cee52bc37042865e9cf619ed45e7838d85
6
+ metadata.gz: 6ff3239869804870c5d108cd5f43ca476749b0effc7fa4eccb909c0307f35f0fee6ba43b74c27590f0f764f1346ab9ce781601d46055c2c3bc48f71ec30512e8
7
+ data.tar.gz: 8df0c9092ce5073e0fe3d431edf8431c2e30ec958a9c5170650a62426db764749cd85119d1c1b6bd48c08a1e15f2e1d7d44380034981575befa9d56301885555
@@ -198,6 +198,10 @@ module Bake
198
198
  end
199
199
 
200
200
  def merge(type)
201
+ if (@child.strict == true) && !(@child.class == @parent.class)
202
+ return
203
+ end
204
+
201
205
  s = StringIO.new
202
206
  ser = RText::Serializer.new(Language)
203
207
 
@@ -207,7 +211,7 @@ module Bake
207
211
  s.puts "\n>>>> parent <<<<"
208
212
  ser.serialize(@parent, s)
209
213
  end
210
-
214
+
211
215
  if (type == :remove)
212
216
  removeChilds(@child, @parent)
213
217
  elsif (type == :replace)
@@ -279,6 +279,7 @@ module Bake
279
279
  has_attr 'name', String, :defaultValueLiteral => ""
280
280
  has_attr 'extends', String, :defaultValueLiteral => ""
281
281
  has_attr 'type', String, :defaultValueLiteral => ""
282
+ has_attr 'strict', Boolean, :defaultValueLiteral => "false"
282
283
  has_attr 'project', String, :defaultValueLiteral => ""
283
284
  has_attr 'private', Boolean, :defaultValueLiteral => "false"
284
285
  has_attr 'mergeInc', String, :defaultValueLiteral => ""
data/lib/bake/subst.rb CHANGED
@@ -45,6 +45,18 @@ module Bake
45
45
  end
46
46
  end
47
47
 
48
+ def self.empty(elem, var, mandatory, str)
49
+ if mandatory
50
+ Bake.formatter.printError("Variable '$(#{var})' cannot be substituted, because #{str}", elem ? elem : @@config)
51
+ ExitHelper.exit(1)
52
+ else
53
+ if Bake.options.verbose > 0
54
+ msg = "Substitute variable '$(#{var})' with empty string, because #{str}"
55
+ Bake.formatter.printInfo(msg, elem ? elem : @@config)
56
+ end
57
+ end
58
+ end
59
+
48
60
  def self.itute(config, projName, isMainProj, toolchain, referencedConfigs, configTcMap)
49
61
  @@lazy = true
50
62
  @@config = config
@@ -168,9 +180,17 @@ module Bake
168
180
 
169
181
  substStr << str[posSubst..posStart-1] if posStart>0
170
182
 
171
- var = str[posStart+2..posEnd-1]
183
+ var = str[posStart+2..posEnd-1].strip
184
+ mandatory = false
172
185
 
173
186
  splittedVar = var.split(",").map { |v| v.strip() }
187
+ splittedVar.each_with_index do |s,i|
188
+ if s.end_with?("!")
189
+ mandatory = true
190
+ splittedVar[i] = s[0..-2]
191
+ end
192
+ end
193
+ var = splittedVar.join(", ")
174
194
 
175
195
  if Bake.options.vars.has_key?(var)
176
196
  substStr << Bake.options.vars[var]
@@ -215,10 +235,7 @@ module Bake
215
235
  config = configs.first
216
236
  substStr << File.rel_from_to_project(@@projDir,config.get_project_dir,false)
217
237
  else
218
- if Bake.options.verbose > 0
219
- msg = "Substitute variable '$(#{var})' with empty string, because project #{out_proj_name} not found"
220
- Bake.formatter.printInfo(msg, elem ? elem : @@config)
221
- end
238
+ empty(elem, var, mandatory, "project #{out_proj_name} not found")
222
239
  end
223
240
  end
224
241
  elsif var == "OutputDir" or (splittedVar.length == 3 and splittedVar[0] == "OutputDir")
@@ -271,22 +288,13 @@ module Bake
271
288
  end
272
289
  end
273
290
  else
274
- if Bake.options.verbose > 0
275
- msg = "Substitute variable '$(#{var})' with empty string, because config #{out_conf_name} not found for project #{out_proj_name}"
276
- Bake.formatter.printInfo(msg, elem ? elem : @@config)
277
- end
291
+ empty(elem, var, mandatory, "config #{out_conf_name} not found for project #{out_proj_name}")
278
292
  end
279
293
  else
280
- if Bake.options.verbose > 0
281
- msg = "Substitute variable '$(#{var})' with empty string, because project #{out_proj_name} not found"
282
- Bake.formatter.printInfo(msg, elem ? elem : @@config)
283
- end
294
+ empty(elem, var, mandatory, "project #{out_proj_name} not found")
284
295
  end
285
296
  elsif splittedVar.length > 1 and splittedVar[0] == "OutputDir"
286
- if Bake.options.verbose > 0
287
- msg = "Substitute variable '$(#{var})' with empty string, because syntax of complex variable OutputDir is not $(OutputDir,<project name>,<config name>)"
288
- Bake.formatter.printInfo(msg, elem ? elem : @@config)
289
- end
297
+ empty(elem, var, mandatory, "syntax of complex variable OutputDir is not $(OutputDir,<project name>,<config name>)")
290
298
  elsif var == "Time"
291
299
  substStr << Time.now.to_s
292
300
  elsif var == "Hostname"
@@ -321,13 +329,8 @@ module Bake
321
329
  elsif ENV[var]
322
330
  substStr << ENV[var]
323
331
  else
324
- if Bake.options.verbose >= 2 && !(["ASMCompilerPrefix", "CompilerPrefix", "ArchiverPrefix", "LinkerPrefix"].include?(var))
325
- msg = "Substitute variable '$(#{var})' with empty string"
326
- if elem
327
- Bake.formatter.printInfo(msg, elem)
328
- else
329
- Bake.formatter.printInfo(msg + " in the toolchain", @@config)
330
- end
332
+ if !(["ASMCompilerPrefix", "CompilerPrefix", "ArchiverPrefix", "LinkerPrefix"].include?(var))
333
+ empty(elem, var, mandatory, "it's not set") if mandatory || Bake.options.verbose >= 2
331
334
  end
332
335
  end
333
336
 
@@ -29,8 +29,14 @@ module Bake
29
29
  CLANG_CHAIN[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
30
30
  CLANG_CHAIN[:COMPILER][:ASM][:PREFIX] = Provider.default[:COMPILER][:ASM][:PREFIX]
31
31
 
32
- CLANG_CHAIN[:ARCHIVER][:COMMAND] = "ar"
33
- CLANG_CHAIN[:ARCHIVER][:ARCHIVE_FLAGS] = "r"
32
+ if Bake::Utils::OS::name == "Mac"
33
+ CLANG_CHAIN[:ARCHIVER][:COMMAND] = "libtool"
34
+ CLANG_CHAIN[:ARCHIVER][:ARCHIVE_FLAGS] = "-static -o"
35
+ else
36
+ CLANG_CHAIN[:ARCHIVER][:COMMAND] = "ar"
37
+ CLANG_CHAIN[:ARCHIVER][:ARCHIVE_FLAGS] = "r"
38
+ end
39
+
34
40
  CLANG_CHAIN[:ARCHIVER][:ERROR_PARSER] = gccCompilerErrorParser
35
41
 
36
42
  CLANG_CHAIN[:LINKER][:COMMAND] = "clang++"
data/lib/bakery/toBake.rb CHANGED
@@ -45,7 +45,7 @@ module Bake
45
45
  next unless bp.proj
46
46
  contents = File.open(bp.proj, "r") {|io| io.read }
47
47
  contents.split("\n").each do |c|
48
- res = c.match("\\s*(Library|Executable|Custom){1}Config\\s*\"?([\\w:-]*)\"?")
48
+ res = c.gsub(/#.*/,"").match("\\s*(Library|Executable|Custom){1}Config\\s*\"?([\\w:-]*)\"?")
49
49
  if res
50
50
  if res[2].match(bp.conf) != nil
51
51
  toBuild << BuildPattern.new(bp.proj, res[2], bp.args, nil)
@@ -249,6 +249,8 @@ module Bake
249
249
  srcFilePath = File.join(@projectDir, srcFilePath)
250
250
  cmdJson[source] = srcFilePath
251
251
  end
252
+ puts cmdJson
253
+ cmdJson.gsub!("\"" , "\\\"")
252
254
  Blocks::CC2J << { :directory => @projectDir, :command => cmdJson, :file => srcFilePath }
253
255
  end
254
256
 
@@ -1,7 +1,7 @@
1
1
  module Bake
2
2
  class Version
3
3
  def self.number
4
- "2.52.1"
4
+ "2.53.0"
5
5
  end
6
6
 
7
7
  def self.printBakeVersion(ry = "")
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.52.1
4
+ version: 2.53.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: 2019-07-23 00:00:00.000000000 Z
11
+ date: 2019-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rtext