bake-toolkit 1.8.0.1 → 2.0.10
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/bake +14 -53
- data/bin/bakery +50 -43
- data/bin/createVSProjects +3 -3
- data/doc/cmd/install.html +1 -5
- data/doc/cmd/usecmd.html +29 -5
- data/doc/dyk/lint.html +21 -4
- data/doc/dyk/tipps.html +0 -6
- data/doc/eclipse/import.html +3 -1
- data/doc/eclipse/import/Import.png +0 -0
- data/doc/eclipse/use.html +8 -5
- data/doc/further/change.html +134 -1
- data/doc/further/issues.html +1 -0
- data/doc/further/wish.html +24 -21
- data/doc/index.html +1 -1
- data/doc/syntax/subst.html +8 -1
- data/doc/syntax/syntax.html +42 -14
- data/lib/bake/cache.rb +51 -59
- data/lib/bake/config/loader.rb +289 -0
- data/lib/bake/libElement.rb +134 -0
- data/lib/bake/mergeConfig.rb +1 -1
- data/lib/bake/model/language.rb +1 -1
- data/lib/bake/model/loader.rb +88 -0
- data/lib/bake/model/metamodel.rb +24 -16
- data/lib/bake/model/metamodel_ext.rb +9 -4
- data/lib/bake/options/options.rb +222 -0
- data/lib/bake/options/showConfigNames.rb +44 -0
- data/lib/bake/options/showDoc.rb +19 -0
- data/lib/bake/options/showLicense.rb +9 -0
- data/lib/bake/options/showToolchains.rb +39 -0
- data/lib/bake/options/usage.rb +54 -0
- data/lib/bake/process_output.rb +10 -0
- data/lib/bake/subst.rb +105 -40
- data/lib/bake/toolchain/clang.rb +44 -0
- data/lib/bake/toolchain/colorizing_formatter.rb +125 -0
- data/lib/bake/toolchain/diab.rb +53 -0
- data/lib/bake/toolchain/errorparser/diab_compiler_error_parser.rb +40 -0
- data/lib/bake/toolchain/errorparser/diab_linker_error_parser.rb +41 -0
- data/lib/bake/toolchain/errorparser/error_parser.rb +71 -0
- data/lib/bake/toolchain/errorparser/gcc_compiler_error_parser.rb +35 -0
- data/lib/bake/toolchain/errorparser/gcc_linker_error_parser.rb +35 -0
- data/lib/bake/toolchain/errorparser/greenhills_compiler_error_parser.rb +32 -0
- data/lib/bake/toolchain/errorparser/greenhills_linker_error_parser.rb +44 -0
- data/lib/bake/toolchain/errorparser/keil_compiler_error_parser.rb +40 -0
- data/lib/bake/toolchain/errorparser/keil_linker_error_parser.rb +30 -0
- data/lib/bake/toolchain/errorparser/lint_error_parser.rb +34 -0
- data/lib/bake/toolchain/errorparser/process_output.rb +3 -0
- data/lib/bake/toolchain/errorparser/ti_compiler_error_parser.rb +30 -0
- data/lib/bake/toolchain/errorparser/ti_linker_error_parser.rb +30 -0
- data/lib/bake/toolchain/gcc.rb +49 -0
- data/lib/bake/toolchain/gcc_param.rb +7 -0
- data/lib/bake/toolchain/greenhills.rb +52 -0
- data/lib/bake/toolchain/keil.rb +55 -0
- data/lib/bake/toolchain/lint.rb +20 -0
- data/lib/bake/toolchain/provider.rb +136 -0
- data/lib/bake/toolchain/ti.rb +47 -0
- data/lib/bake/util.rb +27 -15
- data/lib/bakery/buildPattern.rb +1 -1
- data/lib/bakery/model/language.rb +1 -1
- data/lib/bakery/model/loader.rb +56 -0
- data/lib/bakery/model/metamodel.rb +1 -1
- data/lib/bakery/options/options.rb +87 -0
- data/lib/bakery/toBake.rb +10 -6
- data/lib/blocks/block.rb +225 -0
- data/lib/blocks/blockBase.rb +155 -0
- data/lib/blocks/commandLine.rb +25 -0
- data/lib/blocks/compile.rb +382 -0
- data/lib/blocks/docu.rb +28 -0
- data/lib/blocks/executable.rb +143 -0
- data/lib/blocks/has_execute_command.rb +31 -0
- data/lib/blocks/library.rb +78 -0
- data/lib/blocks/lint.rb +53 -0
- data/lib/blocks/makefile.rb +87 -0
- data/lib/blocks/showIncludes.rb +114 -0
- data/lib/common/abortException.rb +4 -0
- data/lib/common/cleanup.rb +9 -0
- data/lib/common/exit_helper.rb +28 -0
- data/lib/common/ext/file.rb +88 -0
- data/lib/common/ext/stdout.rb +45 -0
- data/lib/common/ide_interface.rb +194 -0
- data/lib/common/options/option.rb +13 -0
- data/lib/common/options/parser.rb +59 -0
- data/lib/common/process.rb +64 -0
- data/lib/common/utils.rb +52 -0
- data/lib/{bake → common}/version.rb +3 -10
- data/lib/multithread/job.rb +44 -0
- data/lib/tocxx.rb +201 -932
- data/lib/vs/options.rb +3 -2
- data/license.txt +47 -22
- metadata +90 -30
- data/bin/bake-doc +0 -12
- data/lib/alias/loader.rb +0 -56
- data/lib/alias/model/language.rb +0 -22
- data/lib/alias/model/metamodel.rb +0 -29
- data/lib/bake/loader.rb +0 -92
- data/lib/bake/options.rb +0 -421
- data/lib/bakery/loader.rb +0 -57
- data/lib/bakery/options.rb +0 -105
- data/lib/option/parser.rb +0 -73
data/lib/bake/model/metamodel.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rgen/metamodel_builder'
|
2
2
|
require 'rgen/metamodel_builder/data_types'
|
3
3
|
|
4
|
-
module
|
4
|
+
module Bake
|
5
5
|
|
6
6
|
module Metamodel
|
7
7
|
extend RGen::MetamodelBuilder::ModuleExtension
|
@@ -15,13 +15,13 @@ module Cxxproject
|
|
15
15
|
annotation :details => {'internal' => 'true'}
|
16
16
|
end
|
17
17
|
module ClassModule
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
attr_accessor :fragment_ref
|
19
|
+
|
20
|
+
def id
|
21
21
|
splitted = file_name.split("/")
|
22
22
|
splitted[splitted.length-2]
|
23
|
-
end
|
24
|
-
|
23
|
+
end
|
24
|
+
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -78,6 +78,10 @@ module Cxxproject
|
|
78
78
|
has_attr 'name', String, :defaultValueLiteral => ""
|
79
79
|
end
|
80
80
|
|
81
|
+
class Docu < ModelElement
|
82
|
+
has_attr 'name', String, :defaultValueLiteral => ""
|
83
|
+
end
|
84
|
+
|
81
85
|
class DefaultToolchain < ModelElement
|
82
86
|
has_attr 'basedOn', String, :defaultValueLiteral => ""
|
83
87
|
has_attr 'outputDir', String, :defaultValueLiteral => ""
|
@@ -86,6 +90,7 @@ module Cxxproject
|
|
86
90
|
contains_one 'linker', Linker, 'parent'
|
87
91
|
contains_many 'lintPolicy', LintPolicy, 'parent'
|
88
92
|
contains_one 'internalIncludes', InternalIncludes, 'parent'
|
93
|
+
contains_one 'docu', Docu, 'parent'
|
89
94
|
end
|
90
95
|
|
91
96
|
class Toolchain < ModelElement
|
@@ -94,6 +99,7 @@ module Cxxproject
|
|
94
99
|
contains_one 'archiver', Archiver, 'parent'
|
95
100
|
contains_one 'linker', Linker, 'parent'
|
96
101
|
contains_many 'lintPolicy', LintPolicy, 'parent'
|
102
|
+
contains_one 'docu', Docu, 'parent'
|
97
103
|
end
|
98
104
|
|
99
105
|
class Person < ModelElement
|
@@ -104,7 +110,7 @@ module Cxxproject
|
|
104
110
|
class Description < ModelElement
|
105
111
|
has_attr 'text', String, :defaultValueLiteral => ""
|
106
112
|
end
|
107
|
-
|
113
|
+
|
108
114
|
class Responsible < ModelElement
|
109
115
|
contains_many "person", Person, 'parent'
|
110
116
|
end
|
@@ -187,13 +193,14 @@ module Cxxproject
|
|
187
193
|
contains_many 'exLib', ExternalLibrary, 'parent'
|
188
194
|
contains_many 'exLibSearchPath', ExternalLibrarySearchPath, 'parent'
|
189
195
|
contains_one 'defaultToolchain', DefaultToolchain, 'parent'
|
196
|
+
contains_one 'toolchain', Toolchain, 'parent'
|
190
197
|
contains_many 'set', Set, 'parent'
|
191
198
|
|
192
199
|
module ClassModule
|
193
|
-
|
194
|
-
|
200
|
+
def ident
|
201
|
+
s = file_name.split("/")
|
195
202
|
s[s.length-2] + "/" + name
|
196
|
-
end
|
203
|
+
end
|
197
204
|
end
|
198
205
|
|
199
206
|
end
|
@@ -202,13 +209,13 @@ module Cxxproject
|
|
202
209
|
contains_many 'files', Files, 'parent'
|
203
210
|
contains_many 'excludeFiles', ExcludeFiles, 'parent'
|
204
211
|
contains_many 'includeDir', IncludeDir, 'parent'
|
205
|
-
|
212
|
+
|
206
213
|
|
207
214
|
module ClassModule
|
208
|
-
|
209
|
-
|
215
|
+
def ident
|
216
|
+
s = file_name.split("/")
|
210
217
|
s[s.length-2] + "/" + name
|
211
|
-
end
|
218
|
+
end
|
212
219
|
end
|
213
220
|
|
214
221
|
end
|
@@ -227,16 +234,17 @@ module Cxxproject
|
|
227
234
|
end
|
228
235
|
|
229
236
|
class Project < ModelElement
|
237
|
+
has_attr 'default', String, :defaultValueLiteral => ""
|
230
238
|
contains_one 'description', Description, 'parent'
|
231
239
|
contains_one 'responsible', Responsible, 'parent'
|
232
240
|
contains_many 'config', BaseConfig_INTERNAL, 'parent'
|
233
241
|
|
234
242
|
module ClassModule
|
235
|
-
|
243
|
+
def name
|
236
244
|
splitted = file_name.split("/")
|
237
245
|
x = splitted[splitted.length-2]
|
238
246
|
x
|
239
|
-
end
|
247
|
+
end
|
240
248
|
end
|
241
249
|
|
242
250
|
end
|
@@ -1,15 +1,20 @@
|
|
1
1
|
require 'bake/model/metamodel'
|
2
|
-
require '
|
2
|
+
require 'common/ext/file'
|
3
3
|
|
4
|
-
module
|
4
|
+
module Bake
|
5
5
|
module Metamodel
|
6
6
|
|
7
|
-
module
|
7
|
+
module ModelElement::ClassModule
|
8
8
|
def get_project_dir
|
9
|
-
# todo: no. must be set from outside
|
10
9
|
::File.dirname(file_name)
|
11
10
|
end
|
12
11
|
end
|
12
|
+
|
13
|
+
module BaseConfig_INTERNAL::ClassModule
|
14
|
+
def qname
|
15
|
+
@qname ||= parent.name + "," + name
|
16
|
+
end
|
17
|
+
end
|
13
18
|
|
14
19
|
end
|
15
20
|
end
|
@@ -0,0 +1,222 @@
|
|
1
|
+
require 'bake/toolchain/colorizing_formatter'
|
2
|
+
require 'common/options/parser'
|
3
|
+
require 'bake/options/showToolchains'
|
4
|
+
require 'bake/options/showConfigNames'
|
5
|
+
require 'bake/options/showLicense'
|
6
|
+
require 'bake/options/showDoc'
|
7
|
+
require 'bake/options/usage'
|
8
|
+
require 'common/options/option'
|
9
|
+
|
10
|
+
module Bake
|
11
|
+
|
12
|
+
def self.options
|
13
|
+
@@options
|
14
|
+
end
|
15
|
+
def self.options=(options)
|
16
|
+
@@options = options
|
17
|
+
end
|
18
|
+
|
19
|
+
class Options < Parser
|
20
|
+
attr_accessor :build_config, :nocache
|
21
|
+
attr_reader :main_dir, :project, :filename, :main_project_name # String
|
22
|
+
attr_reader :roots, :include_filter, :exclude_filter # String List
|
23
|
+
attr_reader :stopOnFirstError, :clean, :rebuild, :show_includes, :show_includes_and_defines, :linkOnly, :no_autodir, :clobber, :lint, :docu, :debug, :prepro # Boolean
|
24
|
+
attr_reader :threads, :socket, :lint_min, :lint_max # Fixnum
|
25
|
+
attr_reader :vars # map
|
26
|
+
attr_reader :verboseLow
|
27
|
+
attr_reader :verboseHigh
|
28
|
+
attr_reader :consoleOutput_fullnames, :consoleOutput_visualStudio
|
29
|
+
|
30
|
+
|
31
|
+
def initialize(argv)
|
32
|
+
super(argv)
|
33
|
+
|
34
|
+
@showConfigs = false
|
35
|
+
@consoleOutput_fullnames = false
|
36
|
+
@consoleOutput_visualStudio = false
|
37
|
+
@prepro = false
|
38
|
+
@stopOnFirstError = false
|
39
|
+
@verboseLow = false
|
40
|
+
@verboseHigh = false
|
41
|
+
@vars = {}
|
42
|
+
@build_config = ""
|
43
|
+
@main_dir = nil
|
44
|
+
@project = nil
|
45
|
+
@filename = nil
|
46
|
+
@clean = false
|
47
|
+
@clobber = false
|
48
|
+
@lint = false
|
49
|
+
@docu = false
|
50
|
+
@debug = false
|
51
|
+
@rebuild = false
|
52
|
+
@nocache = false
|
53
|
+
@show_includes = false
|
54
|
+
@show_includes_and_defines = false
|
55
|
+
@linkOnly = false
|
56
|
+
@no_autodir = false
|
57
|
+
@threads = 8
|
58
|
+
@lint_min = 0
|
59
|
+
@lint_max = -1
|
60
|
+
@roots = []
|
61
|
+
@socket = 0
|
62
|
+
@include_filter = []
|
63
|
+
@exclude_filter = []
|
64
|
+
@def_roots = []
|
65
|
+
@main_project_name = ""
|
66
|
+
|
67
|
+
add_default(Proc.new{ |x| set_build_config_default(x) })
|
68
|
+
|
69
|
+
add_option(Option.new("-m",true) { |x| set_main_dir(x) })
|
70
|
+
add_option(Option.new("-b",true) { |x| set_build_config(x) })
|
71
|
+
add_option(Option.new("-p",true) { |x| @project = x;})
|
72
|
+
add_option(Option.new("-f",true) { |x| @filename = x.gsub(/[\\]/,'/') })
|
73
|
+
add_option(Option.new("-c",false) { @clean = true })
|
74
|
+
add_option(Option.new("-a",true) { |x| Bake.formatter.setColorScheme(x.to_sym) })
|
75
|
+
add_option(Option.new("-w",true) { |x| set_root(x) })
|
76
|
+
add_option(Option.new("-r",false) { @stopOnFirstError = true })
|
77
|
+
add_option(Option.new("--rebuild",false) { @rebuild = true })
|
78
|
+
add_option(Option.new("--prepro",false) { @prepro = true })
|
79
|
+
add_option(Option.new("--link_only",false) { @linkOnly = true; })
|
80
|
+
add_option(Option.new("--no_autodir",false) { @no_autodir = true })
|
81
|
+
add_option(Option.new("--lint",false) { @lint = true })
|
82
|
+
add_option(Option.new("--lint_min",true) { |x| @lint_min = String === x ? x.to_i : x })
|
83
|
+
add_option(Option.new("--lint_max",true) { |x| @lint_max = String === x ? x.to_i : x })
|
84
|
+
|
85
|
+
add_option(Option.new("--docu",false) { @docu = true })
|
86
|
+
|
87
|
+
add_option(Option.new("-v0",false) { @verboseLow = true; @verboseHigh = false })
|
88
|
+
add_option(Option.new("-v1",false) { @verboseLow = false; @verboseHigh = false })
|
89
|
+
add_option(Option.new("-v2",false) { @verboseLow = false; @verboseHigh = true })
|
90
|
+
|
91
|
+
add_option(Option.new("--debug",false) { @debug = true })
|
92
|
+
add_option(Option.new("--set",true) { |x| set_set(x) })
|
93
|
+
|
94
|
+
add_option(Option.new("--clobber",false) { @clobber = true; @clean = true })
|
95
|
+
add_option(Option.new("--ignore_cache",false) { @nocache = true })
|
96
|
+
add_option(Option.new("--threads",true) { |x| set_threads(x) })
|
97
|
+
add_option(Option.new("--socket",true) { |x| @socket = String === x ? x.to_i : x })
|
98
|
+
add_option(Option.new("--toolchain_info",true) { |x| ToolchainInfo.showToolchain(x) })
|
99
|
+
add_option(Option.new("--toolchain_names",false) { ToolchainInfo.showToolchainList })
|
100
|
+
add_option(Option.new("--include_filter",true) { |x| @include_filter << x })
|
101
|
+
add_option(Option.new("--exclude_filter",true) { |x| @exclude_filter << x })
|
102
|
+
add_option(Option.new("--show_abs_paths",false) { @consoleOutput_fullnames = true })
|
103
|
+
add_option(Option.new("--visualStudio",false) { @consoleOutput_visualStudio = true })
|
104
|
+
add_option(Option.new("-h",false) { Bake::Usage.show })
|
105
|
+
add_option(Option.new("--help",false) { Bake::Usage.show })
|
106
|
+
add_option(Option.new("--show_include_paths",false) { @show_includes = true })
|
107
|
+
add_option(Option.new("--show_incs_and_defs",false) { @show_includes_and_defines = true })
|
108
|
+
add_option(Option.new("--show_license",false) { License.show })
|
109
|
+
add_option(Option.new("--doc",false) { Doc.show })
|
110
|
+
add_option(Option.new("--version",false) { ExitHelper.exit(0) })
|
111
|
+
add_option(Option.new("--show_configs",false) { @showConfigs = true })
|
112
|
+
|
113
|
+
|
114
|
+
end
|
115
|
+
|
116
|
+
def parse_options()
|
117
|
+
parse_internal(false)
|
118
|
+
set_main_dir(Dir.pwd) if @main_dir.nil?
|
119
|
+
@roots = @def_roots if @roots.length == 0
|
120
|
+
|
121
|
+
if @project
|
122
|
+
if @project.split(',').length > 2
|
123
|
+
Bake.formatter.printError("Error: only one comma allowed for -p")
|
124
|
+
ExitHelper.exit(1)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
if @linkOnly
|
129
|
+
if @rebuild
|
130
|
+
Bake.formatter.printError("Error: --link_only and --rebuild not allowed at the same time")
|
131
|
+
ExitHelper.exit(1)
|
132
|
+
end
|
133
|
+
if @clean
|
134
|
+
Bake.formatter.printError("Error: --link_only and -c not allowed at the same time")
|
135
|
+
ExitHelper.exit(1)
|
136
|
+
end
|
137
|
+
if @prepro
|
138
|
+
Bake.formatter.printError("Error: --link_only and --prepro not allowed at the same time")
|
139
|
+
ExitHelper.exit(1)
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
if @prepro
|
144
|
+
if @rebuild
|
145
|
+
Bake.formatter.printError("Error: --prepro and --rebuild not allowed at the same time")
|
146
|
+
ExitHelper.exit(1)
|
147
|
+
end
|
148
|
+
if @clean
|
149
|
+
Bake.formatter.printError("Error: --prepro and -c not allowed at the same time")
|
150
|
+
ExitHelper.exit(1)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
if @lint and @docu
|
155
|
+
Bake.formatter.printError("Error: --lint and --docu not allowed at the same time")
|
156
|
+
ExitHelper.exit(1)
|
157
|
+
end
|
158
|
+
|
159
|
+
ConfigNames.show if @showConfigs
|
160
|
+
end
|
161
|
+
|
162
|
+
def check_valid_dir(dir)
|
163
|
+
if not File.exists?(dir)
|
164
|
+
Bake.formatter.printError("Error: Directory #{dir} does not exist")
|
165
|
+
ExitHelper.exit(1)
|
166
|
+
end
|
167
|
+
if not File.directory?(dir)
|
168
|
+
Bake.formatter.printError("Error: #{dir} is not a directory")
|
169
|
+
ExitHelper.exit(1)
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
def set_build_config_default(config)
|
174
|
+
index = config.index('-')
|
175
|
+
return false if (index != nil and index == 0)
|
176
|
+
set_build_config(config)
|
177
|
+
return true
|
178
|
+
end
|
179
|
+
|
180
|
+
def set_build_config(config)
|
181
|
+
if not @build_config.empty?
|
182
|
+
Bake.formatter.printError("Error: Cannot set build config '#{config}', because build config is already set to '#{@build_config}'")
|
183
|
+
ExitHelper.exit(1)
|
184
|
+
end
|
185
|
+
@build_config = config
|
186
|
+
end
|
187
|
+
|
188
|
+
def set_main_dir(dir)
|
189
|
+
check_valid_dir(dir)
|
190
|
+
@main_dir = File.expand_path(dir.gsub(/[\\]/,'/'))
|
191
|
+
@main_project_name = File::basename(@main_dir)
|
192
|
+
@def_roots = calc_def_roots(@main_dir)
|
193
|
+
end
|
194
|
+
|
195
|
+
def set_root(dir)
|
196
|
+
check_valid_dir(dir)
|
197
|
+
r = File.expand_path(dir.gsub(/[\\]/,'/'))
|
198
|
+
@roots << r if not @roots.include?r
|
199
|
+
end
|
200
|
+
|
201
|
+
def set_threads(num)
|
202
|
+
@threads = String === num ? num.to_i : num
|
203
|
+
if @threads <= 0
|
204
|
+
Bake.formatter.printError("Error: number of threads must be > 0")
|
205
|
+
ExitHelper.exit(1)
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
def set_set(str)
|
210
|
+
ar = str.split("=")
|
211
|
+
if not str.include?"=" or ar[0].length == 0
|
212
|
+
Bake.formatter.printError("Error: --set must be followed by key=value")
|
213
|
+
ExitHelper.exit(1)
|
214
|
+
end
|
215
|
+
@vars[ar[0]] = ar[1..-1].join("=")
|
216
|
+
end
|
217
|
+
|
218
|
+
end
|
219
|
+
|
220
|
+
end
|
221
|
+
|
222
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'bake/model/loader'
|
2
|
+
require 'bake/options/options'
|
3
|
+
|
4
|
+
module Bake
|
5
|
+
|
6
|
+
class ConfigNames
|
7
|
+
|
8
|
+
def self.print(configs, default, filename)
|
9
|
+
validConfigs = []
|
10
|
+
configs.each do |c|
|
11
|
+
validConfigs << c.name unless c.defaultToolchain.nil?
|
12
|
+
end
|
13
|
+
if validConfigs.length > 0
|
14
|
+
validConfigs.each do |v|
|
15
|
+
d = ""
|
16
|
+
d = " (default)" if v == default
|
17
|
+
puts "* " + v + d
|
18
|
+
end
|
19
|
+
else
|
20
|
+
Bake.formatter.printWarning("No configuration with a DefaultToolchain found", filename)
|
21
|
+
end
|
22
|
+
|
23
|
+
ExitHelper.exit(0)
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.show
|
27
|
+
loader = Loader.new
|
28
|
+
filename = Bake.options.main_dir+"/Project.meta"
|
29
|
+
f = loader.load(filename)
|
30
|
+
|
31
|
+
if f.root_elements.length != 1 or not Metamodel::Project === f.root_elements[0]
|
32
|
+
Bake.formatter.printError("Config file must have exactly one 'Project' element as root element", filename)
|
33
|
+
ExitHelper.exit(1)
|
34
|
+
end
|
35
|
+
|
36
|
+
default = f.root_elements[0].default
|
37
|
+
configs = f.root_elements[0].getConfig
|
38
|
+
|
39
|
+
ConfigNames.print(configs, default, filename)
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Bake
|
2
|
+
class Doc
|
3
|
+
def self.show
|
4
|
+
|
5
|
+
link = File.expand_path(File.dirname(__FILE__)+"/../../../doc/index.html")
|
6
|
+
if RUBY_PLATFORM =~ /mswin|mingw|cygwin/
|
7
|
+
system "start #{link}"
|
8
|
+
elsif RUBY_PLATFORM =~ /darwin/
|
9
|
+
system "open #{link}"
|
10
|
+
elsif RUBY_PLATFORM =~ /linux|bsd/
|
11
|
+
system "xdg-open #{link}"
|
12
|
+
else
|
13
|
+
puts "Please open #{link} manually in your browser."
|
14
|
+
end
|
15
|
+
|
16
|
+
ExitHelper.exit(0)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Bake
|
2
|
+
class ToolchainInfo
|
3
|
+
|
4
|
+
def self.printHash(x, level)
|
5
|
+
x.each do |k,v|
|
6
|
+
if Hash === v
|
7
|
+
if level > 0
|
8
|
+
level.times {print " "}
|
9
|
+
else
|
10
|
+
print "\n"
|
11
|
+
end
|
12
|
+
puts k
|
13
|
+
printHash(v,level+1)
|
14
|
+
elsif Array === v or String === v
|
15
|
+
level.times {print " "}
|
16
|
+
print "\n" if (level == 0)
|
17
|
+
puts "#{k} = #{v}"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.showToolchain(x)
|
23
|
+
tcs = Bake::Toolchain::Provider[x]
|
24
|
+
if tcs.nil?
|
25
|
+
puts "Toolchain not available"
|
26
|
+
else
|
27
|
+
printHash(tcs, 0)
|
28
|
+
end
|
29
|
+
ExitHelper.exit(0)
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.showToolchainList()
|
33
|
+
puts "Available toolchains:"
|
34
|
+
Bake::Toolchain::Provider.list.keys.each { |c| puts "* #{c}" }
|
35
|
+
ExitHelper.exit(0)
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|