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.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile.rb +3 -3
  3. data/bin/bake +46 -46
  4. data/bin/bake-doc +11 -11
  5. data/bin/bakery +179 -179
  6. data/bin/createVSProjects +213 -213
  7. data/documentation/_build/html/_sources/changelog.txt +456 -451
  8. data/documentation/_build/html/_sources/commandline/commandline.txt +107 -107
  9. data/documentation/_build/html/_sources/concepts/build_hierarchy.txt +34 -34
  10. data/documentation/_build/html/_sources/concepts/concepts.txt +14 -14
  11. data/documentation/_build/html/_sources/concepts/inject.txt +65 -65
  12. data/documentation/_build/html/_sources/concepts/link_order.txt +91 -91
  13. data/documentation/_build/html/_sources/concepts/prebuild.txt +56 -56
  14. data/documentation/_build/html/_sources/concepts/the_main_project.txt +45 -45
  15. data/documentation/_build/html/_sources/concepts/the_project_meta_file.txt +72 -72
  16. data/documentation/_build/html/_sources/ide/eclipse/eclipse.txt +25 -25
  17. data/documentation/_build/html/_sources/ide/eclipse/how_to_convert_existing_cdt_workspace.txt +31 -31
  18. data/documentation/_build/html/_sources/ide/eclipse/how_to_create_a_new_project_in_eclipse.txt +18 -18
  19. data/documentation/_build/html/_sources/ide/eclipse/how_to_create_a_workspace_in_eclipse.txt +27 -27
  20. data/documentation/_build/html/_sources/ide/eclipse/how_to_debug_in_eclipse.txt +38 -38
  21. data/documentation/_build/html/_sources/ide/eclipse/how_to_install_eclipse_plugin.txt +44 -44
  22. data/documentation/_build/html/_sources/ide/eclipse/how_to_use_bake_in_eclipse.txt +86 -86
  23. data/documentation/_build/html/_sources/ide/ide_integrations.txt +8 -8
  24. data/documentation/_build/html/_sources/ide/vs/how_to_create_vs_projects.txt +15 -15
  25. data/documentation/_build/html/_sources/ide/vs/how_to_debug_in_vs.txt +35 -35
  26. data/documentation/_build/html/_sources/ide/vs/how_to_used_bake_in_vs.txt +35 -35
  27. data/documentation/_build/html/_sources/ide/vs/vs.txt +10 -10
  28. data/documentation/_build/html/_sources/ide/vs/vs_install.txt +43 -43
  29. data/documentation/_build/html/_sources/index.txt +33 -33
  30. data/documentation/_build/html/_sources/install/install_bake.txt +112 -112
  31. data/documentation/_build/html/_sources/internal.txt +50 -50
  32. data/documentation/_build/html/_sources/known_issues.txt +9 -9
  33. data/documentation/_build/html/_sources/license.txt +4 -4
  34. data/documentation/_build/html/_sources/performance/performance.txt +104 -104
  35. data/documentation/_build/html/_sources/quickstart/quickstart.txt +70 -70
  36. data/documentation/_build/html/_sources/syntax/adapt_configs.txt +143 -143
  37. data/documentation/_build/html/_sources/syntax/auto_adjustment.txt +43 -43
  38. data/documentation/_build/html/_sources/syntax/derive_configs.txt +93 -94
  39. data/documentation/_build/html/_sources/syntax/project_meta_syntax.txt +19 -19
  40. data/documentation/_build/html/_sources/syntax/syntax.txt +11 -11
  41. data/documentation/_build/html/_sources/syntax/variable_substitutions.txt +147 -147
  42. data/documentation/_build/html/_sources/tips_and_tricks/dot.txt +34 -34
  43. data/documentation/_build/html/_sources/tips_and_tricks/how_to_use_bake_with_cygwin.txt +62 -62
  44. data/documentation/_build/html/_sources/tips_and_tricks/static_code_analysis.txt +122 -122
  45. data/documentation/_build/html/_sources/tips_and_tricks/the_bakery.txt +72 -72
  46. data/documentation/_build/html/_sources/tips_and_tricks/the_clang.txt +43 -43
  47. data/documentation/_build/html/_sources/tips_and_tricks/tips_and_tricks.txt +34 -34
  48. data/documentation/_build/html/_sources/why_bake/why_bake.txt +40 -40
  49. data/documentation/_build/html/changelog.html +7 -0
  50. data/documentation/_build/html/commandline/commandline.html +2 -2
  51. data/documentation/_build/html/concepts/link_order.html +2 -2
  52. data/documentation/_build/html/concepts/prebuild.html +2 -2
  53. data/documentation/_build/html/index.html +4 -4
  54. data/documentation/_build/html/performance/performance.html +2 -2
  55. data/documentation/_build/html/searchindex.js +1 -1
  56. data/documentation/_build/html/syntax/adapt_configs.html +2 -2
  57. data/documentation/_build/html/syntax/syntax.html +2 -2
  58. data/documentation/_build/html/tips_and_tricks/the_clang.html +2 -2
  59. data/documentation/_build/html/why_bake/why_bake.html +2 -2
  60. data/lib/adapt/config/loader.rb +112 -112
  61. data/lib/bake/bundle.rb +158 -158
  62. data/lib/bake/cache.rb +179 -180
  63. data/lib/bake/config/checks.rb +68 -68
  64. data/lib/bake/config/loader.rb +363 -363
  65. data/lib/bake/libElement.rb +176 -176
  66. data/lib/bake/mergeConfig.rb +208 -208
  67. data/lib/bake/model/language.rb +45 -45
  68. data/lib/bake/model/loader.rb +99 -99
  69. data/lib/bake/model/metamodel.rb +307 -307
  70. data/lib/bake/model/metamodel_ext.rb +27 -27
  71. data/lib/bake/options/create.rb +95 -95
  72. data/lib/bake/options/options.rb +315 -310
  73. data/lib/bake/options/showDoc.rb +20 -20
  74. data/lib/bake/options/showLicense.rb +9 -9
  75. data/lib/bake/options/showToolchains.rb +38 -38
  76. data/lib/bake/options/usage.rb +79 -68
  77. data/lib/bake/subst.rb +313 -313
  78. data/lib/bake/toolchain/clang.rb +44 -44
  79. data/lib/bake/toolchain/clang_analyze.rb +31 -31
  80. data/lib/bake/toolchain/colorizing_formatter.rb +125 -125
  81. data/lib/bake/toolchain/diab.rb +53 -53
  82. data/lib/bake/toolchain/errorparser/diab_compiler_error_parser.rb +40 -40
  83. data/lib/bake/toolchain/errorparser/diab_linker_error_parser.rb +41 -41
  84. data/lib/bake/toolchain/errorparser/error_parser.rb +71 -71
  85. data/lib/bake/toolchain/errorparser/gcc_compiler_error_parser.rb +35 -35
  86. data/lib/bake/toolchain/errorparser/gcc_linker_error_parser.rb +35 -35
  87. data/lib/bake/toolchain/errorparser/greenhills_compiler_error_parser.rb +32 -32
  88. data/lib/bake/toolchain/errorparser/greenhills_linker_error_parser.rb +44 -44
  89. data/lib/bake/toolchain/errorparser/keil_compiler_error_parser.rb +40 -40
  90. data/lib/bake/toolchain/errorparser/keil_linker_error_parser.rb +30 -30
  91. data/lib/bake/toolchain/errorparser/lint_error_parser.rb +34 -34
  92. data/lib/bake/toolchain/errorparser/msvc_compiler_error_parser.rb +63 -63
  93. data/lib/bake/toolchain/errorparser/msvc_linker_error_parser.rb +42 -42
  94. data/lib/bake/toolchain/errorparser/process_output.rb +2 -2
  95. data/lib/bake/toolchain/errorparser/ti_compiler_error_parser.rb +30 -30
  96. data/lib/bake/toolchain/errorparser/ti_linker_error_parser.rb +30 -30
  97. data/lib/bake/toolchain/gcc.rb +49 -49
  98. data/lib/bake/toolchain/gcc_env.rb +55 -55
  99. data/lib/bake/toolchain/greenhills.rb +52 -52
  100. data/lib/bake/toolchain/keil.rb +53 -53
  101. data/lib/bake/toolchain/lint.rb +20 -20
  102. data/lib/bake/toolchain/msvc.rb +58 -58
  103. data/lib/bake/toolchain/provider.rb +146 -146
  104. data/lib/bake/toolchain/ti.rb +47 -47
  105. data/lib/bake/util.rb +149 -149
  106. data/lib/bakery/buildPattern.rb +24 -24
  107. data/lib/bakery/model/language.rb +22 -22
  108. data/lib/bakery/model/loader.rb +55 -55
  109. data/lib/bakery/model/metamodel.rb +48 -48
  110. data/lib/bakery/options/options.rb +87 -87
  111. data/lib/bakery/toBake.rb +81 -81
  112. data/lib/blocks/block.rb +324 -324
  113. data/lib/blocks/blockBase.rb +204 -204
  114. data/lib/blocks/commandLine.rb +38 -38
  115. data/lib/blocks/compile.rb +529 -528
  116. data/lib/blocks/convert.rb +41 -41
  117. data/lib/blocks/docu.rb +30 -30
  118. data/lib/blocks/executable.rb +174 -174
  119. data/lib/blocks/has_execute_command.rb +31 -31
  120. data/lib/blocks/library.rb +114 -114
  121. data/lib/blocks/lint.rb +56 -56
  122. data/lib/blocks/makefile.rb +100 -100
  123. data/lib/blocks/showIncludes.rb +140 -125
  124. data/lib/common/abortException.rb +4 -4
  125. data/lib/common/cleanup.rb +10 -10
  126. data/lib/common/exit_helper.rb +38 -38
  127. data/lib/common/ext/file.rb +88 -88
  128. data/lib/common/ext/rtext.rb +11 -11
  129. data/lib/common/ext/stdout.rb +45 -45
  130. data/lib/common/ide_interface.rb +194 -194
  131. data/lib/common/options/parser.rb +95 -85
  132. data/lib/common/process.rb +64 -64
  133. data/lib/common/utils.rb +52 -52
  134. data/lib/common/version.rb +31 -23
  135. data/lib/multithread/job.rb +44 -44
  136. data/lib/tocxx.rb +558 -555
  137. data/lib/vs/options.rb +69 -69
  138. data/license.txt +90 -90
  139. 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 == 1
63
- if pos+1 < @argv.length and @argv[pos+1][0] != "-"
64
- option.call(@argv[pos+1])
65
- pos = pos + 1
66
- else
67
- raise "Argument for option #{arg} missing"
68
- end
69
- else
70
- option.call()
71
- end
72
- end
73
- pos = pos + 1
74
- end
75
- rescue SystemExit => e
76
- raise
77
- rescue Exception => e
78
- Bake.formatter.printError("Error: " + e.message)
79
- ExitHelper.exit(1)
80
- end
81
-
82
- end
83
-
84
- end
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
@@ -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
@@ -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
@@ -1,23 +1,31 @@
1
- module Bake
2
- class Version
3
- def self.number
4
- "2.20.4"
5
- end
6
- end
7
-
8
- expectedRGen = "0.8.1"
9
- expectedRText = "0.8.1"
10
-
11
- begin
12
- gem "rgen", "=#{expectedRGen}"
13
- rescue Exception => e
14
- puts "Warning: Failed to load rgen #{expectedRGen}, using latest version"
15
- end
16
-
17
- begin
18
- gem "rtext", "=#{expectedRText}"
19
- rescue Exception => e
20
- puts "Warning: Failed to load rtext #{expectedRText}, using latest version"
21
- end
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