bake-toolkit 2.67.0 → 2.68.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|