bake-toolkit 2.67.0 → 2.68.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/bin/bakery +1 -0
- data/lib/adapt/config/loader.rb +164 -156
- data/lib/bake/cache.rb +2 -1
- data/lib/bake/config/loader.rb +65 -54
- data/lib/bake/libElement.rb +6 -0
- data/lib/bake/model/loader.rb +178 -178
- data/lib/bake/model/metamodel.rb +13 -9
- data/lib/bake/subst.rb +8 -2
- data/lib/blocks/block.rb +3 -0
- data/lib/blocks/commandLine.rb +44 -44
- data/lib/blocks/compile.rb +16 -15
- data/lib/blocks/executable.rb +4 -0
- data/lib/blocks/library.rb +4 -0
- data/lib/common/version.rb +1 -1
- data/lib/tocxx.rb +2 -2
- 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: d2d635c3cc903018e92f111403d9a1450fa76c82cabd5d1159afbfe1269c3b1e
|
4
|
+
data.tar.gz: a4ecb9b50ead0faaf4e3a2ac37d3d295886bb8d3e6a221f41da69e74ad805474
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5d974d79c37da1ced9fa7ae03273a5aacd27531d2e080259225df1884b646ffc7cd2b0b2658011e80446eba81617eef4072474515ee66d500e7fbbdcb87f81f
|
7
|
+
data.tar.gz: 998f741470db5a771b26356519f58bc904a0ac26e838aca5f100e4c2f73ef646fe09aa0ca8f96f5b08c075edc3e6dd699c136462a9cab9f8708d286cf882d5e8
|
data/bin/bakery
CHANGED
data/lib/adapt/config/loader.rb
CHANGED
@@ -1,156 +1,164 @@
|
|
1
|
-
require_relative '../../bake/model/loader'
|
2
|
-
require_relative '../../bake/config/loader'
|
3
|
-
require_relative '../../bake/config/checks'
|
4
|
-
|
5
|
-
module Bake
|
6
|
-
|
7
|
-
class AdaptConfig
|
8
|
-
attr_reader :referencedConfigs
|
9
|
-
|
10
|
-
@@filenames = []
|
11
|
-
|
12
|
-
def self.filenames
|
13
|
-
@@filenames
|
14
|
-
end
|
15
|
-
|
16
|
-
def loadProjMeta(filename, filenum)
|
17
|
-
|
18
|
-
Bake::Configs::Checks.symlinkCheck(filename)
|
19
|
-
Bake::Configs::Checks.sanityFolderName(filename)
|
20
|
-
|
21
|
-
f = @loader.load(filename)
|
22
|
-
|
23
|
-
if f.root_elements.any? { |re| ! Metamodel::Adapt === re }
|
24
|
-
Bake.formatter.printError("Config file must have only 'Adapt' elements as roots", filename)
|
25
|
-
ExitHelper.exit(1)
|
26
|
-
end
|
27
|
-
|
28
|
-
f.root_elements.each do |a|
|
29
|
-
Bake::Config::checkVer(a.requiredBakeVersion)
|
30
|
-
end
|
31
|
-
|
32
|
-
configs = []
|
33
|
-
f.root_elements.each { |re| configs.concat(re.getConfig) }
|
34
|
-
AdaptConfig::checkSyntax(configs, filename)
|
35
|
-
configs
|
36
|
-
end
|
37
|
-
|
38
|
-
def self.checkSyntax(configs, filename, isLocalAdapt = false)
|
39
|
-
Bake::Configs::Checks::commonMetamodelCheck(configs, filename, true)
|
40
|
-
configs.each do |c|
|
41
|
-
if not c.extends.empty?
|
42
|
-
Bake.formatter.printError("Attribute 'extends' must not be used in adapt config.",c)
|
43
|
-
ExitHelper.exit(1)
|
44
|
-
end
|
45
|
-
if c.name.empty?
|
46
|
-
Bake.formatter.printError("Configs must be named.",c)
|
47
|
-
ExitHelper.exit(1)
|
48
|
-
end
|
49
|
-
if c.project.empty?
|
50
|
-
Bake.formatter.printError("The corresponding project must be specified.",c)
|
51
|
-
ExitHelper.exit(1)
|
52
|
-
end if !isLocalAdapt
|
53
|
-
if not ["replace", "remove", "extend", "push_front"].include?c.type
|
54
|
-
Bake.formatter.printError("Allowed types are 'replace', 'remove', 'extend' and 'push_front'.",c)
|
55
|
-
ExitHelper.exit(1)
|
56
|
-
end
|
57
|
-
if not ["", "yes", "no", "all"].include?c.mergeInc
|
58
|
-
Bake.formatter.printError("Allowed modes are 'all', 'yes', 'no' and unset.",c)
|
59
|
-
ExitHelper.exit(1)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def getPotentialAdaptionProjects()
|
65
|
-
potentialAdapts = []
|
66
|
-
Bake.options.roots.each do |root|
|
67
|
-
r = root.dir
|
68
|
-
if (r.length == 3 && r.include?(":/"))
|
69
|
-
r = r + Bake.options.main_project_name # glob would not work otherwise on windows (ruby bug?)
|
70
|
-
end
|
71
|
-
Bake.options.adapt.each do |a|
|
72
|
-
adaptBaseName = File.expand_path(a + "/Adapt.meta")
|
73
|
-
potentialAdapts << adaptBaseName if File.exists?adaptBaseName
|
74
|
-
end
|
75
|
-
potentialAdapts.concat(Root.search_to_depth(r, "Adapt.meta", root.depth))
|
76
|
-
end
|
77
|
-
|
78
|
-
potentialAdapts.uniq
|
79
|
-
end
|
80
|
-
|
81
|
-
def chooseProjectFilenames(potentialAdapts)
|
82
|
-
@@filenames = []
|
83
|
-
Bake.options.adapt.each do |
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
end
|
1
|
+
require_relative '../../bake/model/loader'
|
2
|
+
require_relative '../../bake/config/loader'
|
3
|
+
require_relative '../../bake/config/checks'
|
4
|
+
|
5
|
+
module Bake
|
6
|
+
|
7
|
+
class AdaptConfig
|
8
|
+
attr_reader :referencedConfigs
|
9
|
+
|
10
|
+
@@filenames = []
|
11
|
+
|
12
|
+
def self.filenames
|
13
|
+
@@filenames
|
14
|
+
end
|
15
|
+
|
16
|
+
def loadProjMeta(filename, filenum)
|
17
|
+
|
18
|
+
Bake::Configs::Checks.symlinkCheck(filename)
|
19
|
+
Bake::Configs::Checks.sanityFolderName(filename)
|
20
|
+
|
21
|
+
f = @loader.load(filename)
|
22
|
+
|
23
|
+
if f.root_elements.any? { |re| ! Metamodel::Adapt === re }
|
24
|
+
Bake.formatter.printError("Config file must have only 'Adapt' elements as roots", filename)
|
25
|
+
ExitHelper.exit(1)
|
26
|
+
end
|
27
|
+
|
28
|
+
f.root_elements.each do |a|
|
29
|
+
Bake::Config::checkVer(a.requiredBakeVersion)
|
30
|
+
end
|
31
|
+
|
32
|
+
configs = []
|
33
|
+
f.root_elements.each { |re| configs.concat(re.getConfig) }
|
34
|
+
AdaptConfig::checkSyntax(configs, filename)
|
35
|
+
configs
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.checkSyntax(configs, filename, isLocalAdapt = false)
|
39
|
+
Bake::Configs::Checks::commonMetamodelCheck(configs, filename, true)
|
40
|
+
configs.each do |c|
|
41
|
+
if not c.extends.empty?
|
42
|
+
Bake.formatter.printError("Attribute 'extends' must not be used in adapt config.",c)
|
43
|
+
ExitHelper.exit(1)
|
44
|
+
end
|
45
|
+
if c.name.empty?
|
46
|
+
Bake.formatter.printError("Configs must be named.",c)
|
47
|
+
ExitHelper.exit(1)
|
48
|
+
end
|
49
|
+
if c.project.empty?
|
50
|
+
Bake.formatter.printError("The corresponding project must be specified.",c)
|
51
|
+
ExitHelper.exit(1)
|
52
|
+
end if !isLocalAdapt
|
53
|
+
if not ["replace", "remove", "extend", "push_front"].include?c.type
|
54
|
+
Bake.formatter.printError("Allowed types are 'replace', 'remove', 'extend' and 'push_front'.",c)
|
55
|
+
ExitHelper.exit(1)
|
56
|
+
end
|
57
|
+
if not ["", "yes", "no", "all"].include?c.mergeInc
|
58
|
+
Bake.formatter.printError("Allowed modes are 'all', 'yes', 'no' and unset.",c)
|
59
|
+
ExitHelper.exit(1)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def getPotentialAdaptionProjects()
|
65
|
+
potentialAdapts = []
|
66
|
+
Bake.options.roots.each do |root|
|
67
|
+
r = root.dir
|
68
|
+
if (r.length == 3 && r.include?(":/"))
|
69
|
+
r = r + Bake.options.main_project_name # glob would not work otherwise on windows (ruby bug?)
|
70
|
+
end
|
71
|
+
Bake.options.adapt.each do |a|
|
72
|
+
adaptBaseName = File.expand_path(a.gsub(/\(.*\)/,"") + "/Adapt.meta")
|
73
|
+
potentialAdapts << adaptBaseName if File.exists?adaptBaseName
|
74
|
+
end
|
75
|
+
potentialAdapts.concat(Root.search_to_depth(r, "Adapt.meta", root.depth))
|
76
|
+
end
|
77
|
+
|
78
|
+
potentialAdapts.uniq
|
79
|
+
end
|
80
|
+
|
81
|
+
def chooseProjectFilenames(potentialAdapts)
|
82
|
+
@@filenames = []
|
83
|
+
Bake.options.adapt.each do |aComplete|
|
84
|
+
aComplete.gsub!(/\\/,"/")
|
85
|
+
a = aComplete.gsub(/\[.*\]/,"")
|
86
|
+
projFilter = aComplete.scan(/\[(.*)\]/)
|
87
|
+
if projFilter && projFilter.length > 0
|
88
|
+
projFilter = projFilter[0][0].split(";").map {|a| a.strip}
|
89
|
+
end
|
90
|
+
|
91
|
+
found = false
|
92
|
+
|
93
|
+
# from working dir
|
94
|
+
if File.exist?(a) && File.file?(a)
|
95
|
+
@@filenames << {:file => File.expand_path(a), :projs => projFilter}
|
96
|
+
found = true
|
97
|
+
end
|
98
|
+
next if found
|
99
|
+
|
100
|
+
# from main dir
|
101
|
+
Dir.chdir Bake.options.main_dir do
|
102
|
+
if File.exist?(a) && File.file?(a)
|
103
|
+
@@filenames << {:file => (Bake.options.main_dir + "/" + a), :projs => projFilter}
|
104
|
+
found = true
|
105
|
+
end
|
106
|
+
end
|
107
|
+
next if found
|
108
|
+
|
109
|
+
# from roots
|
110
|
+
Bake.options.roots.each do |root|
|
111
|
+
r = root.dir
|
112
|
+
Dir.chdir r do
|
113
|
+
if File.exist?(a) && File.file?(a)
|
114
|
+
@@filenames << {:file => (r + "/" + a), :projs => projFilter}
|
115
|
+
found = true
|
116
|
+
end
|
117
|
+
end
|
118
|
+
break if found
|
119
|
+
end
|
120
|
+
next if found
|
121
|
+
|
122
|
+
# old style
|
123
|
+
adapts = potentialAdapts.find_all { |p| p.include?("/"+a+"/Adapt.meta") or p == a+"/Adapt.meta" }
|
124
|
+
if adapts.empty?
|
125
|
+
Bake.formatter.printError("Adaption project #{a} not found")
|
126
|
+
ExitHelper.exit(1)
|
127
|
+
else
|
128
|
+
@@filenames << {:file => adapts[0], :projs => projFilter}
|
129
|
+
if (adapts.length > 1)
|
130
|
+
Bake.formatter.printWarning("Adaption project #{a} exists more than once")
|
131
|
+
chosen = " (chosen)"
|
132
|
+
adapts.each do |f|
|
133
|
+
Bake.formatter.printWarning(" #{File.dirname(f)}#{chosen}")
|
134
|
+
chosen = ""
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
end
|
141
|
+
|
142
|
+
def load()
|
143
|
+
@@filenames = []
|
144
|
+
return [] if Bake.options.adapt.empty?
|
145
|
+
|
146
|
+
@loader = Loader.new
|
147
|
+
|
148
|
+
potentialProjects = getPotentialAdaptionProjects()
|
149
|
+
chooseProjectFilenames(potentialProjects)
|
150
|
+
|
151
|
+
configs = []
|
152
|
+
@@filenames.each_with_index do |f,i|
|
153
|
+
loadProjMeta(f[:file], i+1).each do |c|
|
154
|
+
configs << {:config => c, :projs => f[:projs]}
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
return configs
|
159
|
+
end
|
160
|
+
|
161
|
+
|
162
|
+
end
|
163
|
+
|
164
|
+
end
|
data/lib/bake/cache.rb
CHANGED
@@ -95,7 +95,8 @@ module Bake
|
|
95
95
|
end
|
96
96
|
|
97
97
|
if (cache != nil)
|
98
|
-
cache.adapt_filenames.each do |
|
98
|
+
cache.adapt_filenames.each do |fHash|
|
99
|
+
f = fHash[:file]
|
99
100
|
fileExists = File.exists?(f)
|
100
101
|
puts "Cache: Checking if #{f} exists: #{fileExists}" if Bake.options.debug
|
101
102
|
if !fileExists
|
data/lib/bake/config/loader.rb
CHANGED
@@ -89,64 +89,75 @@ module Bake
|
|
89
89
|
end
|
90
90
|
|
91
91
|
# check if config has to be manipulated
|
92
|
-
@adaptConfigs.each do |
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
92
|
+
@adaptConfigs.each do |cHash|
|
93
|
+
|
94
|
+
c = cHash[:config]
|
95
|
+
|
96
|
+
projSplitted = c.project.split(";")
|
97
|
+
confSplitted = c.name.split(";")
|
98
|
+
projSplittedCmd = cHash[:projs]
|
99
|
+
|
100
|
+
projPatterns = projSplitted.map { |p| /\A#{p.gsub("*", "(\\w*)")}\z/ }
|
101
|
+
confPatterns = confSplitted.map { |p| /\A#{p.gsub("*", "(\\w*)")}\z/ }
|
102
|
+
projPatternsCmd = projSplittedCmd.map { |p| /\A#{p.gsub("*", "(\\w*)")}\z/ } if projSplittedCmd
|
103
|
+
|
104
|
+
if projSplittedCmd.empty? \
|
105
|
+
|| projPatternsCmd.any? {|p| p.match(config.parent.name) } \
|
106
|
+
|| (projName == Bake.options.main_project_name and projSplittedCmd.any? {|p| p == "__MAIN__"}) \
|
107
|
+
|| projSplittedCmd.any? {|p| p == "__ALL__"}
|
108
|
+
|
109
|
+
if projPatterns.any? {|p| p.match(config.parent.name) } \
|
110
|
+
|| (projName == Bake.options.main_project_name and projSplitted.any? {|p| p == "__MAIN__"}) \
|
111
|
+
|| projSplitted.any? {|p| p == "__ALL__"}
|
112
|
+
|
113
|
+
if confPatterns.any? {|p| p.match(config.name)} \
|
114
|
+
|| (isMain and confSplitted.any? {|p| p == "__MAIN__"}) \
|
115
|
+
|| confSplitted.any? {|p| p == "__ALL__"}
|
116
|
+
|
117
|
+
adaptHash = c.parent.getHash
|
118
|
+
|
119
|
+
configHash = {
|
120
|
+
"toolchain" => [@defaultToolchainName],
|
121
|
+
"os" => [Utils::OS.name],
|
122
|
+
"mainProject" => [@mainProjectName],
|
123
|
+
"mainConfig" => [@mainConfigName]
|
124
|
+
}
|
125
|
+
config.scopes.each do |s|
|
126
|
+
configHash[s.name] = [] unless configHash.has_key?(s.name)
|
127
|
+
configHash[s.name] += s.value.split(";")
|
128
|
+
end
|
129
|
+
|
130
|
+
if !isMain && @configHashMain
|
131
|
+
@configHashMain.each do |k,v|
|
132
|
+
if configHash.has_key?(k)
|
133
|
+
configHash[k] += v
|
134
|
+
configHash[k].uniq!
|
135
|
+
else
|
136
|
+
configHash[k] = v
|
137
|
+
end
|
127
138
|
end
|
128
139
|
end
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
140
|
+
|
141
|
+
checkCondition = lambda {|name,value|
|
142
|
+
return true if adaptHash[name].empty?
|
143
|
+
if !configHash.has_key?(name)
|
144
|
+
return adaptHash[name].any?{|ah| ah.match("")}
|
145
|
+
end
|
146
|
+
adaptHash[name].any? { |ah| configHash[name].any?{|ch| ah.match(ch)}}
|
147
|
+
}
|
148
|
+
|
149
|
+
adaptCondition = adaptHash.all? {|name,value| checkCondition.call(name, value)}
|
150
|
+
|
151
|
+
invertLogic = (Bake::Metamodel::Unless === c.parent)
|
152
|
+
next if (adaptCondition && invertLogic) || (!adaptCondition && !invertLogic)
|
153
|
+
|
154
|
+
MergeConfig.new(c, config).merge(c.type.to_sym)
|
155
|
+
|
156
|
+
if isMain # can be changed after adapt
|
157
|
+
@defaultToolchainName = config.defaultToolchain.basedOn unless config.defaultToolchain.nil?
|
135
158
|
end
|
136
|
-
adaptHash[name].any? { |ah| configHash[name].any?{|ch| ah.match(ch)}}
|
137
|
-
}
|
138
|
-
|
139
|
-
adaptCondition = adaptHash.all? {|name,value| checkCondition.call(name, value)}
|
140
|
-
|
141
|
-
invertLogic = (Bake::Metamodel::Unless === c.parent)
|
142
|
-
next if (adaptCondition && invertLogic) || (!adaptCondition && !invertLogic)
|
143
159
|
|
144
|
-
MergeConfig.new(c, config).merge(c.type.to_sym)
|
145
|
-
|
146
|
-
if isMain # can be changed after adapt
|
147
|
-
@defaultToolchainName = config.defaultToolchain.basedOn unless config.defaultToolchain.nil?
|
148
160
|
end
|
149
|
-
|
150
161
|
end
|
151
162
|
end
|
152
163
|
end
|
@@ -243,8 +254,8 @@ module Bake
|
|
243
254
|
AdaptConfig.checkSyntax(adaptConfigs, filename, true)
|
244
255
|
adaptConfigs.each do |ac|
|
245
256
|
ac.project = proj.name if ac.project == "__THIS__" || ac.project == ""
|
257
|
+
@adaptConfigs << {:config => ac, :projs => []}
|
246
258
|
end
|
247
|
-
@adaptConfigs.concat(adaptConfigs)
|
248
259
|
end
|
249
260
|
end
|
250
261
|
|
data/lib/bake/libElement.rb
CHANGED
@@ -56,6 +56,9 @@ module Bake
|
|
56
56
|
cb = block.library.compileBlock
|
57
57
|
if (block.prebuild and File.exist?adaptedPath) or
|
58
58
|
(!cb.nil? and !(cb.calcSources(true, true) - cb.source_files_ignored_in_lib).empty?)
|
59
|
+
if Bake.options.consoleOutput_fullnames
|
60
|
+
adaptedPath = File.expand_path(adaptedPath, @projectDir)
|
61
|
+
end
|
59
62
|
@@linker_libs_array << adaptedPath
|
60
63
|
@@source_libraries << adaptedPath
|
61
64
|
end
|
@@ -67,6 +70,9 @@ module Bake
|
|
67
70
|
cb.object_files_ignored_in_lib.each do |ldirect|
|
68
71
|
adaptedPath, prefix = adaptPath(ldirect, block, prefix)
|
69
72
|
if (!block.prebuild or File.exist?adaptedPath)
|
73
|
+
if Bake.options.consoleOutput_fullnames
|
74
|
+
adaptedPath = File.expand_path(adaptedPath, @projectDir)
|
75
|
+
end
|
70
76
|
@@linker_libs_array << adaptedPath
|
71
77
|
@@source_libraries << adaptedPath
|
72
78
|
end
|
data/lib/bake/model/loader.rb
CHANGED
@@ -1,179 +1,179 @@
|
|
1
|
-
require_relative 'metamodel'
|
2
|
-
require_relative 'language'
|
3
|
-
require_relative '../../common/version'
|
4
|
-
|
5
|
-
require 'rgen/environment'
|
6
|
-
require 'rgen/fragment/dump_file_cache'
|
7
|
-
require 'rgen/fragment/fragmented_model'
|
8
|
-
require 'rgen/util/file_cache_map'
|
9
|
-
|
10
|
-
require 'rtext/default_loader'
|
11
|
-
|
12
|
-
require_relative '../../common/ext/rgen'
|
13
|
-
require_relative '../../common/exit_helper'
|
14
|
-
require_relative '../toolchain/colorizing_formatter'
|
15
|
-
require_relative '../options/options'
|
16
|
-
|
17
|
-
module Bake
|
18
|
-
|
19
|
-
class Loader
|
20
|
-
|
21
|
-
attr_reader :model
|
22
|
-
|
23
|
-
def initialize
|
24
|
-
@env = RGen::Environment.new
|
25
|
-
|
26
|
-
fcm = RGen::Util::FileCacheMap.new(".bake", ".cache")
|
27
|
-
fcm.version_info = Version.number
|
28
|
-
|
29
|
-
if !Bake.options.dry
|
30
|
-
@DumpFileCache = RGen::Fragment::DumpFileCache.new(fcm)
|
31
|
-
else
|
32
|
-
@DumpFileCache = nil
|
33
|
-
end
|
34
|
-
|
35
|
-
@model = RGen::Fragment::FragmentedModel.new(:env => @env)
|
36
|
-
|
37
|
-
@globalFilterStrMap = {
|
38
|
-
Bake::Metamodel::StartupSteps => "STARTUP",
|
39
|
-
Bake::Metamodel::PreSteps => "PRE",
|
40
|
-
Bake::Metamodel::PostSteps => "POST",
|
41
|
-
Bake::Metamodel::ExitSteps => "EXIT",
|
42
|
-
Bake::Metamodel::CleanSteps => "CLEAN"
|
43
|
-
}
|
44
|
-
end
|
45
|
-
|
46
|
-
def load_internal(filename, silent = false)
|
47
|
-
silent = false if Bake.options.debug
|
48
|
-
loader = RText::DefaultLoader.new(
|
49
|
-
Bake::Language,
|
50
|
-
@model,
|
51
|
-
:file_provider => proc { [filename] },
|
52
|
-
:cache => @DumpFileCache)
|
53
|
-
loader.load(:before_load => proc {|fragment, kind|
|
54
|
-
case kind
|
55
|
-
when :load_update_cache
|
56
|
-
if Bake.options.verbose >= 3
|
57
|
-
puts "Loading and caching #{fragment.location}" unless silent
|
58
|
-
else
|
59
|
-
puts "Loading #{fragment.location}" unless silent
|
60
|
-
end
|
61
|
-
when :load_cached
|
62
|
-
if Bake.options.verbose >= 3
|
63
|
-
puts "Loading cached #{fragment.location}" unless silent
|
64
|
-
else
|
65
|
-
puts "Loading #{fragment.location}" unless silent
|
66
|
-
end
|
67
|
-
when :load
|
68
|
-
puts "Loading #{fragment.location}" unless silent
|
69
|
-
else
|
70
|
-
Bake.formatter.printError("Error: Could not load #{fragment.location}")
|
71
|
-
ExitHelper.exit(1)
|
72
|
-
end
|
73
|
-
})
|
74
|
-
|
75
|
-
if !Bake.options.dry
|
76
|
-
Utils.gitIgnore(File.dirname(filename)+"/.bake")
|
77
|
-
end
|
78
|
-
|
79
|
-
frag = @model.fragments[0]
|
80
|
-
@model.remove_fragment(frag)
|
81
|
-
frag
|
82
|
-
end
|
83
|
-
|
84
|
-
def filterElement?(elem)
|
85
|
-
return false if Bake::Metamodel::Project === elem
|
86
|
-
|
87
|
-
# 1st prio: explicit single filter
|
88
|
-
if elem.filter != ""
|
89
|
-
return true if Bake.options.exclude_filter.include?elem.filter
|
90
|
-
return false if Bake.options.include_filter.include?elem.filter
|
91
|
-
end
|
92
|
-
|
93
|
-
# 2nd prio: explicit global filter
|
94
|
-
if defined?(elem.parent)
|
95
|
-
globalFilterStr = @globalFilterStrMap[elem.parent.class]
|
96
|
-
if (globalFilterStr)
|
97
|
-
return true if Bake.options.exclude_filter.include?globalFilterStr
|
98
|
-
return false if Bake.options.include_filter.include?globalFilterStr
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
# 3nd prio: default
|
103
|
-
return true if elem.default == "off"
|
104
|
-
false
|
105
|
-
end
|
106
|
-
|
107
|
-
def applyFilterOnArray(a)
|
108
|
-
toRemove = []
|
109
|
-
a.each do |elem|
|
110
|
-
if filterElement?(elem)
|
111
|
-
toRemove << elem
|
112
|
-
else
|
113
|
-
applyFilterOnElement(elem)
|
114
|
-
end
|
115
|
-
end
|
116
|
-
toRemove.each { |r| r.parent = nil if r.respond_to?(:parent=) }
|
117
|
-
return toRemove
|
118
|
-
end
|
119
|
-
|
120
|
-
def applyFilterOnElement(elem)
|
121
|
-
return if elem.nil?
|
122
|
-
elem.class.ecore.eAllReferences.each do |f|
|
123
|
-
next unless f.containment
|
124
|
-
begin
|
125
|
-
childData = elem.getGeneric(f.name)
|
126
|
-
rescue Exception => ex
|
127
|
-
next
|
128
|
-
end
|
129
|
-
next if childData.nil?
|
130
|
-
if (Array === childData)
|
131
|
-
applyFilterOnArray(childData)
|
132
|
-
elsif Metamodel::ModelElement === childData
|
133
|
-
if filterElement?(childData)
|
134
|
-
childData.parent = nil
|
135
|
-
else
|
136
|
-
applyFilterOnElement(childData)
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
def load(filename)
|
143
|
-
sumErrors = 0
|
144
|
-
|
145
|
-
if not File.exists?filename
|
146
|
-
Bake.formatter.printError("Error: #{filename} does not exist")
|
147
|
-
ExitHelper.exit(1)
|
148
|
-
end
|
149
|
-
|
150
|
-
frag = nil
|
151
|
-
if not Bake.options.nocache
|
152
|
-
frag = load_internal(filename) # regular load
|
153
|
-
frag = nil if frag.root_elements.length > 0 and filename != frag.root_elements[0].file_name
|
154
|
-
end
|
155
|
-
|
156
|
-
if frag.nil?
|
157
|
-
def @DumpFileCache.load(fragment)
|
158
|
-
:invalid
|
159
|
-
end
|
160
|
-
frag = load_internal(filename, !Bake.options.nocache)
|
161
|
-
end
|
162
|
-
|
163
|
-
frag.data[:problems].each do |p|
|
164
|
-
Bake.formatter.printError(p.message, p.file, p.line)
|
165
|
-
end
|
166
|
-
|
167
|
-
if frag.data[:problems].length > 0
|
168
|
-
ExitHelper.exit(1)
|
169
|
-
end
|
170
|
-
|
171
|
-
tor = applyFilterOnArray(frag.root_elements)
|
172
|
-
frag.root_elements.delete_if {|re| tor.include?(re)}
|
173
|
-
|
174
|
-
return frag
|
175
|
-
|
176
|
-
end
|
177
|
-
|
178
|
-
end
|
1
|
+
require_relative 'metamodel'
|
2
|
+
require_relative 'language'
|
3
|
+
require_relative '../../common/version'
|
4
|
+
|
5
|
+
require 'rgen/environment'
|
6
|
+
require 'rgen/fragment/dump_file_cache'
|
7
|
+
require 'rgen/fragment/fragmented_model'
|
8
|
+
require 'rgen/util/file_cache_map'
|
9
|
+
|
10
|
+
require 'rtext/default_loader'
|
11
|
+
|
12
|
+
require_relative '../../common/ext/rgen'
|
13
|
+
require_relative '../../common/exit_helper'
|
14
|
+
require_relative '../toolchain/colorizing_formatter'
|
15
|
+
require_relative '../options/options'
|
16
|
+
|
17
|
+
module Bake
|
18
|
+
|
19
|
+
class Loader
|
20
|
+
|
21
|
+
attr_reader :model
|
22
|
+
|
23
|
+
def initialize
|
24
|
+
@env = RGen::Environment.new
|
25
|
+
|
26
|
+
fcm = RGen::Util::FileCacheMap.new(".bake", ".cache")
|
27
|
+
fcm.version_info = Version.number
|
28
|
+
|
29
|
+
if !Bake.options.dry
|
30
|
+
@DumpFileCache = RGen::Fragment::DumpFileCache.new(fcm)
|
31
|
+
else
|
32
|
+
@DumpFileCache = nil
|
33
|
+
end
|
34
|
+
|
35
|
+
@model = RGen::Fragment::FragmentedModel.new(:env => @env)
|
36
|
+
|
37
|
+
@globalFilterStrMap = {
|
38
|
+
Bake::Metamodel::StartupSteps => "STARTUP",
|
39
|
+
Bake::Metamodel::PreSteps => "PRE",
|
40
|
+
Bake::Metamodel::PostSteps => "POST",
|
41
|
+
Bake::Metamodel::ExitSteps => "EXIT",
|
42
|
+
Bake::Metamodel::CleanSteps => "CLEAN"
|
43
|
+
}
|
44
|
+
end
|
45
|
+
|
46
|
+
def load_internal(filename, silent = false)
|
47
|
+
silent = false if Bake.options.debug
|
48
|
+
loader = RText::DefaultLoader.new(
|
49
|
+
Bake::Language,
|
50
|
+
@model,
|
51
|
+
:file_provider => proc { [filename] },
|
52
|
+
:cache => @DumpFileCache)
|
53
|
+
loader.load(:before_load => proc {|fragment, kind|
|
54
|
+
case kind
|
55
|
+
when :load_update_cache
|
56
|
+
if Bake.options.verbose >= 3
|
57
|
+
puts "Loading and caching #{fragment.location}" unless silent
|
58
|
+
else
|
59
|
+
puts "Loading #{fragment.location}" unless silent
|
60
|
+
end
|
61
|
+
when :load_cached
|
62
|
+
if Bake.options.verbose >= 3
|
63
|
+
puts "Loading cached #{fragment.location}" unless silent
|
64
|
+
else
|
65
|
+
puts "Loading #{fragment.location}" unless silent
|
66
|
+
end
|
67
|
+
when :load
|
68
|
+
puts "Loading #{fragment.location}" unless silent
|
69
|
+
else
|
70
|
+
Bake.formatter.printError("Error: Could not load #{fragment.location}")
|
71
|
+
ExitHelper.exit(1)
|
72
|
+
end
|
73
|
+
})
|
74
|
+
|
75
|
+
if !Bake.options.dry
|
76
|
+
Utils.gitIgnore(File.dirname(filename)+"/.bake")
|
77
|
+
end
|
78
|
+
|
79
|
+
frag = @model.fragments[0]
|
80
|
+
@model.remove_fragment(frag)
|
81
|
+
frag
|
82
|
+
end
|
83
|
+
|
84
|
+
def filterElement?(elem)
|
85
|
+
return false if Bake::Metamodel::Project === elem
|
86
|
+
|
87
|
+
# 1st prio: explicit single filter
|
88
|
+
if elem.filter != ""
|
89
|
+
return true if Bake.options.exclude_filter.include?elem.filter
|
90
|
+
return false if Bake.options.include_filter.include?elem.filter
|
91
|
+
end
|
92
|
+
|
93
|
+
# 2nd prio: explicit global filter
|
94
|
+
if defined?(elem.parent)
|
95
|
+
globalFilterStr = @globalFilterStrMap[elem.parent.class]
|
96
|
+
if (globalFilterStr)
|
97
|
+
return true if Bake.options.exclude_filter.include?globalFilterStr
|
98
|
+
return false if Bake.options.include_filter.include?globalFilterStr
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
# 3nd prio: default
|
103
|
+
return true if elem.default == "off"
|
104
|
+
false
|
105
|
+
end
|
106
|
+
|
107
|
+
def applyFilterOnArray(a)
|
108
|
+
toRemove = []
|
109
|
+
a.each do |elem|
|
110
|
+
if filterElement?(elem)
|
111
|
+
toRemove << elem
|
112
|
+
else
|
113
|
+
applyFilterOnElement(elem)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
toRemove.each { |r| r.parent = nil if r.respond_to?(:parent=) }
|
117
|
+
return toRemove
|
118
|
+
end
|
119
|
+
|
120
|
+
def applyFilterOnElement(elem)
|
121
|
+
return if elem.nil?
|
122
|
+
elem.class.ecore.eAllReferences.each do |f|
|
123
|
+
next unless f.containment
|
124
|
+
begin
|
125
|
+
childData = elem.getGeneric(f.name)
|
126
|
+
rescue Exception => ex
|
127
|
+
next
|
128
|
+
end
|
129
|
+
next if childData.nil?
|
130
|
+
if (Array === childData)
|
131
|
+
applyFilterOnArray(childData)
|
132
|
+
elsif Metamodel::ModelElement === childData
|
133
|
+
if filterElement?(childData)
|
134
|
+
childData.parent = nil
|
135
|
+
else
|
136
|
+
applyFilterOnElement(childData)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
def load(filename)
|
143
|
+
sumErrors = 0
|
144
|
+
|
145
|
+
if not File.exists?filename
|
146
|
+
Bake.formatter.printError("Error: #{filename} does not exist")
|
147
|
+
ExitHelper.exit(1)
|
148
|
+
end
|
149
|
+
|
150
|
+
frag = nil
|
151
|
+
if not Bake.options.nocache
|
152
|
+
frag = load_internal(filename) # regular load
|
153
|
+
frag = nil if frag.root_elements.length > 0 and filename != frag.root_elements[0].file_name
|
154
|
+
end
|
155
|
+
|
156
|
+
if frag.nil?
|
157
|
+
def @DumpFileCache.load(fragment)
|
158
|
+
:invalid
|
159
|
+
end
|
160
|
+
frag = load_internal(filename, !Bake.options.nocache)
|
161
|
+
end
|
162
|
+
|
163
|
+
frag.data[:problems].each do |p|
|
164
|
+
Bake.formatter.printError(p.message, p.file, p.line)
|
165
|
+
end
|
166
|
+
|
167
|
+
if frag.data[:problems].length > 0
|
168
|
+
ExitHelper.exit(1)
|
169
|
+
end
|
170
|
+
|
171
|
+
tor = applyFilterOnArray(frag.root_elements)
|
172
|
+
frag.root_elements.delete_if {|re| tor.include?(re)}
|
173
|
+
|
174
|
+
return frag
|
175
|
+
|
176
|
+
end
|
177
|
+
|
178
|
+
end
|
179
179
|
end
|
data/lib/bake/model/metamodel.rb
CHANGED
@@ -197,13 +197,16 @@ module Bake
|
|
197
197
|
contains_many 'except', Except, 'parent'
|
198
198
|
end
|
199
199
|
|
200
|
-
class
|
201
|
-
has_attr 'name', String, :defaultValueLiteral => ""
|
200
|
+
class StepBase < ModelElement
|
202
201
|
has_attr 'echo', String, :defaultValueLiteral => "on"
|
203
202
|
has_attr 'independent', Boolean, :defaultValueLiteral => "false"
|
204
203
|
has_many_attr 'validExitCodes', Integer
|
205
204
|
end
|
206
205
|
|
206
|
+
class Step < StepBase
|
207
|
+
has_attr 'name', String, :defaultValueLiteral => ""
|
208
|
+
end
|
209
|
+
|
207
210
|
class Makefile < Step
|
208
211
|
has_attr 'lib', String, :defaultValueLiteral => ""
|
209
212
|
has_attr 'target', String, :defaultValueLiteral => ""
|
@@ -234,27 +237,28 @@ module Bake
|
|
234
237
|
has_attr 'name', String, :defaultValueLiteral => "0.0"
|
235
238
|
end
|
236
239
|
|
237
|
-
class CommandLine <
|
240
|
+
class CommandLine < StepBase
|
241
|
+
has_many_attr 'name', String, :defaultValueLiteral => ""
|
238
242
|
end
|
239
243
|
|
240
244
|
class PreSteps < ModelElement
|
241
|
-
contains_many 'step',
|
245
|
+
contains_many 'step', StepBase, 'parent'
|
242
246
|
end
|
243
247
|
|
244
248
|
class PostSteps < ModelElement
|
245
|
-
contains_many 'step',
|
249
|
+
contains_many 'step', StepBase, 'parent'
|
246
250
|
end
|
247
251
|
|
248
252
|
class ExitSteps < ModelElement
|
249
|
-
contains_many 'step',
|
253
|
+
contains_many 'step', StepBase, 'parent'
|
250
254
|
end
|
251
255
|
|
252
256
|
class CleanSteps < ModelElement
|
253
|
-
contains_many 'step',
|
257
|
+
contains_many 'step', StepBase, 'parent'
|
254
258
|
end
|
255
259
|
|
256
260
|
class StartupSteps < ModelElement
|
257
|
-
contains_many 'step',
|
261
|
+
contains_many 'step', StepBase, 'parent'
|
258
262
|
end
|
259
263
|
|
260
264
|
class LinkerScript < ModelElement
|
@@ -344,7 +348,7 @@ module Bake
|
|
344
348
|
end
|
345
349
|
|
346
350
|
class CustomConfig < BaseConfig_INTERNAL
|
347
|
-
contains_one 'step',
|
351
|
+
contains_one 'step', StepBase, 'parent'
|
348
352
|
module ClassModule
|
349
353
|
def color
|
350
354
|
"red"
|
data/lib/bake/subst.rb
CHANGED
@@ -388,8 +388,14 @@ module Bake
|
|
388
388
|
return if Metamodel::DefaultToolchain === elem
|
389
389
|
return if Metamodel::Toolchain === elem.class
|
390
390
|
next if a.eType.name != "EString"
|
391
|
-
|
392
|
-
|
391
|
+
value = elem.getGeneric(a.name)
|
392
|
+
if value.kind_of?(Array)
|
393
|
+
substArr = value.map { |s| substString(s, elem, a.name) }
|
394
|
+
elem.setGeneric(a.name, substArr)
|
395
|
+
else
|
396
|
+
substStr = substString(value, elem, a.name)
|
397
|
+
elem.setGeneric(a.name, substStr)
|
398
|
+
end
|
393
399
|
end
|
394
400
|
|
395
401
|
childsRefs = elem.class.ecore.eAllReferences.select{|r| r.containment}
|
data/lib/blocks/block.rb
CHANGED
@@ -601,6 +601,9 @@ module Bake
|
|
601
601
|
if @tcs[:OUTPUT_DIR_POSTFIX] != nil
|
602
602
|
@output_dir = @output_dir + @tcs[:OUTPUT_DIR_POSTFIX]
|
603
603
|
end
|
604
|
+
if Bake.options.consoleOutput_fullnames
|
605
|
+
@output_dir = File.expand_path(@output_dir, @projectDir)
|
606
|
+
end
|
604
607
|
end
|
605
608
|
|
606
609
|
end
|
data/lib/blocks/commandLine.rb
CHANGED
@@ -1,44 +1,44 @@
|
|
1
|
-
require_relative 'has_execute_command'
|
2
|
-
|
3
|
-
module Bake
|
4
|
-
module Blocks
|
5
|
-
|
6
|
-
class CommandLine
|
7
|
-
include HasExecuteCommand
|
8
|
-
|
9
|
-
def initialize(config)
|
10
|
-
@config = config # Bake::Metamodel::CommandLine
|
11
|
-
@commandLine = config.name
|
12
|
-
@projectDir = config.get_project_dir
|
13
|
-
end
|
14
|
-
|
15
|
-
def run
|
16
|
-
return true if Bake.options.linkOnly
|
17
|
-
return executeCommand(@commandLine, nil, @config.validExitCodes, @config.echo)
|
18
|
-
end
|
19
|
-
|
20
|
-
def execute
|
21
|
-
return run()
|
22
|
-
end
|
23
|
-
|
24
|
-
def startupStep
|
25
|
-
return run()
|
26
|
-
end
|
27
|
-
|
28
|
-
def exitStep
|
29
|
-
return run()
|
30
|
-
end
|
31
|
-
|
32
|
-
def cleanStep
|
33
|
-
return run()
|
34
|
-
end
|
35
|
-
|
36
|
-
def clean
|
37
|
-
# nothing to do here
|
38
|
-
return true
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
end
|
1
|
+
require_relative 'has_execute_command'
|
2
|
+
|
3
|
+
module Bake
|
4
|
+
module Blocks
|
5
|
+
|
6
|
+
class CommandLine
|
7
|
+
include HasExecuteCommand
|
8
|
+
|
9
|
+
def initialize(config)
|
10
|
+
@config = config # Bake::Metamodel::CommandLine
|
11
|
+
@commandLine = config.name.kind_of?(Array) ? config.name.join(' ') : config.name
|
12
|
+
@projectDir = config.get_project_dir
|
13
|
+
end
|
14
|
+
|
15
|
+
def run
|
16
|
+
return true if Bake.options.linkOnly
|
17
|
+
return executeCommand(@commandLine, nil, @config.validExitCodes, @config.echo)
|
18
|
+
end
|
19
|
+
|
20
|
+
def execute
|
21
|
+
return run()
|
22
|
+
end
|
23
|
+
|
24
|
+
def startupStep
|
25
|
+
return run()
|
26
|
+
end
|
27
|
+
|
28
|
+
def exitStep
|
29
|
+
return run()
|
30
|
+
end
|
31
|
+
|
32
|
+
def cleanStep
|
33
|
+
return run()
|
34
|
+
end
|
35
|
+
|
36
|
+
def clean
|
37
|
+
# nothing to do here
|
38
|
+
return true
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
data/lib/blocks/compile.rb
CHANGED
@@ -255,7 +255,7 @@ module Bake
|
|
255
255
|
cmdJson = cmd.is_a?(Array) ? cmd.join(' ') : cmd
|
256
256
|
srcFilePath = source
|
257
257
|
if Bake.options.consoleOutput_fullnames
|
258
|
-
srcFilePath = File.join(@projectDir, srcFilePath)
|
258
|
+
srcFilePath = File.join(@projectDir, srcFilePath) if !File.is_absolute?(srcFilePath)
|
259
259
|
cmdJson[source] = srcFilePath
|
260
260
|
end
|
261
261
|
cmdJson.gsub!("\"" , "\\\"")
|
@@ -524,10 +524,16 @@ module Bake
|
|
524
524
|
|
525
525
|
def calcObjects
|
526
526
|
@object_files_ignored_in_lib = []
|
527
|
-
@source_files.
|
527
|
+
@source_files.map! do |source|
|
528
528
|
type = get_source_type(source)
|
529
529
|
if not type.nil?
|
530
530
|
object = get_object_file(source)
|
531
|
+
|
532
|
+
if Bake.options.consoleOutput_fullnames
|
533
|
+
object = File.expand_path(object, @projectDir)
|
534
|
+
source = File.expand_path(source, @projectDir)
|
535
|
+
end
|
536
|
+
|
531
537
|
if @objects.include?object
|
532
538
|
@object_files.each do |k,v|
|
533
539
|
if (v == object) # will be found exactly once
|
@@ -545,6 +551,7 @@ module Bake
|
|
545
551
|
@objects << object
|
546
552
|
end
|
547
553
|
end
|
554
|
+
source
|
548
555
|
end
|
549
556
|
end
|
550
557
|
|
@@ -629,16 +636,18 @@ module Bake
|
|
629
636
|
end
|
630
637
|
|
631
638
|
def calcIncludesInternal(block)
|
632
|
-
# puts "#{block.projectName},#{block.configName} " + block.to_s
|
633
639
|
noDeps = @blocksRead.include?(block)
|
634
640
|
@blocksRead << block
|
635
641
|
block.bes.each do |be|
|
636
642
|
if Metamodel::IncludeDir === be
|
637
|
-
# puts "-- #{be.name}"
|
638
643
|
if be.inherit == true || block == @block
|
639
|
-
|
640
|
-
|
641
|
-
|
644
|
+
if Bake.options.consoleOutput_fullnames
|
645
|
+
mappedInc = be.name
|
646
|
+
else
|
647
|
+
mappedInc = File.rel_from_to_project(@projectDir,be.name,false)
|
648
|
+
mappedInc = "." if mappedInc.empty?
|
649
|
+
end
|
650
|
+
if !@include_set.include?(mappedInc)
|
642
651
|
@include_list << mappedInc
|
643
652
|
@include_set << mappedInc
|
644
653
|
if !@include_merge.has_key?(mappedInc)
|
@@ -674,15 +683,7 @@ module Bake
|
|
674
683
|
@include_list = []
|
675
684
|
@include_merge = {}
|
676
685
|
@system_includes = Set.new
|
677
|
-
|
678
|
-
#puts @block.bes.length
|
679
|
-
#@block.bes.each {|b| puts "#{b.class}: #{b.name}, #{b.respond_to?(:config) ? b.config : ""}"}
|
680
|
-
#exit(1)
|
681
|
-
|
682
|
-
|
683
|
-
|
684
686
|
calcIncludesInternal(@block) # includeDir and child dependencies with inherit: true
|
685
|
-
# exit(1)
|
686
687
|
@include_list = @include_list.flatten.uniq
|
687
688
|
end
|
688
689
|
|
data/lib/blocks/executable.rb
CHANGED
@@ -43,6 +43,10 @@ module Bake
|
|
43
43
|
baseFilename += ".#{@config.artifactExtension.name}"
|
44
44
|
end
|
45
45
|
@exe_name ||= File.join([@block.output_dir, baseFilename])
|
46
|
+
if Bake.options.consoleOutput_fullnames
|
47
|
+
@exe_name = File.expand_path(@exe_name, @projectDir)
|
48
|
+
end
|
49
|
+
return @exe_name
|
46
50
|
end
|
47
51
|
|
48
52
|
def calcCmdlineFile()
|
data/lib/blocks/library.rb
CHANGED
@@ -34,6 +34,10 @@ module Bake
|
|
34
34
|
baseFilename += ".#{@config.artifactExtension.name}"
|
35
35
|
end
|
36
36
|
@archive_name ||= File.join([@block.output_dir, baseFilename])
|
37
|
+
if Bake.options.consoleOutput_fullnames
|
38
|
+
@archive_name = File.expand_path(@archive_name, @projectDir)
|
39
|
+
end
|
40
|
+
return @archive_name
|
37
41
|
end
|
38
42
|
|
39
43
|
def calcCmdlineFile()
|
data/lib/common/version.rb
CHANGED
data/lib/tocxx.rb
CHANGED
@@ -652,8 +652,8 @@ module Bake
|
|
652
652
|
al = AdaptConfig.new
|
653
653
|
adaptConfigs = al.load()
|
654
654
|
|
655
|
-
|
656
|
-
@referencedConfigs =
|
655
|
+
loadedConfig = Config.new
|
656
|
+
@referencedConfigs = loadedConfig.load(adaptConfigs)
|
657
657
|
|
658
658
|
cache.write_cache(@referencedConfigs, adaptConfigs)
|
659
659
|
end
|
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.68.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: 2021-
|
11
|
+
date: 2021-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rtext
|