bake-toolkit 2.20.4 → 2.21.0

Sign up to get free protection for your applications and to get access to all the features.
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,20 +1,20 @@
1
- require 'common/utils'
2
- require 'bake/toolchain/provider'
3
- require 'bake/toolchain/errorparser/lint_error_parser'
4
-
5
- module Bake
6
- module Toolchain
7
-
8
- LintChain = Provider.add("Lint")
9
-
10
- LintChain[:COMPILER][:CPP].update({
11
- :COMMAND => "lint-nt.exe",
12
- :DEFINE_FLAG => "-D",
13
- :INCLUDE_PATH_FLAG => "-I",
14
- :COMPILE_FLAGS => ["-b","-\"format=%f%(:%l:%) %t %n: %m\"", "-width(0)", "-hF1", "-zero"], # array, not string!
15
- })
16
-
17
- LintChain[:COMPILER][:CPP][:ERROR_PARSER] = LintErrorParser.new
18
-
19
- end
20
- end
1
+ require 'common/utils'
2
+ require 'bake/toolchain/provider'
3
+ require 'bake/toolchain/errorparser/lint_error_parser'
4
+
5
+ module Bake
6
+ module Toolchain
7
+
8
+ LintChain = Provider.add("Lint")
9
+
10
+ LintChain[:COMPILER][:CPP].update({
11
+ :COMMAND => "lint-nt.exe",
12
+ :DEFINE_FLAG => "-D",
13
+ :INCLUDE_PATH_FLAG => "-I",
14
+ :COMPILE_FLAGS => ["-b","-\"format=%f%(:%l:%) %t %n: %m\"", "-width(0)", "-hF1", "-zero"], # array, not string!
15
+ })
16
+
17
+ LintChain[:COMPILER][:CPP][:ERROR_PARSER] = LintErrorParser.new
18
+
19
+ end
20
+ end
@@ -1,58 +1,58 @@
1
- require 'common/utils'
2
- require 'bake/toolchain/provider'
3
- require 'bake/toolchain/errorparser/error_parser'
4
- require 'bake/toolchain/errorparser/msvc_compiler_error_parser'
5
- require 'bake/toolchain/errorparser/msvc_linker_error_parser'
6
-
7
- module Bake
8
- module Toolchain
9
-
10
- MSVCChain = Provider.add("MSVC")
11
-
12
- MSVCChain[:COMPILER][:CPP].update({
13
- :COMMAND => "cl",
14
- :DEFINE_FLAG => "-D",
15
- :OBJECT_FILE_FLAG => "-Fo",
16
- :OBJ_FLAG_SPACE => false,
17
- :INCLUDE_PATH_FLAG => "-I",
18
- :COMPILE_FLAGS => "-c -EHsc $(MSVC_FORCE_SYNC_PDB_WRITES)",
19
- :DEP_FLAGS_FILENAME => false,
20
- :DEP_FLAGS => "-showIncludes",
21
- :DEP_FLAGS_SPACE => true,
22
- :PREPRO_FLAGS => "-P",
23
- :PREPRO_FILE_FLAG => "-Fi"
24
- })
25
-
26
- MSVCChain[:COMPILER][:C] = Utils.deep_copy(MSVCChain[:COMPILER][:CPP])
27
- MSVCChain[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
28
-
29
- MSVCChain[:COMPILER][:ASM] = Utils.deep_copy(MSVCChain[:COMPILER][:C])
30
- MSVCChain[:COMPILER][:ASM][:COMMAND] = "ml"
31
- MSVCChain[:COMPILER][:ASM][:COMPILE_FLAGS] = "-c $(MSVC_FORCE_SYNC_PDB_WRITES)"
32
- MSVCChain[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
33
-
34
- MSVCChain[:ARCHIVER][:COMMAND] = "lib"
35
- MSVCChain[:ARCHIVER][:ARCHIVE_FLAGS] = "-out:"
36
- MSVCChain[:ARCHIVER][:ARCHIVE_FLAGS_SPACE] = false
37
-
38
- MSVCChain[:LINKER][:COMMAND] = "link"
39
- MSVCChain[:LINKER][:USER_LIB_FLAG] = ""
40
- MSVCChain[:LINKER][:EXE_FLAG] = "-out:"
41
- MSVCChain[:LINKER][:EXE_FLAG_SPACE] = false
42
- MSVCChain[:LINKER][:LIB_FLAG] = ""
43
- MSVCChain[:LINKER][:LIB_PATH_FLAG] = "-libpath:"
44
- MSVCChain[:LINKER][:MAP_FILE_FLAG] = "-map:"
45
- MSVCChain[:LINKER][:MAP_FILE_PIPE] = false
46
- MSVCChain[:LINKER][:SCRIPT] = "Linkerscript option not supported for MSVC"
47
-
48
-
49
- msvcCompilerErrorParser = MSVCCompilerErrorParser.new
50
- MSVCChain[:COMPILER][:C][:ERROR_PARSER] = msvcCompilerErrorParser
51
- MSVCChain[:COMPILER][:CPP][:ERROR_PARSER] = msvcCompilerErrorParser
52
- MSVCChain[:COMPILER][:ASM][:ERROR_PARSER] = msvcCompilerErrorParser
53
- MSVCChain[:ARCHIVER][:ERROR_PARSER] = msvcCompilerErrorParser
54
- MSVCChain[:LINKER][:ERROR_PARSER] = MSVCLinkerErrorParser.new
55
-
56
- end
57
- end
58
-
1
+ require 'common/utils'
2
+ require 'bake/toolchain/provider'
3
+ require 'bake/toolchain/errorparser/error_parser'
4
+ require 'bake/toolchain/errorparser/msvc_compiler_error_parser'
5
+ require 'bake/toolchain/errorparser/msvc_linker_error_parser'
6
+
7
+ module Bake
8
+ module Toolchain
9
+
10
+ MSVCChain = Provider.add("MSVC")
11
+
12
+ MSVCChain[:COMPILER][:CPP].update({
13
+ :COMMAND => "cl",
14
+ :DEFINE_FLAG => "-D",
15
+ :OBJECT_FILE_FLAG => "-Fo",
16
+ :OBJ_FLAG_SPACE => false,
17
+ :INCLUDE_PATH_FLAG => "-I",
18
+ :COMPILE_FLAGS => "-c -EHsc $(MSVC_FORCE_SYNC_PDB_WRITES)",
19
+ :DEP_FLAGS_FILENAME => false,
20
+ :DEP_FLAGS => "-showIncludes",
21
+ :DEP_FLAGS_SPACE => true,
22
+ :PREPRO_FLAGS => "-P",
23
+ :PREPRO_FILE_FLAG => "-Fi"
24
+ })
25
+
26
+ MSVCChain[:COMPILER][:C] = Utils.deep_copy(MSVCChain[:COMPILER][:CPP])
27
+ MSVCChain[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
28
+
29
+ MSVCChain[:COMPILER][:ASM] = Utils.deep_copy(MSVCChain[:COMPILER][:C])
30
+ MSVCChain[:COMPILER][:ASM][:COMMAND] = "ml"
31
+ MSVCChain[:COMPILER][:ASM][:COMPILE_FLAGS] = "-c $(MSVC_FORCE_SYNC_PDB_WRITES)"
32
+ MSVCChain[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
33
+
34
+ MSVCChain[:ARCHIVER][:COMMAND] = "lib"
35
+ MSVCChain[:ARCHIVER][:ARCHIVE_FLAGS] = "-out:"
36
+ MSVCChain[:ARCHIVER][:ARCHIVE_FLAGS_SPACE] = false
37
+
38
+ MSVCChain[:LINKER][:COMMAND] = "link"
39
+ MSVCChain[:LINKER][:USER_LIB_FLAG] = ""
40
+ MSVCChain[:LINKER][:EXE_FLAG] = "-out:"
41
+ MSVCChain[:LINKER][:EXE_FLAG_SPACE] = false
42
+ MSVCChain[:LINKER][:LIB_FLAG] = ""
43
+ MSVCChain[:LINKER][:LIB_PATH_FLAG] = "-libpath:"
44
+ MSVCChain[:LINKER][:MAP_FILE_FLAG] = "-map:"
45
+ MSVCChain[:LINKER][:MAP_FILE_PIPE] = false
46
+ MSVCChain[:LINKER][:SCRIPT] = "Linkerscript option not supported for MSVC"
47
+
48
+
49
+ msvcCompilerErrorParser = MSVCCompilerErrorParser.new
50
+ MSVCChain[:COMPILER][:C][:ERROR_PARSER] = msvcCompilerErrorParser
51
+ MSVCChain[:COMPILER][:CPP][:ERROR_PARSER] = msvcCompilerErrorParser
52
+ MSVCChain[:COMPILER][:ASM][:ERROR_PARSER] = msvcCompilerErrorParser
53
+ MSVCChain[:ARCHIVER][:ERROR_PARSER] = msvcCompilerErrorParser
54
+ MSVCChain[:LINKER][:ERROR_PARSER] = MSVCLinkerErrorParser.new
55
+
56
+ end
57
+ end
58
+
@@ -1,146 +1,146 @@
1
- module Bake
2
- module Toolchain
3
-
4
- class Provider
5
- @@settings = {}
6
- @@default = {
7
- :COMPILER =>
8
- {
9
- :CPP => {
10
- :COMMAND => "",
11
- :DEFINE_FLAG => "",
12
- :OBJECT_FILE_FLAG => "",
13
- :OBJECT_FILE_ENDING => ".o",
14
- :OBJ_FLAG_SPACE => false,
15
- :INCLUDE_PATH_FLAG => "",
16
- :COMPILE_FLAGS => "",
17
- :DEFINES => [],
18
- :FLAGS => "",
19
- :SOURCE_FILE_ENDINGS => [".cxx", ".cpp", ".c++", ".cc", ".C"],
20
- :DEP_FLAGS => "",
21
- :DEP_FLAGS_SPACE => false,
22
- :DEP_FLAGS_FILENAME => true,
23
- :ERROR_PARSER => nil,
24
- :PREPRO_FLAGS => "",
25
- :PREPRO_FILE_FLAG => nil
26
- },
27
- :C => {
28
- :COMMAND => "",
29
- :DEFINE_FLAG => "",
30
- :OBJECT_FILE_FLAG => "",
31
- :OBJECT_FILE_ENDING => ".o",
32
- :OBJ_FLAG_SPACE => false,
33
- :INCLUDE_PATH_FLAG => "",
34
- :COMPILE_FLAGS => "",
35
- :DEFINES => [],
36
- :FLAGS => "",
37
- :SOURCE_FILE_ENDINGS => [".c"],
38
- :DEP_FLAGS => "",
39
- :DEP_FLAGS_SPACE => false,
40
- :DEP_FLAGS_FILENAME => true,
41
- :ERROR_PARSER => nil,
42
- :PREPRO_FLAGS => "",
43
- :PREPRO_FILE_FLAG => nil
44
- },
45
- :ASM => {
46
- :COMMAND => "",
47
- :DEFINE_FLAG => "",
48
- :OBJECT_FILE_FLAG => "",
49
- :OBJECT_FILE_ENDING => ".o",
50
- :OBJ_FLAG_SPACE => false,
51
- :INCLUDE_PATH_FLAG => "",
52
- :COMPILE_FLAGS => "",
53
- :DEFINES => [],
54
- :FLAGS => "",
55
- :SOURCE_FILE_ENDINGS => [".asm", ".s", ".S"],
56
- :DEP_FLAGS => "",
57
- :DEP_FLAGS_SPACE => false,
58
- :DEP_FLAGS_FILENAME => true,
59
- :ERROR_PARSER => nil,
60
- :PREPRO_FLAGS => "",
61
- :PREPRO_FILE_FLAG => nil
62
- }
63
- },
64
-
65
- :ARCHIVER =>
66
- {
67
- :COMMAND => "",
68
- :ARCHIVE_FLAGS => "",
69
- :ARCHIVE_FLAGS_SPACE => true,
70
- :FLAGS => "",
71
- :ERROR_PARSER => nil
72
- },
73
-
74
- :LINKER =>
75
- {
76
- :COMMAND => "",
77
- :MUST_FLAGS => "",
78
- :SCRIPT => "",
79
- :USER_LIB_FLAG => "",
80
- :EXE_FLAG => "",
81
- :EXE_FLAG_SPACE => true,
82
- :LIB_FLAG => "",
83
- :LIB_PATH_FLAG => "",
84
- :LIB_PREFIX_FLAGS => "", # "-Wl,--whole-archive",
85
- :LIB_POSTFIX_FLAGS => "", # "-Wl,--no-whole-archive",
86
- :FLAGS => "",
87
- :MAP_FILE_FLAG => "",
88
- :MAP_FILE_PIPE => true,
89
- :OUTPUT_ENDING => ".exe", # or .elf
90
- :ERROR_PARSER => nil,
91
- :LIST_MODE => false
92
- },
93
-
94
- :MAKE =>
95
- {
96
- :COMMAND => "make",
97
- :FLAGS => "-j",
98
- :FILE_FLAG => "-f",
99
- :DIR_FLAG => "-C",
100
- :CLEAN => "clean"
101
- },
102
-
103
- :LINT_POLICY => [],
104
- :DOCU => ""
105
- }
106
-
107
- def self.add(name, basedOn = nil)
108
- chain = Marshal.load(Marshal.dump(basedOn.nil? ? @@default : @@settings[basedOn]))
109
- @@settings[name] = chain
110
- chain
111
- end
112
-
113
- def self.default
114
- @@default
115
- end
116
-
117
- def self.modify_cpp_compiler(based_on, h)
118
- chain = Marshal.load(Marshal.dump(@@settings[based_on]))
119
- chain[:COMPILER][:CPP].update(h)
120
- chain
121
- end
122
-
123
- def self.[](name)
124
- return @@settings[name] if @@settings.include? name
125
- nil
126
- end
127
-
128
- def self.list
129
- return @@settings.delete_if {|x| x.include?"Lint" }
130
- end
131
-
132
- end
133
-
134
- end
135
- end
136
-
137
- require 'bake/toolchain/diab'
138
- require 'bake/toolchain/gcc'
139
- require 'bake/toolchain/lint'
140
- require 'bake/toolchain/clang'
141
- require 'bake/toolchain/clang_analyze'
142
- require 'bake/toolchain/ti'
143
- require 'bake/toolchain/greenhills'
144
- require 'bake/toolchain/keil'
145
- require 'bake/toolchain/msvc'
146
- require 'bake/toolchain/gcc_env'
1
+ module Bake
2
+ module Toolchain
3
+
4
+ class Provider
5
+ @@settings = {}
6
+ @@default = {
7
+ :COMPILER =>
8
+ {
9
+ :CPP => {
10
+ :COMMAND => "",
11
+ :DEFINE_FLAG => "",
12
+ :OBJECT_FILE_FLAG => "",
13
+ :OBJECT_FILE_ENDING => ".o",
14
+ :OBJ_FLAG_SPACE => false,
15
+ :INCLUDE_PATH_FLAG => "",
16
+ :COMPILE_FLAGS => "",
17
+ :DEFINES => [],
18
+ :FLAGS => "",
19
+ :SOURCE_FILE_ENDINGS => [".cxx", ".cpp", ".c++", ".cc", ".C"],
20
+ :DEP_FLAGS => "",
21
+ :DEP_FLAGS_SPACE => false,
22
+ :DEP_FLAGS_FILENAME => true,
23
+ :ERROR_PARSER => nil,
24
+ :PREPRO_FLAGS => "",
25
+ :PREPRO_FILE_FLAG => nil
26
+ },
27
+ :C => {
28
+ :COMMAND => "",
29
+ :DEFINE_FLAG => "",
30
+ :OBJECT_FILE_FLAG => "",
31
+ :OBJECT_FILE_ENDING => ".o",
32
+ :OBJ_FLAG_SPACE => false,
33
+ :INCLUDE_PATH_FLAG => "",
34
+ :COMPILE_FLAGS => "",
35
+ :DEFINES => [],
36
+ :FLAGS => "",
37
+ :SOURCE_FILE_ENDINGS => [".c"],
38
+ :DEP_FLAGS => "",
39
+ :DEP_FLAGS_SPACE => false,
40
+ :DEP_FLAGS_FILENAME => true,
41
+ :ERROR_PARSER => nil,
42
+ :PREPRO_FLAGS => "",
43
+ :PREPRO_FILE_FLAG => nil
44
+ },
45
+ :ASM => {
46
+ :COMMAND => "",
47
+ :DEFINE_FLAG => "",
48
+ :OBJECT_FILE_FLAG => "",
49
+ :OBJECT_FILE_ENDING => ".o",
50
+ :OBJ_FLAG_SPACE => false,
51
+ :INCLUDE_PATH_FLAG => "",
52
+ :COMPILE_FLAGS => "",
53
+ :DEFINES => [],
54
+ :FLAGS => "",
55
+ :SOURCE_FILE_ENDINGS => [".asm", ".s", ".S"],
56
+ :DEP_FLAGS => "",
57
+ :DEP_FLAGS_SPACE => false,
58
+ :DEP_FLAGS_FILENAME => true,
59
+ :ERROR_PARSER => nil,
60
+ :PREPRO_FLAGS => "",
61
+ :PREPRO_FILE_FLAG => nil
62
+ }
63
+ },
64
+
65
+ :ARCHIVER =>
66
+ {
67
+ :COMMAND => "",
68
+ :ARCHIVE_FLAGS => "",
69
+ :ARCHIVE_FLAGS_SPACE => true,
70
+ :FLAGS => "",
71
+ :ERROR_PARSER => nil
72
+ },
73
+
74
+ :LINKER =>
75
+ {
76
+ :COMMAND => "",
77
+ :MUST_FLAGS => "",
78
+ :SCRIPT => "",
79
+ :USER_LIB_FLAG => "",
80
+ :EXE_FLAG => "",
81
+ :EXE_FLAG_SPACE => true,
82
+ :LIB_FLAG => "",
83
+ :LIB_PATH_FLAG => "",
84
+ :LIB_PREFIX_FLAGS => "", # "-Wl,--whole-archive",
85
+ :LIB_POSTFIX_FLAGS => "", # "-Wl,--no-whole-archive",
86
+ :FLAGS => "",
87
+ :MAP_FILE_FLAG => "",
88
+ :MAP_FILE_PIPE => true,
89
+ :OUTPUT_ENDING => ".exe", # or .elf
90
+ :ERROR_PARSER => nil,
91
+ :LIST_MODE => false
92
+ },
93
+
94
+ :MAKE =>
95
+ {
96
+ :COMMAND => "make",
97
+ :FLAGS => "-j",
98
+ :FILE_FLAG => "-f",
99
+ :DIR_FLAG => "-C",
100
+ :CLEAN => "clean"
101
+ },
102
+
103
+ :LINT_POLICY => [],
104
+ :DOCU => ""
105
+ }
106
+
107
+ def self.add(name, basedOn = nil)
108
+ chain = Marshal.load(Marshal.dump(basedOn.nil? ? @@default : @@settings[basedOn]))
109
+ @@settings[name] = chain
110
+ chain
111
+ end
112
+
113
+ def self.default
114
+ @@default
115
+ end
116
+
117
+ def self.modify_cpp_compiler(based_on, h)
118
+ chain = Marshal.load(Marshal.dump(@@settings[based_on]))
119
+ chain[:COMPILER][:CPP].update(h)
120
+ chain
121
+ end
122
+
123
+ def self.[](name)
124
+ return @@settings[name] if @@settings.include? name
125
+ nil
126
+ end
127
+
128
+ def self.list
129
+ return @@settings.delete_if {|x| x.include?"Lint" }
130
+ end
131
+
132
+ end
133
+
134
+ end
135
+ end
136
+
137
+ require 'bake/toolchain/diab'
138
+ require 'bake/toolchain/gcc'
139
+ require 'bake/toolchain/lint'
140
+ require 'bake/toolchain/clang'
141
+ require 'bake/toolchain/clang_analyze'
142
+ require 'bake/toolchain/ti'
143
+ require 'bake/toolchain/greenhills'
144
+ require 'bake/toolchain/keil'
145
+ require 'bake/toolchain/msvc'
146
+ require 'bake/toolchain/gcc_env'
@@ -1,47 +1,47 @@
1
- require 'common/utils'
2
- require 'bake/toolchain/provider'
3
- require 'bake/toolchain/errorparser/error_parser'
4
- require 'bake/toolchain/errorparser/ti_compiler_error_parser'
5
- require 'bake/toolchain/errorparser/ti_linker_error_parser'
6
-
7
- module Bake
8
- module Toolchain
9
-
10
- TiChain = Provider.add("TI")
11
-
12
- TiChain[:COMPILER][:CPP].update({
13
- :COMMAND => "ti_cl",
14
- :FLAGS => "",
15
- :DEFINE_FLAG => "--define=",
16
- :OBJECT_FILE_FLAG => "--output_file=",
17
- :INCLUDE_PATH_FLAG => "--include_path=",
18
- :COMPILE_FLAGS => "-c ",
19
- :DEP_FLAGS => "--preproc_dependency=",
20
- :DEP_FLAGS_SPACE => false
21
- })
22
-
23
- TiChain[:COMPILER][:C] = Utils.deep_copy(TiChain[:COMPILER][:CPP])
24
- TiChain[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
25
-
26
- TiChain[:COMPILER][:ASM] = Utils.deep_copy(TiChain[:COMPILER][:C])
27
- TiChain[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
28
-
29
- TiChain[:ARCHIVER][:COMMAND] = "ti_ar"
30
- TiChain[:ARCHIVER][:ARCHIVE_FLAGS] = "r"
31
-
32
- TiChain[:LINKER][:COMMAND] = "ti_cl"
33
- TiChain[:LINKER][:FLAGS] = ""
34
- TiChain[:LINKER][:MAP_FILE_FLAG] = '-m'
35
- TiChain[:LINKER][:EXE_FLAG] = "-o"
36
- TiChain[:LINKER][:LIB_FLAG] = "-l"
37
- TiChain[:LINKER][:LIB_PATH_FLAG] = "-i"
38
-
39
- tiCompilerErrorParser = TICompilerErrorParser.new
40
- TiChain[:COMPILER][:C][:ERROR_PARSER] = tiCompilerErrorParser
41
- TiChain[:COMPILER][:CPP][:ERROR_PARSER] = tiCompilerErrorParser
42
- TiChain[:COMPILER][:ASM][:ERROR_PARSER] = tiCompilerErrorParser
43
- TiChain[:ARCHIVER][:ERROR_PARSER] = tiCompilerErrorParser
44
- TiChain[:LINKER][:ERROR_PARSER] = TILinkerErrorParser.new
45
-
46
- end
47
- end
1
+ require 'common/utils'
2
+ require 'bake/toolchain/provider'
3
+ require 'bake/toolchain/errorparser/error_parser'
4
+ require 'bake/toolchain/errorparser/ti_compiler_error_parser'
5
+ require 'bake/toolchain/errorparser/ti_linker_error_parser'
6
+
7
+ module Bake
8
+ module Toolchain
9
+
10
+ TiChain = Provider.add("TI")
11
+
12
+ TiChain[:COMPILER][:CPP].update({
13
+ :COMMAND => "ti_cl",
14
+ :FLAGS => "",
15
+ :DEFINE_FLAG => "--define=",
16
+ :OBJECT_FILE_FLAG => "--output_file=",
17
+ :INCLUDE_PATH_FLAG => "--include_path=",
18
+ :COMPILE_FLAGS => "-c ",
19
+ :DEP_FLAGS => "--preproc_dependency=",
20
+ :DEP_FLAGS_SPACE => false
21
+ })
22
+
23
+ TiChain[:COMPILER][:C] = Utils.deep_copy(TiChain[:COMPILER][:CPP])
24
+ TiChain[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
25
+
26
+ TiChain[:COMPILER][:ASM] = Utils.deep_copy(TiChain[:COMPILER][:C])
27
+ TiChain[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
28
+
29
+ TiChain[:ARCHIVER][:COMMAND] = "ti_ar"
30
+ TiChain[:ARCHIVER][:ARCHIVE_FLAGS] = "r"
31
+
32
+ TiChain[:LINKER][:COMMAND] = "ti_cl"
33
+ TiChain[:LINKER][:FLAGS] = ""
34
+ TiChain[:LINKER][:MAP_FILE_FLAG] = '-m'
35
+ TiChain[:LINKER][:EXE_FLAG] = "-o"
36
+ TiChain[:LINKER][:LIB_FLAG] = "-l"
37
+ TiChain[:LINKER][:LIB_PATH_FLAG] = "-i"
38
+
39
+ tiCompilerErrorParser = TICompilerErrorParser.new
40
+ TiChain[:COMPILER][:C][:ERROR_PARSER] = tiCompilerErrorParser
41
+ TiChain[:COMPILER][:CPP][:ERROR_PARSER] = tiCompilerErrorParser
42
+ TiChain[:COMPILER][:ASM][:ERROR_PARSER] = tiCompilerErrorParser
43
+ TiChain[:ARCHIVER][:ERROR_PARSER] = tiCompilerErrorParser
44
+ TiChain[:LINKER][:ERROR_PARSER] = TILinkerErrorParser.new
45
+
46
+ end
47
+ end