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 +4 -4
- data/lib/bake/options/options.rb +6 -1
- data/lib/bake/options/usage.rb +2 -0
- data/lib/bake/subst.rb +10 -0
- data/lib/bake/toolchain/gcc.rb +1 -1
- data/lib/blocks/block.rb +8 -11
- data/lib/blocks/compile.rb +63 -14
- data/lib/blocks/library.rb +1 -1
- data/lib/common/crc32.rb +57 -0
- data/lib/common/ext/stdout.rb +15 -28
- data/lib/common/version.rb +1 -1
- data/lib/multithread/job.rb +1 -2
- data/lib/tocxx.rb +0 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3661ce41b15cb95daa7e30356c5436621bb9b9d8
|
4
|
+
data.tar.gz: 58ada38722104cc9f3a83348fa839428ffadc648
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a95bb26915962630ba32e6693cfb7caa611b7ff3f729f8993d5c882a51587486ffbbe8be2e6ad90aaebf86b67a9ef78ee52ddde5827720ff17f43f5bab14173
|
7
|
+
data.tar.gz: 75f577c43f0d7ffc103e425cd33d86965bf8ad138c0c5697a2e4adb85731b064f7b6aaf45567969b1bc43f96d529eaec8759b3069deee35b3f7103a0a63c26ca
|
data/lib/bake/options/options.rb
CHANGED
@@ -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" )})
|
data/lib/bake/options/usage.rb
CHANGED
@@ -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")
|
data/lib/bake/toolchain/gcc.rb
CHANGED
@@ -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
|
-
|
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
|
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],
|
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(
|
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(
|
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)
|
447
|
+
return (depResult && @result)
|
451
448
|
end
|
452
449
|
|
453
450
|
def clean
|
data/lib/blocks/compile.rb
CHANGED
@@ -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 (
|
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(
|
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 |
|
421
|
-
Dir.glob_dir(
|
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
|
-
|
427
|
-
|
475
|
+
pr = sources.name
|
476
|
+
pr = pr[2..-1] if pr.start_with?"./"
|
428
477
|
|
429
|
-
res = Dir.glob_dir(
|
478
|
+
res = Dir.glob_dir(pr, @projectDir).sort
|
430
479
|
if res.length == 0 and cleaning == false
|
431
|
-
if not
|
432
|
-
Bake.formatter.printError("Source file '#{
|
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 '#{
|
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|
|
data/lib/blocks/library.rb
CHANGED
data/lib/common/crc32.rb
ADDED
@@ -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
|
data/lib/common/ext/stdout.rb
CHANGED
@@ -97,42 +97,29 @@ class SyncOut
|
|
97
97
|
end
|
98
98
|
end
|
99
99
|
|
100
|
-
def self.stopStream(
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
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
|
-
|
112
|
+
|
115
113
|
end
|
114
|
+
|
116
115
|
end
|
117
116
|
|
118
117
|
|
119
118
|
def self.discardStreams()
|
120
|
-
|
121
|
-
|
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
|
|
data/lib/common/version.rb
CHANGED
data/lib/multithread/job.rb
CHANGED
@@ -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]
|
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.
|
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-
|
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
|