bake-toolkit 2.20.4 → 2.21.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/Rakefile.rb +3 -3
- data/bin/bake +46 -46
- data/bin/bake-doc +11 -11
- data/bin/bakery +179 -179
- data/bin/createVSProjects +213 -213
- data/documentation/_build/html/_sources/changelog.txt +456 -451
- data/documentation/_build/html/_sources/commandline/commandline.txt +107 -107
- data/documentation/_build/html/_sources/concepts/build_hierarchy.txt +34 -34
- data/documentation/_build/html/_sources/concepts/concepts.txt +14 -14
- data/documentation/_build/html/_sources/concepts/inject.txt +65 -65
- data/documentation/_build/html/_sources/concepts/link_order.txt +91 -91
- data/documentation/_build/html/_sources/concepts/prebuild.txt +56 -56
- data/documentation/_build/html/_sources/concepts/the_main_project.txt +45 -45
- data/documentation/_build/html/_sources/concepts/the_project_meta_file.txt +72 -72
- data/documentation/_build/html/_sources/ide/eclipse/eclipse.txt +25 -25
- data/documentation/_build/html/_sources/ide/eclipse/how_to_convert_existing_cdt_workspace.txt +31 -31
- data/documentation/_build/html/_sources/ide/eclipse/how_to_create_a_new_project_in_eclipse.txt +18 -18
- data/documentation/_build/html/_sources/ide/eclipse/how_to_create_a_workspace_in_eclipse.txt +27 -27
- data/documentation/_build/html/_sources/ide/eclipse/how_to_debug_in_eclipse.txt +38 -38
- data/documentation/_build/html/_sources/ide/eclipse/how_to_install_eclipse_plugin.txt +44 -44
- data/documentation/_build/html/_sources/ide/eclipse/how_to_use_bake_in_eclipse.txt +86 -86
- data/documentation/_build/html/_sources/ide/ide_integrations.txt +8 -8
- data/documentation/_build/html/_sources/ide/vs/how_to_create_vs_projects.txt +15 -15
- data/documentation/_build/html/_sources/ide/vs/how_to_debug_in_vs.txt +35 -35
- data/documentation/_build/html/_sources/ide/vs/how_to_used_bake_in_vs.txt +35 -35
- data/documentation/_build/html/_sources/ide/vs/vs.txt +10 -10
- data/documentation/_build/html/_sources/ide/vs/vs_install.txt +43 -43
- data/documentation/_build/html/_sources/index.txt +33 -33
- data/documentation/_build/html/_sources/install/install_bake.txt +112 -112
- data/documentation/_build/html/_sources/internal.txt +50 -50
- data/documentation/_build/html/_sources/known_issues.txt +9 -9
- data/documentation/_build/html/_sources/license.txt +4 -4
- data/documentation/_build/html/_sources/performance/performance.txt +104 -104
- data/documentation/_build/html/_sources/quickstart/quickstart.txt +70 -70
- data/documentation/_build/html/_sources/syntax/adapt_configs.txt +143 -143
- data/documentation/_build/html/_sources/syntax/auto_adjustment.txt +43 -43
- data/documentation/_build/html/_sources/syntax/derive_configs.txt +93 -94
- data/documentation/_build/html/_sources/syntax/project_meta_syntax.txt +19 -19
- data/documentation/_build/html/_sources/syntax/syntax.txt +11 -11
- data/documentation/_build/html/_sources/syntax/variable_substitutions.txt +147 -147
- data/documentation/_build/html/_sources/tips_and_tricks/dot.txt +34 -34
- data/documentation/_build/html/_sources/tips_and_tricks/how_to_use_bake_with_cygwin.txt +62 -62
- data/documentation/_build/html/_sources/tips_and_tricks/static_code_analysis.txt +122 -122
- data/documentation/_build/html/_sources/tips_and_tricks/the_bakery.txt +72 -72
- data/documentation/_build/html/_sources/tips_and_tricks/the_clang.txt +43 -43
- data/documentation/_build/html/_sources/tips_and_tricks/tips_and_tricks.txt +34 -34
- data/documentation/_build/html/_sources/why_bake/why_bake.txt +40 -40
- data/documentation/_build/html/changelog.html +7 -0
- data/documentation/_build/html/commandline/commandline.html +2 -2
- data/documentation/_build/html/concepts/link_order.html +2 -2
- data/documentation/_build/html/concepts/prebuild.html +2 -2
- data/documentation/_build/html/index.html +4 -4
- data/documentation/_build/html/performance/performance.html +2 -2
- data/documentation/_build/html/searchindex.js +1 -1
- data/documentation/_build/html/syntax/adapt_configs.html +2 -2
- data/documentation/_build/html/syntax/syntax.html +2 -2
- data/documentation/_build/html/tips_and_tricks/the_clang.html +2 -2
- data/documentation/_build/html/why_bake/why_bake.html +2 -2
- data/lib/adapt/config/loader.rb +112 -112
- data/lib/bake/bundle.rb +158 -158
- data/lib/bake/cache.rb +179 -180
- data/lib/bake/config/checks.rb +68 -68
- data/lib/bake/config/loader.rb +363 -363
- data/lib/bake/libElement.rb +176 -176
- data/lib/bake/mergeConfig.rb +208 -208
- data/lib/bake/model/language.rb +45 -45
- data/lib/bake/model/loader.rb +99 -99
- data/lib/bake/model/metamodel.rb +307 -307
- data/lib/bake/model/metamodel_ext.rb +27 -27
- data/lib/bake/options/create.rb +95 -95
- data/lib/bake/options/options.rb +315 -310
- data/lib/bake/options/showDoc.rb +20 -20
- data/lib/bake/options/showLicense.rb +9 -9
- data/lib/bake/options/showToolchains.rb +38 -38
- data/lib/bake/options/usage.rb +79 -68
- data/lib/bake/subst.rb +313 -313
- data/lib/bake/toolchain/clang.rb +44 -44
- data/lib/bake/toolchain/clang_analyze.rb +31 -31
- data/lib/bake/toolchain/colorizing_formatter.rb +125 -125
- data/lib/bake/toolchain/diab.rb +53 -53
- data/lib/bake/toolchain/errorparser/diab_compiler_error_parser.rb +40 -40
- data/lib/bake/toolchain/errorparser/diab_linker_error_parser.rb +41 -41
- data/lib/bake/toolchain/errorparser/error_parser.rb +71 -71
- data/lib/bake/toolchain/errorparser/gcc_compiler_error_parser.rb +35 -35
- data/lib/bake/toolchain/errorparser/gcc_linker_error_parser.rb +35 -35
- data/lib/bake/toolchain/errorparser/greenhills_compiler_error_parser.rb +32 -32
- data/lib/bake/toolchain/errorparser/greenhills_linker_error_parser.rb +44 -44
- data/lib/bake/toolchain/errorparser/keil_compiler_error_parser.rb +40 -40
- data/lib/bake/toolchain/errorparser/keil_linker_error_parser.rb +30 -30
- data/lib/bake/toolchain/errorparser/lint_error_parser.rb +34 -34
- data/lib/bake/toolchain/errorparser/msvc_compiler_error_parser.rb +63 -63
- data/lib/bake/toolchain/errorparser/msvc_linker_error_parser.rb +42 -42
- data/lib/bake/toolchain/errorparser/process_output.rb +2 -2
- data/lib/bake/toolchain/errorparser/ti_compiler_error_parser.rb +30 -30
- data/lib/bake/toolchain/errorparser/ti_linker_error_parser.rb +30 -30
- data/lib/bake/toolchain/gcc.rb +49 -49
- data/lib/bake/toolchain/gcc_env.rb +55 -55
- data/lib/bake/toolchain/greenhills.rb +52 -52
- data/lib/bake/toolchain/keil.rb +53 -53
- data/lib/bake/toolchain/lint.rb +20 -20
- data/lib/bake/toolchain/msvc.rb +58 -58
- data/lib/bake/toolchain/provider.rb +146 -146
- data/lib/bake/toolchain/ti.rb +47 -47
- data/lib/bake/util.rb +149 -149
- data/lib/bakery/buildPattern.rb +24 -24
- data/lib/bakery/model/language.rb +22 -22
- data/lib/bakery/model/loader.rb +55 -55
- data/lib/bakery/model/metamodel.rb +48 -48
- data/lib/bakery/options/options.rb +87 -87
- data/lib/bakery/toBake.rb +81 -81
- data/lib/blocks/block.rb +324 -324
- data/lib/blocks/blockBase.rb +204 -204
- data/lib/blocks/commandLine.rb +38 -38
- data/lib/blocks/compile.rb +529 -528
- data/lib/blocks/convert.rb +41 -41
- data/lib/blocks/docu.rb +30 -30
- data/lib/blocks/executable.rb +174 -174
- data/lib/blocks/has_execute_command.rb +31 -31
- data/lib/blocks/library.rb +114 -114
- data/lib/blocks/lint.rb +56 -56
- data/lib/blocks/makefile.rb +100 -100
- data/lib/blocks/showIncludes.rb +140 -125
- data/lib/common/abortException.rb +4 -4
- data/lib/common/cleanup.rb +10 -10
- data/lib/common/exit_helper.rb +38 -38
- data/lib/common/ext/file.rb +88 -88
- data/lib/common/ext/rtext.rb +11 -11
- data/lib/common/ext/stdout.rb +45 -45
- data/lib/common/ide_interface.rb +194 -194
- data/lib/common/options/parser.rb +95 -85
- data/lib/common/process.rb +64 -64
- data/lib/common/utils.rb +52 -52
- data/lib/common/version.rb +31 -23
- data/lib/multithread/job.rb +44 -44
- data/lib/tocxx.rb +558 -555
- data/lib/vs/options.rb +69 -69
- data/license.txt +90 -90
- metadata +2 -2
|
@@ -1,86 +1,96 @@
|
|
|
1
|
-
require 'bake/toolchain/colorizing_formatter'
|
|
2
|
-
require 'common/exit_helper'
|
|
3
|
-
|
|
4
|
-
module Bake
|
|
5
|
-
|
|
6
|
-
class Parser
|
|
7
|
-
|
|
8
|
-
def initialize(argv)
|
|
9
|
-
@arguments = {}
|
|
10
|
-
@argv = argv
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
#def add_option(opt)
|
|
14
|
-
# @arguments[opt.param] = opt
|
|
15
|
-
#end
|
|
16
|
-
|
|
17
|
-
def add_option(params, block)
|
|
18
|
-
params.each { |p| @arguments[p] = block }
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def get_block(param)
|
|
22
|
-
opt = @arguments[param]
|
|
23
|
-
raise "Internal error in option handling" unless opt
|
|
24
|
-
opt.block
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def valid?(argument)
|
|
28
|
-
@arguments.include?argument
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def has_parameter?(argument)
|
|
32
|
-
return false unless valid?(argument)
|
|
33
|
-
@arguments[argument].parameters.length == 1
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def parse_internal(ignore_invalid, subOptions = nil)
|
|
37
|
-
pos = 0
|
|
38
|
-
begin
|
|
39
|
-
while pos < @argv.length do
|
|
40
|
-
arg = @argv[pos]
|
|
41
|
-
if not valid?arg
|
|
42
|
-
|
|
43
|
-
# used in bake config, must be passed from bakery to bake
|
|
44
|
-
if subOptions and subOptions.valid?arg
|
|
45
|
-
if subOptions.has_parameter?(arg)
|
|
46
|
-
if pos+1 < @argv.length and @argv[pos+1][0] != "-"
|
|
47
|
-
pos = pos + 1
|
|
48
|
-
else
|
|
49
|
-
raise "Argument for option #{arg} missing"
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
index = arg.index('-')
|
|
55
|
-
if index != nil and index == 0
|
|
56
|
-
raise "Option #{arg} unknown" if not ignore_invalid
|
|
57
|
-
else
|
|
58
|
-
@arguments[""].call(arg) # default paramter without "-"
|
|
59
|
-
end
|
|
60
|
-
else
|
|
61
|
-
option = @arguments[arg]
|
|
62
|
-
if option.parameters.length
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
1
|
+
require 'bake/toolchain/colorizing_formatter'
|
|
2
|
+
require 'common/exit_helper'
|
|
3
|
+
|
|
4
|
+
module Bake
|
|
5
|
+
|
|
6
|
+
class Parser
|
|
7
|
+
|
|
8
|
+
def initialize(argv)
|
|
9
|
+
@arguments = {}
|
|
10
|
+
@argv = argv
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
#def add_option(opt)
|
|
14
|
+
# @arguments[opt.param] = opt
|
|
15
|
+
#end
|
|
16
|
+
|
|
17
|
+
def add_option(params, block)
|
|
18
|
+
params.each { |p| @arguments[p] = block }
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def get_block(param)
|
|
22
|
+
opt = @arguments[param]
|
|
23
|
+
raise "Internal error in option handling" unless opt
|
|
24
|
+
opt.block
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def valid?(argument)
|
|
28
|
+
@arguments.include?argument
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def has_parameter?(argument)
|
|
32
|
+
return false unless valid?(argument)
|
|
33
|
+
@arguments[argument].parameters.length == 1
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def parse_internal(ignore_invalid, subOptions = nil)
|
|
37
|
+
pos = 0
|
|
38
|
+
begin
|
|
39
|
+
while pos < @argv.length do
|
|
40
|
+
arg = @argv[pos]
|
|
41
|
+
if not valid?arg
|
|
42
|
+
|
|
43
|
+
# used in bake config, must be passed from bakery to bake
|
|
44
|
+
if subOptions and subOptions.valid?arg
|
|
45
|
+
if subOptions.has_parameter?(arg)
|
|
46
|
+
if pos+1 < @argv.length and @argv[pos+1][0] != "-"
|
|
47
|
+
pos = pos + 1
|
|
48
|
+
else
|
|
49
|
+
raise "Argument for option #{arg} missing"
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
index = arg.index('-')
|
|
55
|
+
if index != nil and index == 0
|
|
56
|
+
raise "Option #{arg} unknown" if not ignore_invalid
|
|
57
|
+
else
|
|
58
|
+
@arguments[""].call(arg) # default paramter without "-"
|
|
59
|
+
end
|
|
60
|
+
else
|
|
61
|
+
option = @arguments[arg]
|
|
62
|
+
if option.parameters.length >= 1
|
|
63
|
+
hasArgument = (pos+1 < @argv.length and @argv[pos+1][0] != "-")
|
|
64
|
+
if option.parameters.length == 2 or hasArgument
|
|
65
|
+
if option.parameters.length == 2
|
|
66
|
+
if hasArgument
|
|
67
|
+
option.call(@argv[pos+1], nil) # do not use default value
|
|
68
|
+
pos = pos + 1
|
|
69
|
+
else
|
|
70
|
+
option.call(nil, nil) # use default value
|
|
71
|
+
end
|
|
72
|
+
else
|
|
73
|
+
option.call(@argv[pos+1])
|
|
74
|
+
pos = pos + 1
|
|
75
|
+
end
|
|
76
|
+
else
|
|
77
|
+
raise "Argument for option #{arg} missing"
|
|
78
|
+
end
|
|
79
|
+
else
|
|
80
|
+
option.call()
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
pos = pos + 1
|
|
84
|
+
end
|
|
85
|
+
rescue SystemExit => e
|
|
86
|
+
raise
|
|
87
|
+
rescue Exception => e
|
|
88
|
+
Bake.formatter.printError("Error: " + e.message)
|
|
89
|
+
ExitHelper.exit(1)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
end
|
|
95
|
+
|
|
86
96
|
end
|
data/lib/common/process.rb
CHANGED
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
module Bake
|
|
2
|
-
|
|
3
|
-
class ProcessHelper
|
|
4
|
-
@@pid = nil
|
|
5
|
-
@@rd = nil
|
|
6
|
-
|
|
7
|
-
def self.run(cmdLineArray, immediateOutput=false, force=true, outpipe=nil, exitCodeArray = [0])
|
|
8
|
-
rd, wr = IO.pipe
|
|
9
|
-
@@rd = rd if force
|
|
10
|
-
duppedCmdLineArray = cmdLineArray.dup
|
|
11
|
-
duppedCmdLineArray << { :err=>wr, :out=>(outpipe ? outpipe : wr) }
|
|
12
|
-
begin
|
|
13
|
-
pid = spawn(*duppedCmdLineArray)
|
|
14
|
-
rescue Exception => e
|
|
15
|
-
return [false, e.message]
|
|
16
|
-
end
|
|
17
|
-
@@pid = pid if force
|
|
18
|
-
wr.close
|
|
19
|
-
output = ""
|
|
20
|
-
begin
|
|
21
|
-
while not rd.eof?
|
|
22
|
-
tmp = rd.read(1)
|
|
23
|
-
if (tmp != nil)
|
|
24
|
-
tmp.encode!('UTF-8', :invalid => :replace, :undef => :replace, :replace => '')
|
|
25
|
-
tmp.encode!('binary', :invalid => :replace, :undef => :replace, :replace => '')
|
|
26
|
-
output << tmp
|
|
27
|
-
|
|
28
|
-
print tmp if immediateOutput
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
rescue
|
|
32
|
-
# Seems to be a bug in ruby: sometimes there is a bad file descriptor on Windows instead of eof, which causes
|
|
33
|
-
# an exception on read(). However, this happens not before everything is read, so there is no practical difference
|
|
34
|
-
# how to "break" the loop.
|
|
35
|
-
# This problem occurs on Windows command shell and Cygwin.
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
begin
|
|
39
|
-
rd.close
|
|
40
|
-
rescue
|
|
41
|
-
end
|
|
42
|
-
pid, status = Process.wait2(pid)
|
|
43
|
-
@@pid = nil
|
|
44
|
-
@@rd = nil
|
|
45
|
-
return [false, output] if status.nil?
|
|
46
|
-
exitCodeArray = [0] if exitCodeArray.empty?
|
|
47
|
-
[(exitCodeArray.include?status.exitstatus), output]
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def self.killProcess(force) # do not kill compile processes or implement rd and pid array if really needed
|
|
51
|
-
begin
|
|
52
|
-
@@rd.close
|
|
53
|
-
rescue Exception => e
|
|
54
|
-
end
|
|
55
|
-
begin
|
|
56
|
-
Process.kill("KILL",@@pid)
|
|
57
|
-
rescue Exception => e
|
|
58
|
-
end
|
|
59
|
-
@@rd = nil
|
|
60
|
-
@@pid = nil
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
end
|
|
64
|
-
|
|
1
|
+
module Bake
|
|
2
|
+
|
|
3
|
+
class ProcessHelper
|
|
4
|
+
@@pid = nil
|
|
5
|
+
@@rd = nil
|
|
6
|
+
|
|
7
|
+
def self.run(cmdLineArray, immediateOutput=false, force=true, outpipe=nil, exitCodeArray = [0])
|
|
8
|
+
rd, wr = IO.pipe
|
|
9
|
+
@@rd = rd if force
|
|
10
|
+
duppedCmdLineArray = cmdLineArray.dup
|
|
11
|
+
duppedCmdLineArray << { :err=>wr, :out=>(outpipe ? outpipe : wr) }
|
|
12
|
+
begin
|
|
13
|
+
pid = spawn(*duppedCmdLineArray)
|
|
14
|
+
rescue Exception => e
|
|
15
|
+
return [false, e.message]
|
|
16
|
+
end
|
|
17
|
+
@@pid = pid if force
|
|
18
|
+
wr.close
|
|
19
|
+
output = ""
|
|
20
|
+
begin
|
|
21
|
+
while not rd.eof?
|
|
22
|
+
tmp = rd.read(1)
|
|
23
|
+
if (tmp != nil)
|
|
24
|
+
tmp.encode!('UTF-8', :invalid => :replace, :undef => :replace, :replace => '')
|
|
25
|
+
tmp.encode!('binary', :invalid => :replace, :undef => :replace, :replace => '')
|
|
26
|
+
output << tmp
|
|
27
|
+
|
|
28
|
+
print tmp if immediateOutput
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
rescue
|
|
32
|
+
# Seems to be a bug in ruby: sometimes there is a bad file descriptor on Windows instead of eof, which causes
|
|
33
|
+
# an exception on read(). However, this happens not before everything is read, so there is no practical difference
|
|
34
|
+
# how to "break" the loop.
|
|
35
|
+
# This problem occurs on Windows command shell and Cygwin.
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
begin
|
|
39
|
+
rd.close
|
|
40
|
+
rescue
|
|
41
|
+
end
|
|
42
|
+
pid, status = Process.wait2(pid)
|
|
43
|
+
@@pid = nil
|
|
44
|
+
@@rd = nil
|
|
45
|
+
return [false, output] if status.nil?
|
|
46
|
+
exitCodeArray = [0] if exitCodeArray.empty?
|
|
47
|
+
[(exitCodeArray.include?status.exitstatus), output]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def self.killProcess(force) # do not kill compile processes or implement rd and pid array if really needed
|
|
51
|
+
begin
|
|
52
|
+
@@rd.close
|
|
53
|
+
rescue Exception => e
|
|
54
|
+
end
|
|
55
|
+
begin
|
|
56
|
+
Process.kill("KILL",@@pid)
|
|
57
|
+
rescue Exception => e
|
|
58
|
+
end
|
|
59
|
+
@@rd = nil
|
|
60
|
+
@@pid = nil
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end
|
|
64
|
+
|
|
65
65
|
end
|
data/lib/common/utils.rb
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
module Bake
|
|
2
|
-
|
|
3
|
-
module Utils
|
|
4
|
-
|
|
5
|
-
def self.flagSplit(str, removeQuotes)
|
|
6
|
-
return [] if str == ""
|
|
7
|
-
return [str] unless str.include?" "
|
|
8
|
-
|
|
9
|
-
hasQuote = false
|
|
10
|
-
hasDoubleQuote = false
|
|
11
|
-
hadQuote = false
|
|
12
|
-
ar = []
|
|
13
|
-
s = ""
|
|
14
|
-
|
|
15
|
-
str.split("").each do |i|
|
|
16
|
-
hasDoubleQuote = !hasDoubleQuote if !hasQuote and i == '"'
|
|
17
|
-
hasQuote = !hasQuote if !hasDoubleQuote and i == '\''
|
|
18
|
-
hadQuote = true if hasDoubleQuote
|
|
19
|
-
if i == ' '
|
|
20
|
-
if not hasDoubleQuote and not hasQuote
|
|
21
|
-
if hadQuote and removeQuotes
|
|
22
|
-
ar << s[1..-2] if s.length > 2
|
|
23
|
-
hadQuote = false
|
|
24
|
-
else
|
|
25
|
-
ar << s if s.length > 0
|
|
26
|
-
end
|
|
27
|
-
s = ""
|
|
28
|
-
next
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
s << i
|
|
32
|
-
end
|
|
33
|
-
ar << s if s.length > 0
|
|
34
|
-
ar
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
# Simple helper query the operating system we are running in
|
|
38
|
-
module OS
|
|
39
|
-
|
|
40
|
-
# Is it windows
|
|
41
|
-
def OS.windows?
|
|
42
|
-
(RUBY_PLATFORM =~ /cygwin|mswin|mingw|bccwin|wince|emx/) != nil
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def self.deep_copy(x)
|
|
48
|
-
Marshal.load(Marshal.dump(x))
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
end
|
|
52
|
-
end
|
|
1
|
+
module Bake
|
|
2
|
+
|
|
3
|
+
module Utils
|
|
4
|
+
|
|
5
|
+
def self.flagSplit(str, removeQuotes)
|
|
6
|
+
return [] if str == ""
|
|
7
|
+
return [str] unless str.include?" "
|
|
8
|
+
|
|
9
|
+
hasQuote = false
|
|
10
|
+
hasDoubleQuote = false
|
|
11
|
+
hadQuote = false
|
|
12
|
+
ar = []
|
|
13
|
+
s = ""
|
|
14
|
+
|
|
15
|
+
str.split("").each do |i|
|
|
16
|
+
hasDoubleQuote = !hasDoubleQuote if !hasQuote and i == '"'
|
|
17
|
+
hasQuote = !hasQuote if !hasDoubleQuote and i == '\''
|
|
18
|
+
hadQuote = true if hasDoubleQuote
|
|
19
|
+
if i == ' '
|
|
20
|
+
if not hasDoubleQuote and not hasQuote
|
|
21
|
+
if hadQuote and removeQuotes
|
|
22
|
+
ar << s[1..-2] if s.length > 2
|
|
23
|
+
hadQuote = false
|
|
24
|
+
else
|
|
25
|
+
ar << s if s.length > 0
|
|
26
|
+
end
|
|
27
|
+
s = ""
|
|
28
|
+
next
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
s << i
|
|
32
|
+
end
|
|
33
|
+
ar << s if s.length > 0
|
|
34
|
+
ar
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Simple helper query the operating system we are running in
|
|
38
|
+
module OS
|
|
39
|
+
|
|
40
|
+
# Is it windows
|
|
41
|
+
def OS.windows?
|
|
42
|
+
(RUBY_PLATFORM =~ /cygwin|mswin|mingw|bccwin|wince|emx/) != nil
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def self.deep_copy(x)
|
|
48
|
+
Marshal.load(Marshal.dump(x))
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
end
|
data/lib/common/version.rb
CHANGED
|
@@ -1,23 +1,31 @@
|
|
|
1
|
-
module Bake
|
|
2
|
-
class Version
|
|
3
|
-
def self.number
|
|
4
|
-
"2.
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
end
|
|
1
|
+
module Bake
|
|
2
|
+
class Version
|
|
3
|
+
def self.number
|
|
4
|
+
"2.21.0"
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def self.printBakeVersion(ry = "")
|
|
8
|
+
puts "-- bake#{ry} #{Bake::Version.number}, ruby #{RUBY_VERSION}p#{RUBY_PATCHLEVEL}, platform #{RUBY_PLATFORM} --"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def self.printBakeryVersion()
|
|
12
|
+
printBakeVersion("ry")
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
expectedRGen = "0.8.1"
|
|
17
|
+
expectedRText = "0.8.1"
|
|
18
|
+
|
|
19
|
+
begin
|
|
20
|
+
gem "rgen", "=#{expectedRGen}"
|
|
21
|
+
rescue Exception => e
|
|
22
|
+
puts "Warning: Failed to load rgen #{expectedRGen}, using latest version"
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
begin
|
|
26
|
+
gem "rtext", "=#{expectedRText}"
|
|
27
|
+
rescue Exception => e
|
|
28
|
+
puts "Warning: Failed to load rtext #{expectedRText}, using latest version"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|