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,44 +1,44 @@
1
- require 'common/utils'
2
- require 'bake/toolchain/provider'
3
- require 'bake/toolchain/errorparser/error_parser'
4
- require 'bake/toolchain/errorparser/gcc_compiler_error_parser'
5
- require 'bake/toolchain/errorparser/gcc_linker_error_parser'
6
-
7
- module Bake
8
- module Toolchain
9
- gccCompilerErrorParser = GCCCompilerErrorParser.new
10
-
11
- CLANG_CHAIN = Provider.add("CLANG")
12
-
13
- CLANG_CHAIN[:COMPILER][:CPP].update({
14
- :COMMAND => "clang++",
15
- :DEFINE_FLAG => "-D",
16
- :OBJECT_FILE_FLAG => "-o",
17
- :OBJ_FLAG_SPACE => true,
18
- :INCLUDE_PATH_FLAG => "-I",
19
- :COMPILE_FLAGS => "-c ",
20
- :DEP_FLAGS => "-MD -MF ", # empty space at the end is important!
21
- :ERROR_PARSER => gccCompilerErrorParser
22
- })
23
-
24
- CLANG_CHAIN[:COMPILER][:C] = Utils.deep_copy(CLANG_CHAIN[:COMPILER][:CPP])
25
- CLANG_CHAIN[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
26
- CLANG_CHAIN[:COMPILER][:C][:COMMAND] = "clang"
27
-
28
- CLANG_CHAIN[:COMPILER][:ASM] = Utils.deep_copy(CLANG_CHAIN[:COMPILER][:C])
29
- CLANG_CHAIN[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
30
-
31
- CLANG_CHAIN[:ARCHIVER][:COMMAND] = "ar"
32
- CLANG_CHAIN[:ARCHIVER][:ARCHIVE_FLAGS] = "r"
33
- CLANG_CHAIN[:ARCHIVER][:ERROR_PARSER] = gccCompilerErrorParser
34
-
35
- CLANG_CHAIN[:LINKER][:COMMAND] = "clang++"
36
- CLANG_CHAIN[:LINKER][:SCRIPT] = "-T"
37
- CLANG_CHAIN[:LINKER][:USER_LIB_FLAG] = "-l:"
38
- CLANG_CHAIN[:LINKER][:EXE_FLAG] = "-o"
39
- CLANG_CHAIN[:LINKER][:LIB_FLAG] = "-l"
40
- CLANG_CHAIN[:LINKER][:LIB_PATH_FLAG] = "-L"
41
-
42
- CLANG_CHAIN[:LINKER][:ERROR_PARSER] = GCCLinkerErrorParser.new
43
- end
44
- end
1
+ require 'common/utils'
2
+ require 'bake/toolchain/provider'
3
+ require 'bake/toolchain/errorparser/error_parser'
4
+ require 'bake/toolchain/errorparser/gcc_compiler_error_parser'
5
+ require 'bake/toolchain/errorparser/gcc_linker_error_parser'
6
+
7
+ module Bake
8
+ module Toolchain
9
+ gccCompilerErrorParser = GCCCompilerErrorParser.new
10
+
11
+ CLANG_CHAIN = Provider.add("CLANG")
12
+
13
+ CLANG_CHAIN[:COMPILER][:CPP].update({
14
+ :COMMAND => "clang++",
15
+ :DEFINE_FLAG => "-D",
16
+ :OBJECT_FILE_FLAG => "-o",
17
+ :OBJ_FLAG_SPACE => true,
18
+ :INCLUDE_PATH_FLAG => "-I",
19
+ :COMPILE_FLAGS => "-c ",
20
+ :DEP_FLAGS => "-MD -MF ", # empty space at the end is important!
21
+ :ERROR_PARSER => gccCompilerErrorParser
22
+ })
23
+
24
+ CLANG_CHAIN[:COMPILER][:C] = Utils.deep_copy(CLANG_CHAIN[:COMPILER][:CPP])
25
+ CLANG_CHAIN[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
26
+ CLANG_CHAIN[:COMPILER][:C][:COMMAND] = "clang"
27
+
28
+ CLANG_CHAIN[:COMPILER][:ASM] = Utils.deep_copy(CLANG_CHAIN[:COMPILER][:C])
29
+ CLANG_CHAIN[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
30
+
31
+ CLANG_CHAIN[:ARCHIVER][:COMMAND] = "ar"
32
+ CLANG_CHAIN[:ARCHIVER][:ARCHIVE_FLAGS] = "r"
33
+ CLANG_CHAIN[:ARCHIVER][:ERROR_PARSER] = gccCompilerErrorParser
34
+
35
+ CLANG_CHAIN[:LINKER][:COMMAND] = "clang++"
36
+ CLANG_CHAIN[:LINKER][:SCRIPT] = "-T"
37
+ CLANG_CHAIN[:LINKER][:USER_LIB_FLAG] = "-l:"
38
+ CLANG_CHAIN[:LINKER][:EXE_FLAG] = "-o"
39
+ CLANG_CHAIN[:LINKER][:LIB_FLAG] = "-l"
40
+ CLANG_CHAIN[:LINKER][:LIB_PATH_FLAG] = "-L"
41
+
42
+ CLANG_CHAIN[:LINKER][:ERROR_PARSER] = GCCLinkerErrorParser.new
43
+ end
44
+ end
@@ -1,31 +1,31 @@
1
- require 'common/utils'
2
- require 'bake/toolchain/provider'
3
-
4
- module Bake
5
- module Toolchain
6
- CLANG_ANALYZE_CHAIN = Provider.add("CLANG_ANALYZE")
7
-
8
- CLANG_ANALYZE_CHAIN[:COMPILER][:CPP].update({
9
- :COMMAND => "clang++",
10
- :DEFINE_FLAG => "-D",
11
- :OBJECT_FILE_FLAG => "-o",
12
- :OBJ_FLAG_SPACE => true,
13
- :OBJECT_FILE_ENDING => ".plist",
14
- :INCLUDE_PATH_FLAG => "-I",
15
- :COMPILE_FLAGS => "-cc1 -analyze -analyzer-output=plist ",
16
- :DEP_FLAGS => "",
17
- :DEP_FLAGS_FILENAME => false,
18
- :ERROR_PARSER => nil
19
- })
20
-
21
- CLANG_ANALYZE_CHAIN[:COMPILER][:C] = Utils.deep_copy(CLANG_ANALYZE_CHAIN[:COMPILER][:CPP])
22
- CLANG_ANALYZE_CHAIN[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
23
- CLANG_ANALYZE_CHAIN[:COMPILER][:C][:COMMAND] = "clang"
24
-
25
- CLANG_ANALYZE_CHAIN[:COMPILER][:ASM] = Utils.deep_copy(CLANG_ANALYZE_CHAIN[:COMPILER][:C])
26
- CLANG_ANALYZE_CHAIN[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
27
-
28
- CLANG_ANALYZE_CHAIN[:ARCHIVER][:COMMAND] = ""
29
- CLANG_ANALYZE_CHAIN[:LINKER][:COMMAND] = ""
30
- end
31
- end
1
+ require 'common/utils'
2
+ require 'bake/toolchain/provider'
3
+
4
+ module Bake
5
+ module Toolchain
6
+ CLANG_ANALYZE_CHAIN = Provider.add("CLANG_ANALYZE")
7
+
8
+ CLANG_ANALYZE_CHAIN[:COMPILER][:CPP].update({
9
+ :COMMAND => "clang++",
10
+ :DEFINE_FLAG => "-D",
11
+ :OBJECT_FILE_FLAG => "-o",
12
+ :OBJ_FLAG_SPACE => true,
13
+ :OBJECT_FILE_ENDING => ".plist",
14
+ :INCLUDE_PATH_FLAG => "-I",
15
+ :COMPILE_FLAGS => "-cc1 -analyze -analyzer-output=plist ",
16
+ :DEP_FLAGS => "",
17
+ :DEP_FLAGS_FILENAME => false,
18
+ :ERROR_PARSER => nil
19
+ })
20
+
21
+ CLANG_ANALYZE_CHAIN[:COMPILER][:C] = Utils.deep_copy(CLANG_ANALYZE_CHAIN[:COMPILER][:CPP])
22
+ CLANG_ANALYZE_CHAIN[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
23
+ CLANG_ANALYZE_CHAIN[:COMPILER][:C][:COMMAND] = "clang"
24
+
25
+ CLANG_ANALYZE_CHAIN[:COMPILER][:ASM] = Utils.deep_copy(CLANG_ANALYZE_CHAIN[:COMPILER][:C])
26
+ CLANG_ANALYZE_CHAIN[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
27
+
28
+ CLANG_ANALYZE_CHAIN[:ARCHIVER][:COMMAND] = ""
29
+ CLANG_ANALYZE_CHAIN[:LINKER][:COMMAND] = ""
30
+ end
31
+ end
@@ -1,125 +1,125 @@
1
- require 'colored'
2
-
3
- module Bake
4
- #include Utils ????
5
-
6
- class ColorizingFormatter
7
-
8
- def initialize
9
- @scheme = :none
10
- end
11
-
12
- def setColorScheme(scheme)
13
-
14
- if (scheme != :black and scheme != :white and scheme != :none)
15
- Bake.formatter.printError("Error: color scheme must be 'black' or 'white'")
16
- ExitHelper.exit(1)
17
- end
18
- @scheme = scheme
19
-
20
- if @scheme == :black
21
- @warning_color = :yellow
22
- @error_color = :red
23
- @info_color = :white
24
- @additional_info_color = :cyan
25
- @success_color = :green
26
- elsif @scheme == :white
27
- @warning_color = :magenta
28
- @error_color = :red
29
- @info_color = :black
30
- @additional_info_color = :blue
31
- @success_color = :green
32
- end
33
- end
34
-
35
- def printInternal(col, str)
36
- puts(@scheme == :none ? str : [col,:bold].inject(str) {|m,x| m.send(x)})
37
- end
38
-
39
- def createIdeError(str, file_name, line_number, severity)
40
- if (file_name)
41
- d = ErrorDesc.new
42
- d.file_name = file_name
43
- d.line_number = (line_number ? line_number : 0)
44
- d.message = str
45
- d.severity = severity
46
- Bake::IDEInterface.instance.set_errors([d])
47
- end
48
- end
49
-
50
- def processString(prefix, str, file_name_or_elem, line_num, severity)
51
- if file_name_or_elem.respond_to?("file_name")
52
- file_name = file_name_or_elem.file_name
53
- line_num = file_name_or_elem.line_number
54
- elsif String === file_name_or_elem
55
- file_name = file_name_or_elem
56
- else
57
- file_name = nil
58
- end
59
-
60
- createIdeError(str, file_name, line_num, severity)
61
-
62
- line = (line_num ? ":#{line_num}" : "")
63
- file = (file_name ? "#{file_name}#{line}: " : "")
64
- return file + prefix + ": " + str
65
- end
66
-
67
- def printError(str, file_name_or_elem=nil, line_num=nil)
68
- str = processString("Error", str, file_name_or_elem, line_num, Bake::ErrorParser::SEVERITY_ERROR) if file_name_or_elem
69
- printInternal(@error_color, str)
70
- end
71
-
72
- def printWarning(str, file_name=nil, line_num=nil)
73
- str = processString("Warning", str, file_name, line_num, Bake::ErrorParser::SEVERITY_WARNING) if file_name
74
- printInternal(@warning_color, str)
75
- end
76
-
77
- def printInfo(str, file_name=nil, line_num=nil)
78
- str = processString("Info", str, file_name, line_num, Bake::ErrorParser::SEVERITY_INFO) if file_name
79
- printInternal(@info_color, str)
80
- end
81
-
82
- def printAdditionalInfo(str)
83
- printInternal(@additional_info_color, str)
84
- end
85
-
86
- def printSuccess(str)
87
- printInternal(@success_color, str)
88
- end
89
-
90
- # formats several lines of compiler output
91
- def format(compiler_output, error_descs, error_parser)
92
- if @scheme == :none
93
- puts compiler_output
94
- else
95
- begin
96
- zipped = compiler_output.split($/).zip(error_descs)
97
- zipped.each do |l,desc|
98
- if desc.severity != 255
99
- coloring = {}
100
- if desc.severity == ErrorParser::SEVERITY_WARNING
101
- printWarning(l)
102
- elsif desc.severity == ErrorParser::SEVERITY_ERROR
103
- printError(l)
104
- else
105
- printInfo(l)
106
- end
107
- else
108
- puts l
109
- end
110
- end
111
- rescue Exception => e
112
- puts "Error while parsing output: #{e}"
113
- puts e.backtrace if Bake.options.debug
114
- puts compiler_output
115
- end
116
- end
117
- end
118
- end
119
-
120
- def self.formatter
121
- @@formatter ||= ColorizingFormatter.new
122
- end
123
-
124
-
125
- end
1
+ require 'colored'
2
+
3
+ module Bake
4
+ #include Utils ????
5
+
6
+ class ColorizingFormatter
7
+
8
+ def initialize
9
+ @scheme = :none
10
+ end
11
+
12
+ def setColorScheme(scheme)
13
+
14
+ if (scheme != :black and scheme != :white and scheme != :none)
15
+ Bake.formatter.printError("Error: color scheme must be 'black' or 'white'")
16
+ ExitHelper.exit(1)
17
+ end
18
+ @scheme = scheme
19
+
20
+ if @scheme == :black
21
+ @warning_color = :yellow
22
+ @error_color = :red
23
+ @info_color = :white
24
+ @additional_info_color = :cyan
25
+ @success_color = :green
26
+ elsif @scheme == :white
27
+ @warning_color = :magenta
28
+ @error_color = :red
29
+ @info_color = :black
30
+ @additional_info_color = :blue
31
+ @success_color = :green
32
+ end
33
+ end
34
+
35
+ def printInternal(col, str)
36
+ puts(@scheme == :none ? str : [col,:bold].inject(str) {|m,x| m.send(x)})
37
+ end
38
+
39
+ def createIdeError(str, file_name, line_number, severity)
40
+ if (file_name)
41
+ d = ErrorDesc.new
42
+ d.file_name = file_name
43
+ d.line_number = (line_number ? line_number : 0)
44
+ d.message = str
45
+ d.severity = severity
46
+ Bake::IDEInterface.instance.set_errors([d])
47
+ end
48
+ end
49
+
50
+ def processString(prefix, str, file_name_or_elem, line_num, severity)
51
+ if file_name_or_elem.respond_to?("file_name")
52
+ file_name = file_name_or_elem.file_name
53
+ line_num = file_name_or_elem.line_number
54
+ elsif String === file_name_or_elem
55
+ file_name = file_name_or_elem
56
+ else
57
+ file_name = nil
58
+ end
59
+
60
+ createIdeError(str, file_name, line_num, severity)
61
+
62
+ line = (line_num ? ":#{line_num}" : "")
63
+ file = (file_name ? "#{file_name}#{line}: " : "")
64
+ return file + prefix + ": " + str
65
+ end
66
+
67
+ def printError(str, file_name_or_elem=nil, line_num=nil)
68
+ str = processString("Error", str, file_name_or_elem, line_num, Bake::ErrorParser::SEVERITY_ERROR) if file_name_or_elem
69
+ printInternal(@error_color, str)
70
+ end
71
+
72
+ def printWarning(str, file_name=nil, line_num=nil)
73
+ str = processString("Warning", str, file_name, line_num, Bake::ErrorParser::SEVERITY_WARNING) if file_name
74
+ printInternal(@warning_color, str)
75
+ end
76
+
77
+ def printInfo(str, file_name=nil, line_num=nil)
78
+ str = processString("Info", str, file_name, line_num, Bake::ErrorParser::SEVERITY_INFO) if file_name
79
+ printInternal(@info_color, str)
80
+ end
81
+
82
+ def printAdditionalInfo(str)
83
+ printInternal(@additional_info_color, str)
84
+ end
85
+
86
+ def printSuccess(str)
87
+ printInternal(@success_color, str)
88
+ end
89
+
90
+ # formats several lines of compiler output
91
+ def format(compiler_output, error_descs, error_parser)
92
+ if @scheme == :none
93
+ puts compiler_output
94
+ else
95
+ begin
96
+ zipped = compiler_output.split($/).zip(error_descs)
97
+ zipped.each do |l,desc|
98
+ if desc.severity != 255
99
+ coloring = {}
100
+ if desc.severity == ErrorParser::SEVERITY_WARNING
101
+ printWarning(l)
102
+ elsif desc.severity == ErrorParser::SEVERITY_ERROR
103
+ printError(l)
104
+ else
105
+ printInfo(l)
106
+ end
107
+ else
108
+ puts l
109
+ end
110
+ end
111
+ rescue Exception => e
112
+ puts "Error while parsing output: #{e}"
113
+ puts e.backtrace if Bake.options.debug
114
+ puts compiler_output
115
+ end
116
+ end
117
+ end
118
+ end
119
+
120
+ def self.formatter
121
+ @@formatter ||= ColorizingFormatter.new
122
+ end
123
+
124
+
125
+ end
@@ -1,53 +1,53 @@
1
- require 'bake/toolchain/provider'
2
- require 'common/utils'
3
- require 'bake/toolchain/errorparser/diab_compiler_error_parser'
4
- require 'bake/toolchain/errorparser/diab_linker_error_parser'
5
-
6
- module Bake
7
- module Toolchain
8
-
9
- DiabChain = Provider.add("Diab")
10
-
11
- DiabChain[:COMPILER][:C].update({
12
- :COMMAND => "dcc",
13
- :FLAGS => "",
14
- :DEFINE_FLAG => "-D",
15
- :OBJECT_FILE_FLAG => "-o",
16
- :OBJ_FLAG_SPACE => true,
17
- :INCLUDE_PATH_FLAG => "-I",
18
- :COMPILE_FLAGS => "-c",
19
- :DEP_FLAGS => "-Xmake-dependency=5 -Xmake-dependency-savefile=",
20
- :DEP_FLAGS_SPACE => false,
21
- :PREPRO_FLAGS => "-P"
22
- })
23
-
24
- DiabChain[:COMPILER][:CPP] = Utils.deep_copy(DiabChain[:COMPILER][:C])
25
- DiabChain[:COMPILER][:CPP][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:CPP][:SOURCE_FILE_ENDINGS]
26
-
27
- DiabChain[:COMPILER][:ASM] = Utils.deep_copy(DiabChain[:COMPILER][:C])
28
- DiabChain[:COMPILER][:ASM][:COMMAND] = "das"
29
- DiabChain[:COMPILER][:ASM][:COMPILE_FLAGS] = ""
30
- DiabChain[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
31
- DiabChain[:COMPILER][:ASM][:PREPRO_FLAGS] = ""
32
-
33
- DiabChain[:ARCHIVER][:COMMAND] = "dar"
34
- DiabChain[:ARCHIVER][:ARCHIVE_FLAGS] = "-rc"
35
-
36
- DiabChain[:LINKER][:COMMAND] = "dcc"
37
- DiabChain[:LINKER][:SCRIPT] = "-Wm"
38
- DiabChain[:LINKER][:USER_LIB_FLAG] = "-l:"
39
- DiabChain[:LINKER][:EXE_FLAG] = "-o"
40
- DiabChain[:LINKER][:LIB_FLAG] = "-l"
41
- DiabChain[:LINKER][:LIB_PATH_FLAG] = "-L"
42
- DiabChain[:LINKER][:MAP_FILE_FLAG] = "-Wl,-m6" # no map file if this string is empty, otherwise -Wl,-m6>abc.map
43
- DiabChain[:LINKER][:OUTPUT_ENDING] = ".elf"
44
-
45
- diabCompilerErrorParser = DiabCompilerErrorParser.new
46
- DiabChain[:COMPILER][:C][:ERROR_PARSER] = diabCompilerErrorParser
47
- DiabChain[:COMPILER][:CPP][:ERROR_PARSER] = diabCompilerErrorParser
48
- DiabChain[:COMPILER][:ASM][:ERROR_PARSER] = diabCompilerErrorParser
49
- DiabChain[:ARCHIVER][:ERROR_PARSER] = diabCompilerErrorParser
50
- DiabChain[:LINKER][:ERROR_PARSER] = DiabLinkerErrorParser.new
51
-
52
- end
53
- end
1
+ require 'bake/toolchain/provider'
2
+ require 'common/utils'
3
+ require 'bake/toolchain/errorparser/diab_compiler_error_parser'
4
+ require 'bake/toolchain/errorparser/diab_linker_error_parser'
5
+
6
+ module Bake
7
+ module Toolchain
8
+
9
+ DiabChain = Provider.add("Diab")
10
+
11
+ DiabChain[:COMPILER][:C].update({
12
+ :COMMAND => "dcc",
13
+ :FLAGS => "",
14
+ :DEFINE_FLAG => "-D",
15
+ :OBJECT_FILE_FLAG => "-o",
16
+ :OBJ_FLAG_SPACE => true,
17
+ :INCLUDE_PATH_FLAG => "-I",
18
+ :COMPILE_FLAGS => "-c",
19
+ :DEP_FLAGS => "-Xmake-dependency=5 -Xmake-dependency-savefile=",
20
+ :DEP_FLAGS_SPACE => false,
21
+ :PREPRO_FLAGS => "-P"
22
+ })
23
+
24
+ DiabChain[:COMPILER][:CPP] = Utils.deep_copy(DiabChain[:COMPILER][:C])
25
+ DiabChain[:COMPILER][:CPP][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:CPP][:SOURCE_FILE_ENDINGS]
26
+
27
+ DiabChain[:COMPILER][:ASM] = Utils.deep_copy(DiabChain[:COMPILER][:C])
28
+ DiabChain[:COMPILER][:ASM][:COMMAND] = "das"
29
+ DiabChain[:COMPILER][:ASM][:COMPILE_FLAGS] = ""
30
+ DiabChain[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
31
+ DiabChain[:COMPILER][:ASM][:PREPRO_FLAGS] = ""
32
+
33
+ DiabChain[:ARCHIVER][:COMMAND] = "dar"
34
+ DiabChain[:ARCHIVER][:ARCHIVE_FLAGS] = "-rc"
35
+
36
+ DiabChain[:LINKER][:COMMAND] = "dcc"
37
+ DiabChain[:LINKER][:SCRIPT] = "-Wm"
38
+ DiabChain[:LINKER][:USER_LIB_FLAG] = "-l:"
39
+ DiabChain[:LINKER][:EXE_FLAG] = "-o"
40
+ DiabChain[:LINKER][:LIB_FLAG] = "-l"
41
+ DiabChain[:LINKER][:LIB_PATH_FLAG] = "-L"
42
+ DiabChain[:LINKER][:MAP_FILE_FLAG] = "-Wl,-m6" # no map file if this string is empty, otherwise -Wl,-m6>abc.map
43
+ DiabChain[:LINKER][:OUTPUT_ENDING] = ".elf"
44
+
45
+ diabCompilerErrorParser = DiabCompilerErrorParser.new
46
+ DiabChain[:COMPILER][:C][:ERROR_PARSER] = diabCompilerErrorParser
47
+ DiabChain[:COMPILER][:CPP][:ERROR_PARSER] = diabCompilerErrorParser
48
+ DiabChain[:COMPILER][:ASM][:ERROR_PARSER] = diabCompilerErrorParser
49
+ DiabChain[:ARCHIVER][:ERROR_PARSER] = diabCompilerErrorParser
50
+ DiabChain[:LINKER][:ERROR_PARSER] = DiabLinkerErrorParser.new
51
+
52
+ end
53
+ end