bake-toolkit 2.43.2 → 2.44.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c22655498af78bdc67ccc09fbef5b58e487721ae
4
- data.tar.gz: 1514cc96151e219720ba14f099cae4546411eb95
3
+ metadata.gz: 3661ce41b15cb95daa7e30356c5436621bb9b9d8
4
+ data.tar.gz: 58ada38722104cc9f3a83348fa839428ffadc648
5
5
  SHA512:
6
- metadata.gz: 2d558d5127cbc6f3ef92404f1eeb07dc97dfa16b6e44b70a5f81a10ae7bf8ec925bd95f6aae4d027a8a37265e59b940e2919cfeb5534f736031e4d5276c2263b
7
- data.tar.gz: 73367bbb2a99a2d81d09770f1561df774c28ac16608e51f39884d9aa141374f80c9cd69fff0d7b02bd56724046b5f87ff0bec7eb7fca0e77b0e05090f9138a97
6
+ metadata.gz: 5a95bb26915962630ba32e6693cfb7caa611b7ff3f729f8993d5c882a51587486ffbbe8be2e6ad90aaebf86b67a9ef78ee52ddde5827720ff17f43f5bab14173
7
+ data.tar.gz: 75f577c43f0d7ffc103e425cd33d86965bf8ad138c0c5697a2e4adb85731b064f7b6aaf45567969b1bc43f96d529eaec8759b3069deee35b3f7103a0a63c26ca
@@ -7,6 +7,7 @@ require 'bake/options/usage'
7
7
  require 'bake/options/create'
8
8
  require 'common/options/finder'
9
9
  require 'common/root'
10
+ require 'common/crc32'
10
11
 
11
12
  module Bake
12
13
 
@@ -22,7 +23,7 @@ module Bake
22
23
  attr_reader :main_dir, :project, :filename, :main_project_name, :buildDirDelimiter, :dot, :cc2j_filename # String
23
24
  attr_reader :include_filter, :exclude_filter, :adapt # String List
24
25
  attr_reader :conversion_info, :stopOnFirstError, :clean, :rebuild, :show_includes, :show_includes_and_defines, :projectPaths, :qac, :dry, :syncedOutput, :debug_threads, :skipBuildingLine # Boolean
25
- attr_reader :linkOnly, :compileOnly, :no_autodir, :clobber, :docu, :debug, :prepro, :oldLinkOrder, :prebuild, :printTime, :json, :wparse # Boolean
26
+ attr_reader :linkOnly, :compileOnly, :no_autodir, :clobber, :docu, :debug, :prepro, :oldLinkOrder, :prebuild, :printTime, :json, :wparse, :caseSensitivityCheck # Boolean
26
27
  attr_reader :threads, :socket # Fixnum
27
28
  attr_reader :vars, :include_filter_args # map
28
29
  attr_reader :verbose
@@ -34,6 +35,7 @@ module Bake
34
35
  def initialize(argv)
35
36
  super(argv)
36
37
 
38
+ @caseSensitivityCheck = Bake::Utils::OS.windows?
37
39
  @skipBuildingLine = false
38
40
  @debug_threads = false
39
41
  @dry = false
@@ -115,6 +117,7 @@ module Bake
115
117
  add_option(["--debug-threads" ], lambda { @debug_threads = true })
116
118
  add_option(["--set" ], lambda { |x| set_set(x) })
117
119
  add_option(["-nb" ], lambda { @skipBuildingLine = true })
120
+ add_option(["--no-case-check" ], lambda { @caseSensitivityCheck = false })
118
121
 
119
122
  add_option(["--clobber" ], lambda { @clobber = true; @clean = true })
120
123
  add_option(["--ignore-cache", "--ignore_cache" ], lambda { @nocache = true })
@@ -141,6 +144,8 @@ module Bake
141
144
 
142
145
  add_option(["--dry" ], lambda { @dry = true })
143
146
 
147
+ add_option(["--crc32" ], lambda { |x| CRC32.printAndExit(x) })
148
+
144
149
  add_option(["--version" ], lambda { Bake::Usage.version })
145
150
  add_option(["--list", "--show_configs" ], lambda { @showConfigs = true })
146
151
  add_option(["--compilation-db" ], lambda { |x,dummy| @cc2j_filename = (x ? x : "compilation-db.json" )})
@@ -30,6 +30,7 @@ module Bake
30
30
  puts " --link-only Only link executables - doesn't update objects and archives or start PreSteps and PostSteps."
31
31
  puts " Forces executables to be relinked."
32
32
  puts " --compile-only Only the compile steps are executed, equivalent to -f '.'"
33
+ puts " --no-case-check Disables case-sensitivity-check of included header files (only relative paths on Windows are checked)."
33
34
  puts " --generate-doc Builds docu instead of compiling sources."
34
35
  puts " --ignore-cache Rereads the original meta files - usefull if workspace structure has been changed."
35
36
  puts " -j <num> Set NUMBER of parallel compiled files (default is 8)."
@@ -57,6 +58,7 @@ module Bake
57
58
  puts " --compilation-db [<fn>] Writes compilation information into filename fn in json format, default for fn is compilation-db.json"
58
59
  puts " --create exe|lib|custom Creates a project with exe, lib or custom template"
59
60
  puts " --nb Suppresses the lines \"**** Building x of y: name (config) ****"
61
+ puts " --crc32 <string> Calulates the CRC32 of string (0x4C11DB7, init 0, final xor 0, input and result not reflected), used for Uid variable calculation"
60
62
  puts " --link-2-17 DEPRECATED: Using link order of libraries which was used until bake 2.17"
61
63
  puts " --build_ DEPRECATED: build directories will be build_<name> instead of build/<name>"
62
64
  puts " --version Print version."
data/lib/bake/subst.rb CHANGED
@@ -188,6 +188,16 @@ module Bake
188
188
  substStr << @@configName
189
189
  elsif var == "ToolchainName" and defined?@@toolchainName
190
190
  substStr << @@toolchainName
191
+ # elsif var == "PathToMainProject"
192
+ # substStr << File.rel_from_to_project(@@config.parent.get_project_dir, Bake.options.main_dir, false)
193
+ # elsif var == "PathToMainProjectSanitized"
194
+ # path = File.rel_from_to_project(@@config.parent.get_project_dir, Bake.options.main_dir, false).gsub(/\.\./,"__").gsub(/:/,"")
195
+ # path = path[1..-1] if path.start_with?("/")
196
+ # substStr << path
197
+ # elsif var == "UidNoMainConfigName"
198
+ # substStr << CRC32.calc(File.rel_from_to_project(@@config.parent.get_project_dir, Bake.options.main_dir, false))
199
+ elsif var == "Uid"
200
+ substStr << CRC32.calc(File.rel_from_to_project(@@config.parent.get_project_dir, Bake.options.main_dir, false) + "," + Bake.options.build_config)
191
201
  elsif var == "ProjectName"
192
202
  substStr << @@projName
193
203
  elsif var == "FilterArguments" or (splittedVar.length == 2 and splittedVar[0] == "FilterArguments")
@@ -15,7 +15,7 @@ module Bake
15
15
  gccVersionStr = getGccRawVersionInfo()
16
16
  splitted = gccVersionStr.split("\n")[0].split(" ")
17
17
  vSubstr = splitted[splitted.length-1]
18
- vSubstr = splitted[splitted.length-2] if ((!vSubstr.include?".") && (splitted.length >= 2))
18
+ vSubstr = splitted[splitted.length-2] if ((!vSubstr.include?(".") || vSubstr.match(/[a-z\-]/)) && (splitted.length >= 2))
19
19
  return vSubstr.split(".").map { |v| v.to_i }
20
20
  end
21
21
 
data/lib/blocks/block.rb CHANGED
@@ -201,14 +201,14 @@ module Bake
201
201
  return true if @config.step
202
202
  else
203
203
  return true if @config.files.length > 0
204
- if ((@config.startupSteps && @config.startupSteps.step.length > 0) ||
204
+ end
205
+ if ((@config.startupSteps && @config.startupSteps.step.length > 0) ||
205
206
  (@config.preSteps && @config.preSteps.step.length > 0) ||
206
207
  (@config.postSteps && @config.postSteps.step.length > 0) ||
207
208
  (@config.exitSteps && @config.exitSteps.step.length > 0) ||
208
209
  (@config.cleanSteps && @config.cleanSteps.step.length > 0) ||
209
210
  (@config.preSteps && @config.preSteps.step.length > 0))
210
211
  return true
211
- end
212
212
  end
213
213
  return false
214
214
  end
@@ -280,7 +280,7 @@ module Bake
280
280
  depResult = true
281
281
  dependencies.each do |dep|
282
282
  depResult = (ALL_BLOCKS[dep].send(method) and depResult)
283
- break if not depResult and Bake.options.stopOnFirstError
283
+ break if (!depResult) && Bake.options.stopOnFirstError
284
284
  end
285
285
  return depResult
286
286
  end
@@ -303,10 +303,9 @@ module Bake
303
303
  return if blockAbort?(true)
304
304
 
305
305
  tmpstdout = Thread.current[:tmpStdout].nil? ? nil : Thread.current[:tmpStdout].dup
306
- @@threads << Thread.new(Thread.current[:stdout], Thread.current[:errorStream], tmpstdout, steps) { |outStr, errStr, tmpStdout, steps|
306
+ @@threads << Thread.new(Thread.current[:stdout], tmpstdout, steps) { |outStr, tmpStdout, steps|
307
307
  STDOUT.puts "DEBUG_THREADS: Started: #{Thread.current.object_id} (#{@projectName}, #{@config.name})" if Bake.options.debug_threads
308
308
  Thread.current[:stdout] = outStr
309
- Thread.current[:errorStream] = errStr
310
309
  Thread.current[:tmpStdout] = tmpStdout
311
310
  Thread.current[:steps] = steps
312
311
  exceptionOccured = false
@@ -352,11 +351,9 @@ module Bake
352
351
  def callSteps(method)
353
352
  @config.writeEnvVars()
354
353
  Thread.current[:lastCommand] = nil
355
-
356
354
  allSteps = (preSteps + mainSteps + postSteps)
357
355
 
358
356
  # check if we have to delay the output (if the last step of this block is not in a thread)
359
- # todo: sync output if commandline and makefile!!!!!!!!!!!!!!!!!!!
360
357
  @outputStep = nil
361
358
  allSteps.each { |step| @outputStep = independent?(method, step) ? step : nil }
362
359
  while !allSteps.empty?
@@ -379,13 +376,14 @@ module Bake
379
376
  break if blockAbort?(@result)
380
377
  end
381
378
  ensure
382
- SyncOut.stopStream(@result) if lastStep == @outputStep if Bake.options.syncedOutput
379
+ SyncOut.stopStream() if lastStep == @outputStep if Bake.options.syncedOutput
383
380
  end
384
381
  }
385
382
  else
386
383
  step = allSteps.shift
387
384
  Blocks::Block::waitForAllThreads()
388
385
  @result = executeStep(step, method) if @result
386
+ @outputStep = nil if !@result && blockAbort?(@result)
389
387
  end
390
388
  return @result if blockAbort?(@result)
391
389
  end
@@ -412,7 +410,6 @@ module Bake
412
410
  return @result && depResult if blockAbort?(depResult)
413
411
 
414
412
  Bake::IDEInterface.instance.set_build_info(@projectName, @configName)
415
-
416
413
  begin
417
414
  SyncOut.mutex.synchronize do
418
415
  @outputStep = nil
@@ -440,14 +437,14 @@ module Bake
440
437
  ensure
441
438
  if Bake.options.syncedOutput
442
439
  if !@outputStep
443
- SyncOut.stopStream(@result)
440
+ SyncOut.stopStream()
444
441
  else
445
442
  SyncOut.discardStreams()
446
443
  end
447
444
  end
448
445
  end
449
446
 
450
- return (depResult && @result)# && @@delayed_result)
447
+ return (depResult && @result)
451
448
  end
452
449
 
453
450
  def clean
@@ -7,6 +7,41 @@ require 'common/utils'
7
7
  require 'bake/toolchain/colorizing_formatter'
8
8
  require 'bake/config/loader'
9
9
 
10
+
11
+ begin
12
+ require 'Win32API'
13
+
14
+ def longname short_name
15
+ max_path = 1024
16
+ long_name = " " * max_path
17
+ lfn_size = Win32API.new("kernel32", "GetLongPathName", ['P','P','L'],'L').call(short_name, long_name, max_path)
18
+ return long_name[0..lfn_size-1]
19
+ end
20
+
21
+ def shortname long_name
22
+ max_path = 1024
23
+ short_name = " " * max_path
24
+ lfn_size = Win32API.new("kernel32", "GetShortPathName", ['P','P','L'],'L').call(long_name, short_name, max_path)
25
+ return short_name[0..lfn_size-1]
26
+ end
27
+
28
+ def realname file
29
+ longname(shortname(file))
30
+ end
31
+
32
+ rescue LoadError
33
+
34
+ def realname file
35
+ file
36
+ end
37
+
38
+ end
39
+
40
+
41
+
42
+
43
+
44
+
10
45
  module Bake
11
46
 
12
47
  module Blocks
@@ -220,7 +255,7 @@ module Bake
220
255
  Dir.mutex.synchronize do
221
256
  Dir.chdir(@projectDir) do
222
257
  incList = Compile.read_depfile(dep_filename, @projectDir, @block.tcs[:COMPILER][:DEP_FILE_SINGLE_LINE]) if incList.nil?
223
- Compile.write_depfile(incList, dep_filename_conv, @projectDir)
258
+ Compile.write_depfile(source, incList, dep_filename_conv, @projectDir)
224
259
  end
225
260
  end
226
261
 
@@ -274,18 +309,34 @@ module Bake
274
309
  end
275
310
 
276
311
  # todo: move to toolchain util file
277
- def self.write_depfile(deps, dep_filename_conv, projDir)
312
+ def self.write_depfile(source, deps, dep_filename_conv, projDir)
278
313
  if deps && !Bake.options.dry
314
+ wrongCase = false
279
315
  begin
280
316
  File.open(dep_filename_conv, 'wb') do |f|
281
317
  deps.each do |dep|
282
318
  f.puts(dep)
319
+
320
+ if (Bake.options.caseSensitivityCheck)
321
+ if dep.length<2 || dep[1] != ":"
322
+ real = realname(dep)
323
+ if dep != real && dep.upcase == real.upcase
324
+ Bake.formatter.printError("Case sensitivity error in #{source}:\n included: #{dep}\n realname: #{real}")
325
+ wrongCase = true
326
+ end
327
+ end
328
+ end
329
+
283
330
  end
284
331
  end
285
332
  rescue Exception
286
333
  Bake.formatter.printWarning("Could not write '#{dep_filename_conv}'", projDir)
287
334
  return nil
288
335
  end
336
+ if wrongCase
337
+ FileUtils.rm_f(dep_filename_conv)
338
+ raise SystemCommandFailed.new
339
+ end
289
340
  end
290
341
  end
291
342
 
@@ -301,12 +352,11 @@ module Bake
301
352
  compileJobs = Multithread::Jobs.new(@source_files) do |jobs|
302
353
  while source = jobs.get_next_or_nil do
303
354
 
304
- if ((jobs.failed || !Blocks::Block.delayed_result) and Bake.options.stopOnFirstError) or Bake::IDEInterface.instance.get_abort
355
+ if (jobs.failed && Bake.options.stopOnFirstError) or Bake::IDEInterface.instance.get_abort
305
356
  break
306
357
  end
307
358
 
308
359
  SyncOut.startStream()
309
- SyncOut.reset_errors()
310
360
  begin
311
361
  Thread.current[:filelist] = Set.new if Bake.options.filelist
312
362
  Thread.current[:lastCommand] = nil
@@ -326,8 +376,7 @@ module Bake
326
376
 
327
377
  jobs.set_failed if not result
328
378
  ensure
329
- SyncOut.stopStream(result)
330
- SyncOut.flush_errors()
379
+ SyncOut.stopStream()
331
380
  end
332
381
  self.mutex.synchronize do
333
382
  fileListBlock.merge(Thread.current[:filelist]) if Bake.options.filelist
@@ -417,22 +466,22 @@ module Bake
417
466
  @source_files = []
418
467
 
419
468
  exclude_files = Set.new
420
- @config.excludeFiles.each do |p|
421
- Dir.glob_dir(p.name, @projectDir).each {|f| exclude_files << f}
469
+ @config.excludeFiles.each do |pr|
470
+ Dir.glob_dir(pr.name, @projectDir).each {|f| exclude_files << f}
422
471
  end
423
472
 
424
473
  source_files = Set.new
425
474
  @config.files.each do |sources|
426
- p = sources.name
427
- p = p[2..-1] if p.start_with?"./"
475
+ pr = sources.name
476
+ pr = pr[2..-1] if pr.start_with?"./"
428
477
 
429
- res = Dir.glob_dir(p, @projectDir).sort
478
+ res = Dir.glob_dir(pr, @projectDir).sort
430
479
  if res.length == 0 and cleaning == false
431
- if not p.include?"*" and not p.include?"?"
432
- Bake.formatter.printError("Source file '#{p}' not found", sources)
480
+ if not pr.include?"*" and not pr.include?"?"
481
+ Bake.formatter.printError("Source file '#{pr}' not found", sources)
433
482
  raise SystemCommandFailed.new
434
483
  elsif Bake.options.verbose >= 1
435
- Bake.formatter.printInfo("Source file pattern '#{p}' does not match to any file", sources)
484
+ Bake.formatter.printInfo("Source file pattern '#{pr}' does not match to any file", sources)
436
485
  end
437
486
  end
438
487
  res.each do |f|
@@ -125,7 +125,7 @@ module Bake
125
125
 
126
126
  check_config_file()
127
127
  ensure
128
- SyncOut.stopStream(success)
128
+ SyncOut.stopStream()
129
129
  end
130
130
  end
131
131
 
@@ -0,0 +1,57 @@
1
+ require 'common/exit_helper'
2
+
3
+ module Bake
4
+
5
+ class CRC32
6
+ TABLE = [
7
+ 0x00000000, 0x04C11DB7, 0x09823B6E, 0x0D4326D9, 0x130476DC, 0x17C56B6B, 0x1A864DB2, 0x1E475005,
8
+ 0x2608EDB8, 0x22C9F00F, 0x2F8AD6D6, 0x2B4BCB61, 0x350C9B64, 0x31CD86D3, 0x3C8EA00A, 0x384FBDBD,
9
+ 0x4C11DB70, 0x48D0C6C7, 0x4593E01E, 0x4152FDA9, 0x5F15ADAC, 0x5BD4B01B, 0x569796C2, 0x52568B75,
10
+ 0x6A1936C8, 0x6ED82B7F, 0x639B0DA6, 0x675A1011, 0x791D4014, 0x7DDC5DA3, 0x709F7B7A, 0x745E66CD,
11
+ 0x9823B6E0, 0x9CE2AB57, 0x91A18D8E, 0x95609039, 0x8B27C03C, 0x8FE6DD8B, 0x82A5FB52, 0x8664E6E5,
12
+ 0xBE2B5B58, 0xBAEA46EF, 0xB7A96036, 0xB3687D81, 0xAD2F2D84, 0xA9EE3033, 0xA4AD16EA, 0xA06C0B5D,
13
+ 0xD4326D90, 0xD0F37027, 0xDDB056FE, 0xD9714B49, 0xC7361B4C, 0xC3F706FB, 0xCEB42022, 0xCA753D95,
14
+ 0xF23A8028, 0xF6FB9D9F, 0xFBB8BB46, 0xFF79A6F1, 0xE13EF6F4, 0xE5FFEB43, 0xE8BCCD9A, 0xEC7DD02D,
15
+ 0x34867077, 0x30476DC0, 0x3D044B19, 0x39C556AE, 0x278206AB, 0x23431B1C, 0x2E003DC5, 0x2AC12072,
16
+ 0x128E9DCF, 0x164F8078, 0x1B0CA6A1, 0x1FCDBB16, 0x018AEB13, 0x054BF6A4, 0x0808D07D, 0x0CC9CDCA,
17
+ 0x7897AB07, 0x7C56B6B0, 0x71159069, 0x75D48DDE, 0x6B93DDDB, 0x6F52C06C, 0x6211E6B5, 0x66D0FB02,
18
+ 0x5E9F46BF, 0x5A5E5B08, 0x571D7DD1, 0x53DC6066, 0x4D9B3063, 0x495A2DD4, 0x44190B0D, 0x40D816BA,
19
+ 0xACA5C697, 0xA864DB20, 0xA527FDF9, 0xA1E6E04E, 0xBFA1B04B, 0xBB60ADFC, 0xB6238B25, 0xB2E29692,
20
+ 0x8AAD2B2F, 0x8E6C3698, 0x832F1041, 0x87EE0DF6, 0x99A95DF3, 0x9D684044, 0x902B669D, 0x94EA7B2A,
21
+ 0xE0B41DE7, 0xE4750050, 0xE9362689, 0xEDF73B3E, 0xF3B06B3B, 0xF771768C, 0xFA325055, 0xFEF34DE2,
22
+ 0xC6BCF05F, 0xC27DEDE8, 0xCF3ECB31, 0xCBFFD686, 0xD5B88683, 0xD1799B34, 0xDC3ABDED, 0xD8FBA05A,
23
+ 0x690CE0EE, 0x6DCDFD59, 0x608EDB80, 0x644FC637, 0x7A089632, 0x7EC98B85, 0x738AAD5C, 0x774BB0EB,
24
+ 0x4F040D56, 0x4BC510E1, 0x46863638, 0x42472B8F, 0x5C007B8A, 0x58C1663D, 0x558240E4, 0x51435D53,
25
+ 0x251D3B9E, 0x21DC2629, 0x2C9F00F0, 0x285E1D47, 0x36194D42, 0x32D850F5, 0x3F9B762C, 0x3B5A6B9B,
26
+ 0x0315D626, 0x07D4CB91, 0x0A97ED48, 0x0E56F0FF, 0x1011A0FA, 0x14D0BD4D, 0x19939B94, 0x1D528623,
27
+ 0xF12F560E, 0xF5EE4BB9, 0xF8AD6D60, 0xFC6C70D7, 0xE22B20D2, 0xE6EA3D65, 0xEBA91BBC, 0xEF68060B,
28
+ 0xD727BBB6, 0xD3E6A601, 0xDEA580D8, 0xDA649D6F, 0xC423CD6A, 0xC0E2D0DD, 0xCDA1F604, 0xC960EBB3,
29
+ 0xBD3E8D7E, 0xB9FF90C9, 0xB4BCB610, 0xB07DABA7, 0xAE3AFBA2, 0xAAFBE615, 0xA7B8C0CC, 0xA379DD7B,
30
+ 0x9B3660C6, 0x9FF77D71, 0x92B45BA8, 0x9675461F, 0x8832161A, 0x8CF30BAD, 0x81B02D74, 0x857130C3,
31
+ 0x5D8A9099, 0x594B8D2E, 0x5408ABF7, 0x50C9B640, 0x4E8EE645, 0x4A4FFBF2, 0x470CDD2B, 0x43CDC09C,
32
+ 0x7B827D21, 0x7F436096, 0x7200464F, 0x76C15BF8, 0x68860BFD, 0x6C47164A, 0x61043093, 0x65C52D24,
33
+ 0x119B4BE9, 0x155A565E, 0x18197087, 0x1CD86D30, 0x029F3D35, 0x065E2082, 0x0B1D065B, 0x0FDC1BEC,
34
+ 0x3793A651, 0x3352BBE6, 0x3E119D3F, 0x3AD08088, 0x2497D08D, 0x2056CD3A, 0x2D15EBE3, 0x29D4F654,
35
+ 0xC5A92679, 0xC1683BCE, 0xCC2B1D17, 0xC8EA00A0, 0xD6AD50A5, 0xD26C4D12, 0xDF2F6BCB, 0xDBEE767C,
36
+ 0xE3A1CBC1, 0xE760D676, 0xEA23F0AF, 0xEEE2ED18, 0xF0A5BD1D, 0xF464A0AA, 0xF9278673, 0xFDE69BC4,
37
+ 0x89B8FD09, 0x8D79E0BE, 0x803AC667, 0x84FBDBD0, 0x9ABC8BD5, 0x9E7D9662, 0x933EB0BB, 0x97FFAD0C,
38
+ 0xAFB010B1, 0xAB710D06, 0xA6322BDF, 0xA2F33668, 0xBCB4666D, 0xB8757BDA, 0xB5365D03, 0xB1F740B4
39
+ ].freeze()
40
+
41
+ def self.calc(str)
42
+ res = 0
43
+ str.each_char do |c|
44
+ lookupTableIndex = c[0].ord ^ (res >> 24)
45
+ res = TABLE[lookupTableIndex] ^ (res << 8) % 0x100000000
46
+ end
47
+ return sprintf("%08X", res)
48
+ end
49
+
50
+ def self.printAndExit(str)
51
+ puts calc(str)
52
+ ExitHelper.exit(0)
53
+ end
54
+
55
+ end
56
+
57
+ end
@@ -97,42 +97,29 @@ class SyncOut
97
97
  end
98
98
  end
99
99
 
100
- def self.stopStream(result=true)
101
- s = Thread.current[:stdout]
102
- return if s.nil?
103
- Thread.current[:stdout] = Thread.current[:tmpStdout] ? Thread.current[:tmpStdout].pop : nil
104
-
105
- if s.string.length > 0
106
- mutex.synchronize do
107
- if !result && Bake.options.stopOnFirstError
108
- Thread.current[:errorStream] << s.string
109
- else
110
- convertConfNum(s.string)
111
- puts s.string
112
- end
100
+ def self.stopStream()
101
+ mutex.synchronize do
102
+
103
+ s = Thread.current[:stdout]
104
+ return if s.nil?
105
+ Thread.current[:stdout] = Thread.current[:tmpStdout] ? Thread.current[:tmpStdout].pop : nil
106
+
107
+ if s.string.length > 0
108
+ convertConfNum(s.string)
109
+ puts s.string
110
+ s.reopen("")
113
111
  end
114
- s.reopen("")
112
+
115
113
  end
114
+
116
115
  end
117
116
 
118
117
 
119
118
  def self.discardStreams()
120
- Thread.current[:stdout] = Thread.current[:tmpStdout] ? Thread.current[:tmpStdout].pop : nil
121
- end
122
-
123
- def self.flush_errors
124
- if !Thread.current[:errorStream].empty?
125
- mutex.synchronize do
126
- convertConfNum(Thread.current[:errorStream])
127
- puts Thread.current[:errorStream]
128
- reset_errors
129
- end
119
+ mutex.synchronize do
120
+ Thread.current[:stdout] = Thread.current[:tmpStdout] ? Thread.current[:tmpStdout].pop : nil
130
121
  end
131
122
  end
132
123
 
133
- def self.reset_errors
134
- Thread.current[:errorStream] = ""
135
- end
136
-
137
124
  end
138
125
 
@@ -1,7 +1,7 @@
1
1
  module Bake
2
2
  class Version
3
3
  def self.number
4
- "2.43.2"
4
+ "2.44.0"
5
5
  end
6
6
 
7
7
  def self.printBakeVersion(ry = "")
@@ -24,9 +24,8 @@ module Bake
24
24
  @jobs = jobs
25
25
  @threads = []
26
26
  nr_of_threads.times do
27
- @threads << ::Thread.new(Thread.current[:stdout], Thread.current[:errorStream]) do |outStr, errStr|
27
+ @threads << ::Thread.new(Thread.current[:stdout]) do |outStr|
28
28
  Thread.current[:stdout] = outStr
29
- Thread.current[:errorStream] = errStr
30
29
  begin
31
30
  Jobs.incThread()
32
31
  block.call(self)
data/lib/tocxx.rb CHANGED
@@ -371,7 +371,6 @@ module Bake
371
371
  result = true
372
372
  startBlocks.each do |block|
373
373
  begin
374
- SyncOut.reset_errors
375
374
  result = callBlock(block, method) && result
376
375
  ensure
377
376
  Blocks::Block::waitForAllThreads()
@@ -554,7 +553,6 @@ module Bake
554
553
  rescue AbortException
555
554
  ideAbort = true
556
555
  end
557
- SyncOut.flush_errors
558
556
  result = callBlocks(startBlocks, :exits, true) && result
559
557
 
560
558
  if ideAbort || Bake::IDEInterface.instance.get_abort
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.43.2
4
+ version: 2.44.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: 2018-02-15 00:00:00.000000000 Z
11
+ date: 2018-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rtext
@@ -225,6 +225,7 @@ files:
225
225
  - lib/blocks/showIncludes.rb
226
226
  - lib/common/abortException.rb
227
227
  - lib/common/cleanup.rb
228
+ - lib/common/crc32.rb
228
229
  - lib/common/exit_helper.rb
229
230
  - lib/common/ext/dir.rb
230
231
  - lib/common/ext/file.rb