bake-toolkit 2.53.0 → 2.54.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 +4 -4
- data/lib/bake/model/metamodel.rb +5 -0
- data/lib/bake/options/options.rb +11 -4
- data/lib/bake/options/usage.rb +5 -2
- data/lib/bake/util.rb +1 -1
- data/lib/blocks/compile.rb +7 -0
- data/lib/blocks/executable.rb +9 -1
- data/lib/blocks/has_execute_command.rb +35 -35
- data/lib/blocks/library.rb +6 -1
- data/lib/common/options/parser.rb +9 -6
- data/lib/common/version.rb +1 -1
- data/lib/tocxx.rb +85 -22
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 13e4226c82faa0439951dd701951b5af74bceabbf73c185791fa46d70afc6835
|
|
4
|
+
data.tar.gz: 54c74b7f0daf417c1581340ffdfdea95d72a1e516b4df6d622639be4d06480ae
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6b2241a42ca4b0430c6e408a3ed03fdcbd2aad0d378046e48486dd7256f49dc59007dca65c32dbd7aa9374a8da019293cf21de5632d519d18475849b6c700445
|
|
7
|
+
data.tar.gz: e6d9bbd765ac4767a78106a18465d648dc85300444f407971971ebe8b6c0f5692b9d554f13c1faa76bb3858636596fb2fea59ba554664869a8e1ae070bec9250
|
data/lib/bake/model/metamodel.rb
CHANGED
|
@@ -268,6 +268,10 @@ module Bake
|
|
|
268
268
|
has_attr 'name', String, :defaultValueLiteral => ""
|
|
269
269
|
end
|
|
270
270
|
|
|
271
|
+
class ArtifactExtension < ModelElement
|
|
272
|
+
has_attr 'name', String, :defaultValueLiteral => "default"
|
|
273
|
+
end
|
|
274
|
+
|
|
271
275
|
class Set < ModelElement
|
|
272
276
|
has_attr 'name', String, :defaultValueLiteral => ""
|
|
273
277
|
has_attr 'value', String, :defaultValueLiteral => ""
|
|
@@ -309,6 +313,7 @@ module Bake
|
|
|
309
313
|
contains_many 'files', Files, 'parent'
|
|
310
314
|
contains_many 'excludeFiles', ExcludeFiles, 'parent'
|
|
311
315
|
contains_one 'artifactName', ArtifactName, 'parent'
|
|
316
|
+
contains_one 'artifactExtension', ArtifactExtension, 'parent'
|
|
312
317
|
end
|
|
313
318
|
|
|
314
319
|
class ExecutableConfig < BuildConfig_INTERNAL
|
data/lib/bake/options/options.rb
CHANGED
|
@@ -20,7 +20,7 @@ module Bake
|
|
|
20
20
|
|
|
21
21
|
class Options < Parser
|
|
22
22
|
attr_accessor :build_config, :nocache, :analyze, :eclipseOrder, :envToolchain, :showConfigs
|
|
23
|
-
attr_reader :main_dir, :project, :filename, :main_project_name, :buildDirDelimiter, :dot, :cc2j_filename # String
|
|
23
|
+
attr_reader :main_dir, :project, :filename, :main_project_name, :buildDirDelimiter, :dot, :dotFilename, :cc2j_filename # String
|
|
24
24
|
attr_reader :include_filter, :exclude_filter, :adapt # String List
|
|
25
25
|
attr_reader :conversion_info, :stopOnFirstError, :clean, :rebuild, :show_includes, :show_includes_and_defines, :projectPaths, :qac, :dry, :syncedOutput, :debug_threads, :skipBuildingLine # Boolean
|
|
26
26
|
attr_reader :linkOnly, :compileOnly, :no_autodir, :clobber, :docu, :debug, :prepro, :prebuild, :printTime, :json, :wparse, :caseSensitivityCheck, :fileCmd, :profiling # Boolean
|
|
@@ -33,6 +33,8 @@ module Bake
|
|
|
33
33
|
attr_reader :roots # Root array
|
|
34
34
|
attr_reader :diabCaseCheck
|
|
35
35
|
attr_reader :defines
|
|
36
|
+
attr_reader :dev_features
|
|
37
|
+
attr_reader :dotShowProjOnly
|
|
36
38
|
|
|
37
39
|
|
|
38
40
|
def initialize(argv)
|
|
@@ -46,7 +48,8 @@ module Bake
|
|
|
46
48
|
@qac = false
|
|
47
49
|
@projectPaths = false
|
|
48
50
|
@wparse = false
|
|
49
|
-
@dot =
|
|
51
|
+
@dot = false
|
|
52
|
+
@dotFilename = nil
|
|
50
53
|
@prebuild = false
|
|
51
54
|
@printTime = false
|
|
52
55
|
@buildDirDelimiter = "/"
|
|
@@ -92,6 +95,8 @@ module Bake
|
|
|
92
95
|
@fileCmd = false
|
|
93
96
|
@dotAndCompile = false
|
|
94
97
|
@show_roots = false
|
|
98
|
+
@dev_features = []
|
|
99
|
+
@dotShowProjOnly = false
|
|
95
100
|
|
|
96
101
|
add_option(["-b", "" ], lambda { |x| set_build_config(x) })
|
|
97
102
|
add_option(["-m" ], lambda { |x| @main_dir = x })
|
|
@@ -114,6 +119,7 @@ module Bake
|
|
|
114
119
|
add_option(["--file-list", "--file_list" ], lambda { @filelist = Set.new })
|
|
115
120
|
add_option(["--filter-paths" ], lambda { @projectPaths = true })
|
|
116
121
|
add_option(["--qac" ], lambda { @qac = true })
|
|
122
|
+
add_option(["-Z" ], lambda { |x| @dev_features << x })
|
|
117
123
|
|
|
118
124
|
add_option(["--generate-doc", "--docu" ], lambda { @docu = true })
|
|
119
125
|
|
|
@@ -133,8 +139,9 @@ module Bake
|
|
|
133
139
|
add_option(["--socket" ], lambda { |x| @socket = String === x ? x.to_i : x })
|
|
134
140
|
add_option(["--toolchain-info", "--toolchain_info" ], lambda { |x| ToolchainInfo.showToolchain(x) })
|
|
135
141
|
add_option(["--toolchain-names", "--toolchain_names" ], lambda { ToolchainInfo.showToolchainList })
|
|
136
|
-
add_option(["--dot", ], lambda { |x| @dot = x; @dotAndCompile = false })
|
|
137
|
-
add_option(["--dotc", ], lambda { |x| @dot = x; @dotAndCompile = true })
|
|
142
|
+
add_option(["--dot", ], lambda { |x,dummy| @dot = true; @dotFilename = x; @dotAndCompile = false })
|
|
143
|
+
add_option(["--dotc", ], lambda { |x,dummy| @dot = true; @dotFilename = x; @dotAndCompile = true })
|
|
144
|
+
add_option(["--dot-project-level", ], lambda { @dot = true; @dotShowProjOnly = true })
|
|
138
145
|
add_option(["--do", "--include_filter" ], lambda { |x| set_filter(x) })
|
|
139
146
|
add_option(["--omit", "--exclude_filter" ], lambda { |x| @exclude_filter << x })
|
|
140
147
|
add_option(["--abs-paths", "--show_abs_paths" ], lambda { @consoleOutput_fullnames = true })
|
data/lib/bake/options/usage.rb
CHANGED
|
@@ -39,8 +39,10 @@ module Bake
|
|
|
39
39
|
puts " --socket <num> Set SOCKET for sending errors, receiving commands, etc. - used by e.g. Eclipse."
|
|
40
40
|
puts " --toolchain-info <name> Prints default values of a toolchain."
|
|
41
41
|
puts " --toolchain-names Prints available toolchains."
|
|
42
|
-
puts " --dot <filename>
|
|
43
|
-
puts "
|
|
42
|
+
puts " --dot [<filename>] Creates a .dot file of the config dependencies, compilation does not take place."
|
|
43
|
+
puts " If filename is omitted, a file <main config name>.dot in main project dir is created."
|
|
44
|
+
puts " --dotc [<filename>] Same as --dot, but with compilation."
|
|
45
|
+
puts " --dot-project-level Dependencies for dot on project level, not on config level."
|
|
44
46
|
puts " --do <name>[=<arg>] Includes elements with this filter name (can be used multiple times)."
|
|
45
47
|
puts " Optional arguments which can be accessed in Project.meta via $(FilterArguments, <name>)."
|
|
46
48
|
puts " 'PRE', 'POST', 'STARTUP', 'EXIT' or 'CLEAN' includes all according steps."
|
|
@@ -72,6 +74,7 @@ module Bake
|
|
|
72
74
|
puts " --dry No changes to the file system, no external processes like the compiler are called."
|
|
73
75
|
puts " Exceptions: some special command line options like --create or --dot and 'cmd's of 'Set's."
|
|
74
76
|
puts " --install-doc If installed, --doc opens the offline docu, otherwise it's online. You may need super user rights to enhance the bake-toolkit installation."
|
|
77
|
+
puts " -Z <dev feature> Used internally for development purposes. Can be changed without prior notice."
|
|
75
78
|
puts " -h, --help Print this help."
|
|
76
79
|
puts " --license Print the license."
|
|
77
80
|
puts " --debug Print out backtraces in some cases - used only for debugging bake."
|
data/lib/bake/util.rb
CHANGED
|
@@ -31,7 +31,7 @@ def adjustFlags(orgStr, flags)
|
|
|
31
31
|
|
|
32
32
|
if f.add != ""
|
|
33
33
|
Bake::Utils::flagSplit(f.add, false).each do |a|
|
|
34
|
-
orgSplitted << a unless orgSplitted.any? { |o| o==a }
|
|
34
|
+
orgSplitted << a # allow duplicate flags # unless orgSplitted.any? { |o| o==a }
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
|
data/lib/blocks/compile.rb
CHANGED
|
@@ -549,6 +549,13 @@ module Bake
|
|
|
549
549
|
pr = pr[2..-1] if pr.start_with?"./"
|
|
550
550
|
|
|
551
551
|
res = Dir.glob_dir(pr, @projectDir).sort
|
|
552
|
+
regExSearch = pr.gsub("*",".*").gsub("?",".")
|
|
553
|
+
if !res.all?{|r| r.match(/#{regExSearch}/)}
|
|
554
|
+
if res.all?{|r| r.match(/#{regExSearch}/i)}
|
|
555
|
+
Bake.formatter.printError("Case sensitivity error for source file '#{pr}'", sources)
|
|
556
|
+
raise SystemCommandFailed.new
|
|
557
|
+
end
|
|
558
|
+
end
|
|
552
559
|
if res.length == 0 and cleaning == false
|
|
553
560
|
if not pr.include?"*" and not pr.include?"?"
|
|
554
561
|
Bake.formatter.printError("Source file '#{pr}' not found", sources)
|
data/lib/blocks/executable.rb
CHANGED
|
@@ -24,7 +24,15 @@ module Bake
|
|
|
24
24
|
if not @config.artifactName.nil? and @config.artifactName.name != ""
|
|
25
25
|
baseFilename = @config.artifactName.name
|
|
26
26
|
else
|
|
27
|
-
|
|
27
|
+
if !@config.artifactExtension.nil? && @config.artifactExtension.name != "default"
|
|
28
|
+
extension = ".#{@config.artifactExtension.name}"
|
|
29
|
+
else
|
|
30
|
+
extension = Bake::Toolchain.outputEnding(@block.tcs)
|
|
31
|
+
end
|
|
32
|
+
baseFilename = "#{@projectName}#{extension}"
|
|
33
|
+
end
|
|
34
|
+
if !baseFilename.include?(".")
|
|
35
|
+
baseFilename += Bake::Toolchain.outputEnding(@block.tcs)
|
|
28
36
|
end
|
|
29
37
|
@exe_name ||= File.join([@block.output_dir, baseFilename])
|
|
30
38
|
end
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
module Bake
|
|
2
|
-
|
|
3
|
-
module Blocks
|
|
4
|
-
|
|
5
|
-
module HasExecuteCommand
|
|
6
|
-
attr_reader :config
|
|
7
|
-
|
|
8
|
-
def executeCommand(commandLine, ignoreStr=nil, exitCodeArray = [0], echo = "on")
|
|
9
|
-
if Bake.options.dry
|
|
10
|
-
puts commandLine
|
|
11
|
-
return true
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
puts commandLine if (Bake.options.verbose >= 1 && echo != "off") || Bake.options.verbose >= 3
|
|
15
|
-
puts "(executed in '#{@projectDir}')" if Bake.options.verbose >= 3
|
|
16
|
-
cmd_result = false
|
|
17
|
-
output = ""
|
|
18
|
-
begin
|
|
19
|
-
cmd_result, output = ProcessHelper.run([commandLine], true, true, nil, exitCodeArray, @projectDir)
|
|
20
|
-
rescue Exception=>e
|
|
21
|
-
puts e.message
|
|
22
|
-
puts e.backtrace if Bake.options.debug
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
if (cmd_result == false and (not ignoreStr or not output.include?ignoreStr))
|
|
26
|
-
Bake.formatter.printError("Command \"#{commandLine}\" failed", @config)
|
|
27
|
-
puts "(executed in '#{@projectDir}')" if Bake.options.verbose >= 3
|
|
28
|
-
raise SystemCommandFailed.new
|
|
29
|
-
end
|
|
30
|
-
return cmd_result
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
end
|
|
1
|
+
module Bake
|
|
2
|
+
|
|
3
|
+
module Blocks
|
|
4
|
+
|
|
5
|
+
module HasExecuteCommand
|
|
6
|
+
attr_reader :config
|
|
7
|
+
|
|
8
|
+
def executeCommand(commandLine, ignoreStr=nil, exitCodeArray = [0], echo = "on")
|
|
9
|
+
if Bake.options.dry
|
|
10
|
+
puts commandLine
|
|
11
|
+
return true
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
puts commandLine if (Bake.options.verbose >= 1 && echo != "off") || Bake.options.verbose >= 3
|
|
15
|
+
puts "(executed in '#{@projectDir}')" if Bake.options.verbose >= 3
|
|
16
|
+
cmd_result = false
|
|
17
|
+
output = ""
|
|
18
|
+
begin
|
|
19
|
+
cmd_result, output = ProcessHelper.run([commandLine], true, true, nil, exitCodeArray, @projectDir)
|
|
20
|
+
rescue Exception=>e
|
|
21
|
+
puts e.message
|
|
22
|
+
puts e.backtrace if Bake.options.debug
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
if (cmd_result == false and (not ignoreStr or not output.include?ignoreStr))
|
|
26
|
+
Bake.formatter.printError("Command \"#{commandLine}\" failed", @config)
|
|
27
|
+
puts "(executed in '#{@projectDir}')" if Bake.options.verbose >= 3
|
|
28
|
+
raise SystemCommandFailed.new
|
|
29
|
+
end
|
|
30
|
+
return cmd_result
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
36
|
end
|
data/lib/blocks/library.rb
CHANGED
|
@@ -21,7 +21,12 @@ module Bake
|
|
|
21
21
|
if not @config.artifactName.nil? and @config.artifactName.name != ""
|
|
22
22
|
baseFilename = @config.artifactName.name
|
|
23
23
|
else
|
|
24
|
-
|
|
24
|
+
if !@config.artifactExtension.nil? && @config.artifactExtension.name != "default"
|
|
25
|
+
extension = ".#{@config.artifactExtension.name}"
|
|
26
|
+
else
|
|
27
|
+
extension =".a"
|
|
28
|
+
end
|
|
29
|
+
baseFilename = "lib#{@projectName}#{extension}"
|
|
25
30
|
end
|
|
26
31
|
@archive_name ||= File.join([@block.output_dir, baseFilename])
|
|
27
32
|
end
|
|
@@ -39,11 +39,11 @@ module Bake
|
|
|
39
39
|
return [block, arg]
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
-
def
|
|
42
|
+
def num_parameter?(argument)
|
|
43
43
|
b, inPlaceArg = get_block(argument)
|
|
44
|
-
return
|
|
45
|
-
return
|
|
46
|
-
b.parameters.length
|
|
44
|
+
return 0 unless b
|
|
45
|
+
return 0 if inPlaceArg
|
|
46
|
+
return b.parameters.length
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
def parse_internal(ignore_invalid, subOptions = nil)
|
|
@@ -55,11 +55,14 @@ module Bake
|
|
|
55
55
|
|
|
56
56
|
# used in bake config, must be passed from bakery to bake
|
|
57
57
|
if subOptions and subOptions.valid?arg
|
|
58
|
-
|
|
58
|
+
num = subOptions.num_parameter?(arg)
|
|
59
|
+
if num > 0
|
|
59
60
|
if pos+1 < @argv.length and @argv[pos+1][0] != "-"
|
|
60
61
|
pos = pos + 1
|
|
61
62
|
else
|
|
62
|
-
|
|
63
|
+
if num != 2 # default
|
|
64
|
+
raise "Argument for option #{arg} missing"
|
|
65
|
+
end
|
|
63
66
|
end
|
|
64
67
|
end
|
|
65
68
|
end
|
data/lib/common/version.rb
CHANGED
data/lib/tocxx.rb
CHANGED
|
@@ -358,16 +358,13 @@ module Bake
|
|
|
358
358
|
end
|
|
359
359
|
|
|
360
360
|
def makeDot
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
file.write "digraph \"#{Bake.options.main_project_name}_#{Bake.options.build_config}\" {\n\n"
|
|
369
|
-
|
|
370
|
-
file.write " concentrate = true\n\n"
|
|
361
|
+
if Bake.options.dotFilename
|
|
362
|
+
filename = Bake.options.dotFilename
|
|
363
|
+
else
|
|
364
|
+
filename = Bake.options.main_dir + "/" + Bake.options.build_config + ".dot"
|
|
365
|
+
end
|
|
366
|
+
File.open(filename, 'w') do |file|
|
|
367
|
+
puts "Creating #{filename}"
|
|
371
368
|
|
|
372
369
|
onlyProjectName = nil
|
|
373
370
|
onlyConfigName = nil
|
|
@@ -377,6 +374,25 @@ module Bake
|
|
|
377
374
|
onlyConfigName = splitted[1] if splitted.length == 2
|
|
378
375
|
end
|
|
379
376
|
|
|
377
|
+
file.write "# Generated by bake\n"
|
|
378
|
+
file.write "# Example to show the graph: dot #{File.basename(filename)} -Tpng -o out.png\n"
|
|
379
|
+
file.write "# Example to reduce the graph: tred #{File.basename(filename)} | dot -Tpng -o out.png\n\n"
|
|
380
|
+
|
|
381
|
+
if onlyProjectName
|
|
382
|
+
starting = onlyProjectName
|
|
383
|
+
if onlyConfigName
|
|
384
|
+
ending = Bake.options.dotShowProjOnly ? "" : "_"+onlyConfigName
|
|
385
|
+
else
|
|
386
|
+
ending = ""
|
|
387
|
+
end
|
|
388
|
+
else
|
|
389
|
+
starting = Bake.options.main_project_name
|
|
390
|
+
ending = Bake.options.dotShowProjOnly ? "" : "_"+Bake.options.build_config
|
|
391
|
+
end
|
|
392
|
+
file.write "digraph \"#{starting}#{ending}\" {\n\n"
|
|
393
|
+
|
|
394
|
+
file.write " concentrate = true\n\n"
|
|
395
|
+
|
|
380
396
|
if onlyProjectName
|
|
381
397
|
if not @referencedConfigs.include? onlyProjectName
|
|
382
398
|
Bake.formatter.printError("Error: project #{onlyProjectName} not found")
|
|
@@ -392,6 +408,7 @@ module Bake
|
|
|
392
408
|
|
|
393
409
|
foundProjs = {}
|
|
394
410
|
@referencedConfigs.each do |projName, configs|
|
|
411
|
+
depsToProj = []
|
|
395
412
|
configs.each do |config|
|
|
396
413
|
config.dependency.each do |d|
|
|
397
414
|
if onlyProjectName
|
|
@@ -402,26 +419,45 @@ module Bake
|
|
|
402
419
|
next if not leftSide and not rightSide
|
|
403
420
|
end
|
|
404
421
|
end
|
|
405
|
-
|
|
422
|
+
if Bake.options.dotShowProjOnly
|
|
423
|
+
next if depsToProj.include?d.name
|
|
424
|
+
next if d.name == projName
|
|
425
|
+
c1 = ""
|
|
426
|
+
c2 = ""
|
|
427
|
+
else
|
|
428
|
+
c1 = ",#{config.name}"
|
|
429
|
+
c2 = ",#{d.config}"
|
|
430
|
+
end
|
|
431
|
+
file.write " \"#{Blocks::ALL_BLOCKS[config.qname].projectDir}#{c1}\" -> "+
|
|
432
|
+
"\"#{Blocks::ALL_BLOCKS[d.name+','+d.config].projectDir}#{c2}\"\n"
|
|
433
|
+
depsToProj << d.name
|
|
406
434
|
|
|
407
435
|
foundProjs[config.parent.name] = [] if not foundProjs.include? config.parent.name
|
|
408
436
|
foundProjs[config.parent.name] << config.name if not foundProjs[config.parent.name].include? config.name
|
|
409
437
|
foundProjs[d.name] = [] if not foundProjs.include? d.name
|
|
410
|
-
foundProjs[d.name] << d.config if not foundProjs[
|
|
438
|
+
foundProjs[d.name] << d.config if not foundProjs[d.name].include? d.config
|
|
411
439
|
end
|
|
412
440
|
end
|
|
413
441
|
end
|
|
414
442
|
file.write "\n"
|
|
415
443
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
444
|
+
if Bake.options.dotShowProjOnly
|
|
445
|
+
@referencedConfigs.each do |projName, configs|
|
|
446
|
+
next if Bake.options.project and not foundProjs.include?projName
|
|
447
|
+
file.write " \"#{Blocks::ALL_BLOCKS[configs[0].qname].projectDir}\" [label = \"#{projName}\"]\n"
|
|
448
|
+
end
|
|
449
|
+
else
|
|
450
|
+
@referencedConfigs.each do |projName, configs|
|
|
451
|
+
next if Bake.options.project and not foundProjs.include?projName
|
|
452
|
+
dirName = Blocks::ALL_BLOCKS[configs[0].qname].projectDir
|
|
453
|
+
file.write " subgraph \"cluster_#{dirName}\" {\n"
|
|
454
|
+
file.write " label =\"#{projName}\"\n"
|
|
455
|
+
configs.each do |config|
|
|
456
|
+
next if Bake.options.project and not foundProjs[projName].include? config.name
|
|
457
|
+
file.write " \"#{dirName},#{config.name}\" [label = \"#{config.name}\", style = filled, fillcolor = #{config.color}]\n"
|
|
458
|
+
end
|
|
459
|
+
file.write " }\n\n"
|
|
423
460
|
end
|
|
424
|
-
file.write " }\n\n"
|
|
425
461
|
end
|
|
426
462
|
|
|
427
463
|
file.write "}\n"
|
|
@@ -661,12 +697,39 @@ module Bake
|
|
|
661
697
|
makeIncs
|
|
662
698
|
puts "Profiling #{Time.now - $timeStart}: make uniq..." if Bake.options.profiling
|
|
663
699
|
makeUniq
|
|
700
|
+
puts "Profiling #{Time.now - $timeStart}: convert to building blocks..." if Bake.options.profiling
|
|
701
|
+
convert2bb
|
|
664
702
|
if Bake.options.dot
|
|
665
703
|
puts "Profiling #{Time.now - $timeStart}: make dot..." if Bake.options.profiling
|
|
666
704
|
makeDot
|
|
667
705
|
end
|
|
668
|
-
|
|
669
|
-
|
|
706
|
+
|
|
707
|
+
|
|
708
|
+
metadata_json = Bake.options.dev_features.first { |x| x.start_with?("metadata=") }
|
|
709
|
+
if metadata_json
|
|
710
|
+
metadata_file = metadata_json[9..-1]
|
|
711
|
+
mainBlock = Blocks::ALL_BLOCKS[@mainConfig.parent.name + "," + @mainConfig.name]
|
|
712
|
+
if Metamodel::ExecutableConfig === mainBlock.config || Metamodel::LibraryConfig === mainBlock.config
|
|
713
|
+
File.open(metadata_file, "w") do |f|
|
|
714
|
+
f.puts "{"
|
|
715
|
+
f.puts " \"module_path\": \"#{mainBlock.projectDir}\","
|
|
716
|
+
f.puts " \"config_name\": \"#{@mainConfig.name}\","
|
|
717
|
+
Dir.chdir(mainBlock.projectDir) do
|
|
718
|
+
f.puts " \"artifact\": \"#{File.expand_path(mainBlock.mainSteps.last.calcArtifactName)}\","
|
|
719
|
+
end
|
|
720
|
+
f.puts " \"compiler_c\": \"#{@defaultToolchain[:COMPILER][:C][:COMMAND]}\","
|
|
721
|
+
f.puts " \"compiler_cxx\": \"#{@defaultToolchain[:COMPILER][:CPP][:COMMAND]}\","
|
|
722
|
+
f.puts " \"flags_c\": \"#{@defaultToolchain[:COMPILER][:C][:FLAGS]}\","
|
|
723
|
+
f.puts " \"flags_cxx\": \"#{@defaultToolchain[:COMPILER][:CPP][:FLAGS]}\""
|
|
724
|
+
f.puts "}"
|
|
725
|
+
end
|
|
726
|
+
puts "File #{metadata_file} written."
|
|
727
|
+
ExitHelper.exit(0)
|
|
728
|
+
else
|
|
729
|
+
Bake.formatter.printError("Error: dev-feature metadata is only for LibraryConfig for ExecutableConfig.")
|
|
730
|
+
ExitHelper.exit(1)
|
|
731
|
+
end
|
|
732
|
+
end
|
|
670
733
|
|
|
671
734
|
ensure
|
|
672
735
|
if Bake.options.show_includes || Bake.options.show_includes_and_defines
|
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.54.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-
|
|
11
|
+
date: 2019-10-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rtext
|