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,214 +1,214 @@
1
- #!/usr/bin/env ruby
2
- $:.unshift(File.dirname(__FILE__)+"/../lib")
3
-
4
- require "securerandom"
5
- require "vs/options"
6
- require 'common/version'
7
-
8
- puts "-- bake #{Bake::Version.number}, ruby #{RUBY_VERSION}p#{RUBY_PATCHLEVEL}, platform #{RUBY_PLATFORM} --"
9
-
10
- module Bake
11
-
12
- PATH = 0
13
- UUID = 1
14
-
15
- def self.writeProjects(f,projects)
16
- projects.each do |k,v|
17
- f.puts "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"" + k + "\", \"" + v[PATH] + "/" + k + ".vcxproj\", \"{" + v[UUID] + "}\""
18
- f.puts "EndProject"
19
- end
20
- end
21
-
22
- def self.writeCfg(f,projects)
23
- projects.each do |k,v|
24
- f.puts " {" + v[UUID] + "}.bake|Win32.ActiveCfg = bake|Win32"
25
- f.puts " {" + v[UUID] + "}.bake|Win32.Build.0 = bake|Win32"
26
- end
27
- end
28
-
29
- @options = VsOptions.new(ARGV)
30
- @options.parse_options
31
-
32
- version = "13.00"
33
- toolset = "v120"
34
- if @options.version == "2010"
35
- version = "11.00"
36
- toolset = "v100"
37
- elsif @options.version == "2012"
38
- version = "12.00"
39
- toolset = "v110"
40
- end
41
-
42
-
43
- slnFilename = @options.roots[0] + "/" + File.basename(@options.roots[0]) + ".sln"
44
- appendProjects = (File.exist?(slnFilename) and @options.rewriteSolution)
45
-
46
- puts "Scanning for bake projects...."
47
-
48
- projects = {}
49
- @options.roots.each do |r|
50
- Dir.glob(r + "/**/Project.meta").each do |m|
51
- projects[File.basename(File.dirname(m))] = [File.dirname(m), SecureRandom.uuid.upcase]
52
- end
53
- end
54
-
55
- #if not @options.rewriteProjects
56
- # projects.delete_if { |k,v| File.exist?(v[PATH]+"/"+k+".vcxproj") or File.exist?(v[PATH]+"/"+k+".vcxproj.filters") }
57
- #end
58
-
59
- @options.rewriteSolution = true unless File.exist?(slnFilename)
60
-
61
- slnText = ""
62
- if not @options.rewriteSolution
63
- pattern = /Project.*[\\\/]([^\\\/]*)\.vcxproj/
64
- slnText=File.open(slnFilename).read
65
- slnText.gsub!(/\r\n?/, "\n")
66
- slnText.each_line do |line|
67
- x = line.match(pattern)
68
- projects.delete(x[1]) if x
69
- end
70
- end
71
-
72
- if projects.length == 0
73
- puts "Nothing to do."
74
- exit(0)
75
- end
76
-
77
- if not @options.rewriteSolution
78
-
79
- puts "Adding new projects to " + slnFilename + "... "
80
- File.open(slnFilename, 'w') do |f|
81
-
82
- addedProjects = false
83
- slnText.each_line do |line|
84
- if line.include?"Project("
85
- writeProjects(f,projects)
86
- addedProjects = true
87
- end
88
-
89
- f.puts line
90
-
91
- if line.include?"postSolution"
92
- writeCfg(f,projects)
93
- end
94
- end
95
-
96
- end
97
-
98
- else
99
-
100
- puts "Rewriting " + slnFilename + "... "
101
- File.open(slnFilename, 'w') do |f|
102
- f.puts "Microsoft Visual Studio Solution File, Format Version " + version
103
-
104
- writeProjects(f,projects)
105
-
106
- f.puts "Global"
107
- f.puts " GlobalSection(SolutionConfigurationPlatforms) = preSolution"
108
- f.puts " bake|Win32 = bake|Win32"
109
- f.puts " EndGlobalSection"
110
- f.puts " GlobalSection(ProjectConfigurationPlatforms) = postSolution"
111
-
112
- writeCfg(f,projects)
113
-
114
- f.puts " EndGlobalSection"
115
- f.puts " GlobalSection(SolutionProperties) = preSolution"
116
- f.puts " HideSolutionNode = FALSE"
117
- f.puts " EndGlobalSection"
118
- f.puts "EndGlobal"
119
- end
120
-
121
- end
122
-
123
- projects.each do |k,v|
124
-
125
- filename = v[PATH] + "/" + k + ".vcxproj"
126
- puts "Writing " + filename + "... "
127
- File.open(filename, 'w') do |f|
128
-
129
- f.puts "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
130
- f.puts "<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">"
131
- f.puts " <ItemGroup Label=\"ProjectConfigurations\">"
132
- f.puts " <ProjectConfiguration Include=\"bake|Win32\">"
133
- f.puts " <Configuration>bake</Configuration>"
134
- f.puts " <Platform>Win32</Platform>"
135
- f.puts " </ProjectConfiguration>"
136
- f.puts " </ItemGroup>"
137
- f.puts " <PropertyGroup Label=\"Globals\">"
138
- f.puts " <Keyword>MakeFileProj</Keyword>"
139
- f.puts " <ProjectGuid>{" + v[UUID] + "}</ProjectGuid>"
140
- f.puts " </PropertyGroup>"
141
- f.puts " <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />"
142
- f.puts " <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='bake|Win32'\" Label=\"Configuration\">"
143
- f.puts " <ConfigurationType>Makefile</ConfigurationType>"
144
- f.puts " <PlatformToolset>" + toolset + "</PlatformToolset>"
145
- f.puts " </PropertyGroup>"
146
- f.puts " <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='bake|Win32'\">"
147
- f.puts " <ExecutablePath>$(PATH)</ExecutablePath>"
148
- f.puts " </PropertyGroup>"
149
- f.puts " <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />"
150
- f.puts " <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='bake|Win32'\">"
151
- f.puts " <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />"
152
- f.puts " </ImportGroup>"
153
-
154
-
155
- f.puts " <ItemGroup>"
156
- Dir.chdir(v[PATH]) do
157
- files = Dir.glob("**/*")
158
- files.each do |item|
159
- if (item[0..5] != ".bake") and not File.directory?(item)
160
- f.puts " <None Include=\"" + item + "\" />"
161
- end
162
- end
163
- end
164
- f.puts " </ItemGroup>"
165
-
166
- f.puts " <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />"
167
- f.puts "</Project>"
168
-
169
- end
170
-
171
- filename = filename + ".filters"
172
- puts "Writing " + filename + "... "
173
- File.open(filename, 'w') do |f|
174
-
175
- f.puts "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
176
- f.puts "<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">"
177
-
178
- fileList = []
179
- f.puts " <ItemGroup>"
180
- Dir.chdir(v[PATH]) do
181
- files = Dir.glob("**/*")
182
- files.each do |item|
183
- if (item[0..5] != ".bake")
184
- if (File.directory? item)
185
- f.puts " <Filter Include=\"" + item.gsub(/\//,"\\") + "\" />"
186
- else
187
- fileList << item
188
- end
189
- end
190
- end
191
- end
192
- f.puts " </ItemGroup>"
193
-
194
- f.puts " <ItemGroup>"
195
- fileList.each do |i|
196
- if File.dirname(i) != "."
197
- f.puts " <None Include=\"" + i + "\">"
198
- f.puts " <Filter>" + File.dirname(i).gsub(/\//,"\\") + "</Filter>"
199
- f.puts " </None>"
200
- else
201
- f.puts " <None Include=\"" + i + "\" />"
202
- end
203
- end
204
- f.puts " </ItemGroup>"
205
-
206
- f.puts "</Project>"
207
-
208
- end
209
-
210
- end
211
-
212
- puts "Finished."
213
-
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.dirname(__FILE__)+"/../lib")
3
+
4
+ require "securerandom"
5
+ require "vs/options"
6
+ require 'common/version'
7
+
8
+ Bake::Version.printBakeVersion
9
+
10
+ module Bake
11
+
12
+ PATH = 0
13
+ UUID = 1
14
+
15
+ def self.writeProjects(f,projects)
16
+ projects.each do |k,v|
17
+ f.puts "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"" + k + "\", \"" + v[PATH] + "/" + k + ".vcxproj\", \"{" + v[UUID] + "}\""
18
+ f.puts "EndProject"
19
+ end
20
+ end
21
+
22
+ def self.writeCfg(f,projects)
23
+ projects.each do |k,v|
24
+ f.puts " {" + v[UUID] + "}.bake|Win32.ActiveCfg = bake|Win32"
25
+ f.puts " {" + v[UUID] + "}.bake|Win32.Build.0 = bake|Win32"
26
+ end
27
+ end
28
+
29
+ @options = VsOptions.new(ARGV)
30
+ @options.parse_options
31
+
32
+ version = "13.00"
33
+ toolset = "v120"
34
+ if @options.version == "2010"
35
+ version = "11.00"
36
+ toolset = "v100"
37
+ elsif @options.version == "2012"
38
+ version = "12.00"
39
+ toolset = "v110"
40
+ end
41
+
42
+
43
+ slnFilename = @options.roots[0] + "/" + File.basename(@options.roots[0]) + ".sln"
44
+ appendProjects = (File.exist?(slnFilename) and @options.rewriteSolution)
45
+
46
+ puts "Scanning for bake projects...."
47
+
48
+ projects = {}
49
+ @options.roots.each do |r|
50
+ Dir.glob(r + "/**/Project.meta").each do |m|
51
+ projects[File.basename(File.dirname(m))] = [File.dirname(m), SecureRandom.uuid.upcase]
52
+ end
53
+ end
54
+
55
+ #if not @options.rewriteProjects
56
+ # projects.delete_if { |k,v| File.exist?(v[PATH]+"/"+k+".vcxproj") or File.exist?(v[PATH]+"/"+k+".vcxproj.filters") }
57
+ #end
58
+
59
+ @options.rewriteSolution = true unless File.exist?(slnFilename)
60
+
61
+ slnText = ""
62
+ if not @options.rewriteSolution
63
+ pattern = /Project.*[\\\/]([^\\\/]*)\.vcxproj/
64
+ slnText=File.open(slnFilename).read
65
+ slnText.gsub!(/\r\n?/, "\n")
66
+ slnText.each_line do |line|
67
+ x = line.match(pattern)
68
+ projects.delete(x[1]) if x
69
+ end
70
+ end
71
+
72
+ if projects.length == 0
73
+ puts "Nothing to do."
74
+ exit(0)
75
+ end
76
+
77
+ if not @options.rewriteSolution
78
+
79
+ puts "Adding new projects to " + slnFilename + "... "
80
+ File.open(slnFilename, 'w') do |f|
81
+
82
+ addedProjects = false
83
+ slnText.each_line do |line|
84
+ if line.include?"Project("
85
+ writeProjects(f,projects)
86
+ addedProjects = true
87
+ end
88
+
89
+ f.puts line
90
+
91
+ if line.include?"postSolution"
92
+ writeCfg(f,projects)
93
+ end
94
+ end
95
+
96
+ end
97
+
98
+ else
99
+
100
+ puts "Rewriting " + slnFilename + "... "
101
+ File.open(slnFilename, 'w') do |f|
102
+ f.puts "Microsoft Visual Studio Solution File, Format Version " + version
103
+
104
+ writeProjects(f,projects)
105
+
106
+ f.puts "Global"
107
+ f.puts " GlobalSection(SolutionConfigurationPlatforms) = preSolution"
108
+ f.puts " bake|Win32 = bake|Win32"
109
+ f.puts " EndGlobalSection"
110
+ f.puts " GlobalSection(ProjectConfigurationPlatforms) = postSolution"
111
+
112
+ writeCfg(f,projects)
113
+
114
+ f.puts " EndGlobalSection"
115
+ f.puts " GlobalSection(SolutionProperties) = preSolution"
116
+ f.puts " HideSolutionNode = FALSE"
117
+ f.puts " EndGlobalSection"
118
+ f.puts "EndGlobal"
119
+ end
120
+
121
+ end
122
+
123
+ projects.each do |k,v|
124
+
125
+ filename = v[PATH] + "/" + k + ".vcxproj"
126
+ puts "Writing " + filename + "... "
127
+ File.open(filename, 'w') do |f|
128
+
129
+ f.puts "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
130
+ f.puts "<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">"
131
+ f.puts " <ItemGroup Label=\"ProjectConfigurations\">"
132
+ f.puts " <ProjectConfiguration Include=\"bake|Win32\">"
133
+ f.puts " <Configuration>bake</Configuration>"
134
+ f.puts " <Platform>Win32</Platform>"
135
+ f.puts " </ProjectConfiguration>"
136
+ f.puts " </ItemGroup>"
137
+ f.puts " <PropertyGroup Label=\"Globals\">"
138
+ f.puts " <Keyword>MakeFileProj</Keyword>"
139
+ f.puts " <ProjectGuid>{" + v[UUID] + "}</ProjectGuid>"
140
+ f.puts " </PropertyGroup>"
141
+ f.puts " <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />"
142
+ f.puts " <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='bake|Win32'\" Label=\"Configuration\">"
143
+ f.puts " <ConfigurationType>Makefile</ConfigurationType>"
144
+ f.puts " <PlatformToolset>" + toolset + "</PlatformToolset>"
145
+ f.puts " </PropertyGroup>"
146
+ f.puts " <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='bake|Win32'\">"
147
+ f.puts " <ExecutablePath>$(PATH)</ExecutablePath>"
148
+ f.puts " </PropertyGroup>"
149
+ f.puts " <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />"
150
+ f.puts " <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='bake|Win32'\">"
151
+ f.puts " <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />"
152
+ f.puts " </ImportGroup>"
153
+
154
+
155
+ f.puts " <ItemGroup>"
156
+ Dir.chdir(v[PATH]) do
157
+ files = Dir.glob("**/*")
158
+ files.each do |item|
159
+ if (item[0..5] != ".bake") and not File.directory?(item)
160
+ f.puts " <None Include=\"" + item + "\" />"
161
+ end
162
+ end
163
+ end
164
+ f.puts " </ItemGroup>"
165
+
166
+ f.puts " <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />"
167
+ f.puts "</Project>"
168
+
169
+ end
170
+
171
+ filename = filename + ".filters"
172
+ puts "Writing " + filename + "... "
173
+ File.open(filename, 'w') do |f|
174
+
175
+ f.puts "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
176
+ f.puts "<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">"
177
+
178
+ fileList = []
179
+ f.puts " <ItemGroup>"
180
+ Dir.chdir(v[PATH]) do
181
+ files = Dir.glob("**/*")
182
+ files.each do |item|
183
+ if (item[0..5] != ".bake")
184
+ if (File.directory? item)
185
+ f.puts " <Filter Include=\"" + item.gsub(/\//,"\\") + "\" />"
186
+ else
187
+ fileList << item
188
+ end
189
+ end
190
+ end
191
+ end
192
+ f.puts " </ItemGroup>"
193
+
194
+ f.puts " <ItemGroup>"
195
+ fileList.each do |i|
196
+ if File.dirname(i) != "."
197
+ f.puts " <None Include=\"" + i + "\">"
198
+ f.puts " <Filter>" + File.dirname(i).gsub(/\//,"\\") + "</Filter>"
199
+ f.puts " </None>"
200
+ else
201
+ f.puts " <None Include=\"" + i + "\" />"
202
+ end
203
+ end
204
+ f.puts " </ItemGroup>"
205
+
206
+ f.puts "</Project>"
207
+
208
+ end
209
+
210
+ end
211
+
212
+ puts "Finished."
213
+
214
214
  end
@@ -1,451 +1,456 @@
1
- Changelog
2
- =========
3
-
4
- September 28, 2016 - bake-toolkit 2.20.4
5
- * Bugfix: fixed auto-detected of dependency files
6
-
7
- September 21, 2016 - bake-toolkit 2.20.3
8
- * Bugfix: reading dependency files was broken for TI compiler, format is now auto-detected independent from compiler version
9
-
10
- September 13, 2016 - bake-toolkit 2.20.2
11
- * Bugfix: *prebuild* libs were not linked if all original sources were removed
12
-
13
- September 5, 2016 - bake-toolkit 2.20.1
14
- * Added: inject feature for dependencies
15
- * Added: option to generate a dot graph file
16
- * Added: *prebuild* feature for distribution builds
17
- * Added: commandline option *--build_* to enable the old outputdir behaviour: *build_* instead of *build/*
18
- * Added: printing out more information when loading Project.metas in verbosity level 3
19
- * Changed: circular dependency warning moved from verbosity level 1 to 3
20
- * Added: ToolchainName is now a predefined variable for Project.meta
21
- * Added: --compile-only option (which is equal to the workaround -f ".")
22
- * Bugfix: --adapt commandline option accepts absolute paths now
23
- * Changed: removed the *bundle* feature
24
-
25
- August 12, 2016 - bake-toolkit 2.19.2
26
- * Bugfix: fixed TI linker error parser
27
-
28
- August 4, 2016 - Eclipse plugin 1.7.1
29
- * Bugfix: error markers may not created correctly if projects had "^" in the name
30
-
31
- August 1, 2016 - bake-toolkit 2.19.1
32
- * Bugfix: made the new "listening to raw character 0x3" more robust
33
-
34
- July 28, 2016 - bake-toolkit 2.19.0
35
- * Changed: default output dir is now build/<something> instead of build_<something>
36
- * Added: listening to raw character 0x3 on stdin to abort bake/bakery (needed for some Cygwin installations)
37
- * Internal: switching from rgen 0.8.0 to rgen 0.8.1 (which should have no functional impact)
38
-
39
- June 22, 2016 - bake-toolkit 2.18.0
40
- * Bugfix: order if linker libs fixed. For compatibility, a new command line flag "--link-2-17" to get the old behaviour was added.
41
-
42
- ====================================== ======================================
43
- Example
44
- ====================================== ======================================
45
- Dependencies A->B->D and A->C->D
46
- New correct link order A, B, C, D
47
- Old wrong link order (--link-2-17) A, B, D, C
48
- ====================================== ======================================
49
-
50
-
51
- May 4, 2016 - bake-toolkit 2.17.4
52
- * Bugfix: bakery returned 1 for successful builds
53
- * Changed: bakery now lists all failed unit tests at the end
54
-
55
- April 13, 2016 - bake-toolkit 2.17.3
56
- * Bugfix: Commands injected by adapt feature were executed in wrong directory
57
- * Bugfix: Added an error if two sources would result in the same object file
58
-
59
- April 6, 2016 - bake-toolkit 2.17.2
60
- * Bugfix: "--link-only" option has ignored libraries from makefiles
61
-
62
- March 15, 2016 - bake-toolkit 2.17.1
63
- * Bugfix: configs with inherited DefaultToolchains were not listed on command line (via "--list")
64
- * Changed: if build config name was omitted on commandline, a default config is specified and this default config has no DefaultToolchain, bake lists all possible build configs (same as "--list")
65
- * Added: warning if sources files were compiled several times for one binary
66
-
67
- March 15, 2015 - Eclipse plugin 1.7.0
68
- * Bugfix: config names written in inverted commas or with special characters were not recognized by "Select bake Config" menu
69
- * Removed: multi-console option, which was rarely used and not working correctly anymore with latest Eclipse version
70
- * Added: option to disable/enable console scroll-lock/word-wrap when starting a build
71
- * Cosmetic: config names are now displayed in "Select bake Config" in the same order as in Project.meta
72
- * Cosmetic: bake console does not open automatically anymore when starting Eclipse
73
-
74
- February 26, 2016 - bake-toolkit 2.16.1
75
- * Added: experimental bundle feature
76
- * Changed: "--threads" now deprected, use "-j" instead
77
- * Bugfix: in rare cases the cache from a copied/moved Project.meta file was reused instead of reloading the file. This could lead to errors.
78
-
79
- February 11, 2016 - bake-toolkit 2.15.0
80
- * Added: multiple inheritance for configs
81
- * Added: ArtifactName can be specified for libraries
82
- * Added: Merged configs are printed out when running bake with --debug
83
- * Added: info output if "path magic" hides local pathes for IncludeDir
84
- * Bugfix: fixed passing arguments from bakery to bake
85
-
86
- January 14, 2016 - bake-toolkit 2.14.0
87
- * Added: possibility to change configs via command line, e.g. changing compiler, see "adapt" docu page
88
- * Changed: extending configs in a Project.meta file made more generic, see "derive" docu page
89
- * Changed: default order of filenames changed, now order in Project.meta has the highest priority as intended. Results of glob patterns are sorted alphabetically as before.
90
- * Changed: libraries from makefiles are linked now after other libraries defined from the same config
91
- * Added: IncludeDir now possible for CustomConfigs
92
- * Bugfix: --abs-paths now works with --incs-and-defs
93
-
94
- December 23, 2015 - bake-toolkit 2.13.1
95
- * Bugfix: merging configs was extremely slow in 2.12.2 and 2.13.0
96
-
97
- December 23, 2015 - bake-toolkit 2.13.0
98
- * Bugfix: It was possible that the archiver and linker were called for --prepro and --link-only builds
99
- * Added: possibility to specify minimum and maximum required bake version in Project.meta file
100
- * Added: option to omit -b when executing the bakery
101
- * Added: bakery now searches recursively for bake projects
102
- * Changed: some commandline arguments changed, deprecated arguments still supported
103
-
104
- ================== =======================
105
- New argument Deprecated argument
106
- ================== =======================
107
- --do --include_filter
108
- --omit --exclude_filter
109
- --show_configs --list
110
- --link-only --link_only
111
- --generate-doc --docu
112
- --lint-min --lint_min
113
- --lint-max --lint_max
114
- --ignore-cache --ignore_cache
115
- --toolchain-info --toolchain_info
116
- --toolchain-names --toolchain_names
117
- --abs-paths --show_abs_paths
118
- --no-autodir --no_autodir
119
- --incs-and-defs --show_incs_and_defs
120
- --conversion-info --conversion_info
121
- --doc --show_doc
122
- --license --show_license
123
- ================== =======================
124
- December 16, 2015 - bake-toolkit 2.12.2
125
- * Bugfix: extending a client config (merging) could have broken the parent config
126
- * Changed: empty libraries will not be created and linked anymore
127
- * Changed: added inject as alias for infix
128
- November 16, 2015 - bake-toolkit 2.12.1
129
- * Bugfix: inherit and infix features may have calculated wrong relative paths
130
- October 26, 2015 - Eclipse plugin 1.6.0
131
- * Added: possibility to specify folders to exclude when importing projects
132
- * Bugfix: fixed exception when trying to build after starting eclipse with a closed project
133
- October 14, 2015 - bake-toolkit 2.12.0
134
- * Changed: now ALL startup and exit steps are executed regardless if the previous steps were successful even if stopOnFirstError was configured
135
- * Bugfix: relative pathes between roots based on roots.bake were calculated incorrectly
136
- October 2, 2015 - bake-toolkit 2.11.4
137
- * Bugfix: bake aborted in larger workspaces with 2.11.3 right before linking
138
- September 8, 2015 - bake-toolkit 2.11.3
139
- * Bugfix: linker executed even if a dependency has an error
140
- * Bugfix: now the new docu is really added to the gem
141
- September 3, 2015 - bake-toolkit 2.11.2
142
- * Bugfix: all files were always be recompiled with ruby < 1.9.3
143
- * Changed: switched to new docu style, thanks Nico!
144
- August 4, 2015 - bake-toolkit 2.11.1
145
- * Added: project dir output for conversion tool
146
- * Moved: wishlist to github
147
- July 31, 2015 - bake-toolkit 2.11.0
148
- * Added: new parameters for includeDir: inherit and infix
149
- * Added: dependency output for conversion tool
150
- * Bugfix: makefile flags where not used when cleaning the workspace
151
- July 6, 2015 - bake-toolkit 2.10.3
152
- * Bugfix: Build stopped unintentionally when using -r
153
- July 3, 2015 - bake-toolkit 2.10.2
154
- * Bugfix: PostSteps were unintentionally executed if a dependent step (e.g. linking) was not executed due to an error in another project (e.g. compiler error)
155
- July 1, 2015 - bake-toolkit 2.10.1
156
- * Added: Possibility to add descriptions for configs which will be printed when using --show_configs
157
- * Bugfix: link_only did not link only if not all sources of the main project were not built before
158
- * Bugfix: Ctrl-C on command line did not work properly under Linux
159
- July 1, 2015 - Eclipse plugin 1.5.1
160
- * Bugfix: AdjustIncludes broken for subfolder projects (with a "^" in the name)
161
- * Bugfix: Error parser broken for subfolder projects (with a "^" in the name)
162
- * Bugfix: Configs with inherited DefaultToolchain were not selectable to build
163
- June 10, 2015 - bake-toolkit 2.9.2
164
- * Cosmetic: Redundant include directories are now removed before calling the compiler
165
- * Bugfix: Moving cached meta files was not recognized correctly, wrong path references may have been used
166
- June 8, 2015 - bake-toolkit 2.9.1
167
- * Changed: "--doc" replaced by "--show_doc" to avoid confusion
168
- June 5, 2015 - bake-toolkit 2.9.0
169
- * Added: "--create" command line option to create project templates
170
- * Added: "--conversion_info" command line option for bake conversion tool
171
- * Cosmetic: made output clearer if "--link_only" is used for non ExecutableConfigs
172
- June 5, 2015 - Eclipse plugin 1.4.5
173
- * Bugfix: input streams from bake were closed too early under Linux - console window output and AdjustCDT feature should work correctly now
174
- * Added: "Link This Project Only" shortcut added
175
- * Added: Files under "build_*" and ".bake" are now automatically marked as derived (not shown in "Open Resource" dialog)
176
- * Changed: error message dialog of AdjustCDT now displays the end instead of the beginning of very long error messages
177
- May 19, 2015 - bake-toolkit 2.8.0
178
- * Bugfix: when building a project with -p name, not only name was built, but all projects which start with the string name
179
- * Added: more info why Project.meta files are reloaded
180
- * Added: createVSProjects can create VS2013 projects
181
- April 22, 2015 - bake-toolkit 2.7.0
182
- * Added: possibility to use Eclipse file ordering for compilation (eclipseOrder attribute for DefaultToolchain)
183
- * Changed: $(:) and $(/) are now mapped to Ruby internal variables File::PATH_SEPARATOR and File::SEPARATOR.
184
- * This fixes the result in Cygwin/MinGW environments
185
- * Bugfix: cmdline files are now written even if the build step fails
186
- April 14, 2015 - bake-toolkit 2.6.0
187
- * Added: validExitCodes attribute to steps (if a step has valid exit codes != 0)
188
- * Added: StartupSteps and ExitSteps (always executed before and after a build)
189
- April 8, 2015 - bake-toolkit 2.5.0
190
- * Added: OS dependent variable $(:), which is used for setting the PATH variable
191
- March 30, 2015 - bake-toolkit 2.4.3
192
- * Added: If Project.meta files are updated, sources will only be recompiled if necessary
193
- * Added: Set command in Project.meta has now an env attribute to store variables also in system environment which makes them accessible from user scripts
194
- * Added: GCC_ENV toolchain (uses environment variables)
195
- * Added: Improved MSVC support
196
- March 16, 2015 - VS plugin 1.0.1
197
- * Added: Support for VS2013
198
- March 12, 2015 - bake-toolkit 2.3.4
199
- * Changed: Clang command is now "clang" per default instead of llvm-gcc
200
- * Added: CLANG_ANALYZE toolchain
201
- * Added: MSVC toolchain
202
- * Bugfix: some minor fixes
203
- February 27, 2015 - Eclipse plugin 1.3.0
204
- * Added: bake projects with equal names can be imported now
205
- February 19, 2015 - bake-toolkit 2.2.2
206
- * Changed: output dirs are now prefixed with "build\_" per default
207
- * Changed: introduced complex variable $(OutputDir,projectName,configName)
208
- * Changed: reworked merge strategy of two configs, especially toolchain options
209
- * Added: variables can be nested now
210
- * Bugfix: fixed dependency header check for Unix when running Windows on a virtual machine
211
- * Bugfix: variable OutputDir did not take overwritten output directory from toolchain into account
212
- * Cosmetic: do not show internal pipes anymore when printing command lines
213
- January 26, 2015 - bake-toolkit 2.1.1
214
- * Bugfix: dependent header file check in 2.1.0 was broken
215
- * Changed: files defined via glob pattern are sorted alphabetically now
216
- January 23, 2015 - bake-toolkit 2.1.0
217
- * Bugfix: fixed crash in warning output if setting variable via cmd did not work
218
- * Workaround: dependent header files are now ignored on Windows if path starts with "/" and file cannot be found
219
- * Changed: output of lint is now ignored, linting will only fails if it cannot be executed
220
- * Changed: introduced new verbose mode -v3, shifted some output to this level
221
- * Added: a dependency project can be specified with parent folders if it is ambiguous, e.g. Dependency "my/folder/proj", config: lib
222
- * Added: experimental CC2J output
223
- January 23, 2015 - Eclipse plugin 1.2.1
224
- * Bugfix: importing projects with existing .(c)project files may be placed in wrong folder
225
- January 15, 2015 - bake-toolkit 2.0.10
226
- * Bugfix: spaces in paths were not handled correctly in all cases
227
- * Bugfix: dependency files of Keil compiler not treated correctly
228
- * Added: showing why files are built in verbose mode -v2
229
- * Added: whole workspace can be linted now (projects will be linted separately)
230
- * Changed: removed bake-doc command, use bake --doc instead
231
- * Changed: if no default project is specified, possible build configs are shown on command line again like in bake 1.x
232
- January 7, 2015 - bake-toolkit 2.0.3
233
- * Changed: default configuration is chosen if configuration name is omitted. This applies to command line as well as to Dependency definitions, e.g.:
234
- * Project.meta
235
-
236
- .. code-block:: console
237
-
238
- Dependency canDriver # no config attribute
239
-
240
- * Command line
241
-
242
- .. code-block:: console
243
-
244
- User@Host:~$ bake -m bla/myProj
245
-
246
- .. note::
247
-
248
- To show the possible configs of a project, use the `--show_configs` command line option.
249
-
250
-
251
- * Changed: more than one config of a project can be used in one build.
252
-
253
- Example:
254
-
255
- .. code-block:: console
256
-
257
- Dependency canDriver, config: C1
258
- Dependency canDriver, config: C2
259
-
260
-
261
- To reference a config of the current project, omit the project name, e.g.:
262
-
263
- .. code-block:: console
264
-
265
- Dependency config: C3
266
-
267
- To build a single project, you can still use -p command line argument:
268
-
269
- .. code-block:: console
270
-
271
- User@Host:~$ bake Debug -p canDriver
272
-
273
- However, if canDriver has more than one config in the workspace, all configs will be built. To build only a single config, use a comma separator like this:
274
-
275
- .. code-block:: console
276
-
277
- User@Host:~$ bake Debug -p canDriver,C1
278
-
279
- * Changed: the default output folder has been changed due to the new feature of having several configs of a project in one workspace.
280
- ============ ===================================== =======================================================
281
- \ Old New
282
- ============ ===================================== =======================================================
283
- Main project $(MainConfigName) $(MainConfigName)
284
-
285
- Sub Project $(MainConfigName)_$(MainProjectName) $(ConfigName)_$(MainProjectName)_$(MainConfigName)
286
- ============ ===================================== =======================================================
287
-
288
- .. warning::
289
- Be careful if you have something like this in Project.meta:
290
-
291
- .. code-block:: console
292
-
293
- ExternalLibrary "bspCoreZ6/$(MainConfigName)_$(MainProjectName)/src/coreZ6/startup/startupCode.o", search:false
294
-
295
- This refers to the old output directory. Change it or if you want to support old and new bake versions,
296
- write a PreStep which copies the file from the new location to the old one.
297
-
298
- * Changed: with -f a pattern can be specified, not only a single file. All files matching this string will be compiled.
299
- * Changed: variables in Dependency definitions are not allowed anymore to avoid inconsistencies.
300
- * Changed: no error will be reported anymore if makefile has no clean target.
301
- * Changed: source files will now be compiled and archived ordered by the Files definition in Project.meta, not by a Eclipse-backward-compatibility-ordering.
302
- * Changed: reworked some error messages, more error annotations are shown in IDEs
303
- * Added: "--include_filter" and "--exclude_filter" also work for main step of CustomConfig
304
- * Added: possibility to add comments in roots.bake
305
- * Added: new variables CPPPath, CPath, ASMPath, ArchiverPath and LinkerPath. These variables can also be used in InternalDefines and InternalInclude files.
306
- * Added: lint is not restricted to GCC toolchain anymore.
307
- * Added: --docu option. Specify the docu command line in Docu tag of the (Default)Toolchain.
308
- * Removed: support for Ruby 1.8. Use Ruby 1.9 or higher.
309
- * Removed: dependencies to cxxproject and rake gems
310
- * Removed: "-j" as default flag when calling makefiles. This must be explicitly specified.
311
- * Removed: option to check for unnecessary includes
312
- * Removed: hardcoded TI compiler commands and flags
313
- ======================= ========================================================================== ===========
314
- \ Old New
315
- ======================= ========================================================================== ===========
316
- Compiler command $(ti_home)/ccsv5/tools/compiler/tms470/bin/cl470 ti_cl
317
-
318
- Compiler flags -mv7A8 -g --include_path="#{ti_home}/ccsv5/tools/compiler/tms470/include"
319
- --diag_warning=225 -me --abi=eabi --code_state=32 --preproc_with_compile
320
-
321
- Archiver command $(ti_home)/ccsv5/tools/compiler/tms470/bin/ar470 ti_ar
322
-
323
- Linker command $(ti_home)/ccsv5/tools/compiler/tms470/bin/cl470 ti_cl
324
-
325
- Linker flags -mv7A8 -g --diag_warning=225 -me --abi=eabi --code_state=32 -z
326
- --warn_sections -i"$(ti_home)/ccsv5/tools/compiler/tms470/lib"
327
- -i"$(ti_home)/ccsv5/tools/compiler/tms470/include"
328
-
329
- Linker lib prefix flags -lDebug/configPkg/linker.cmd
330
- ======================= ========================================================================== ===========
331
-
332
- * Bugfix: variables in add and remove attributes of Flags now work as intended
333
- * Bugfix: output folder was not created if no sources are specified for LibraryConfig and ExecutableConfig.
334
- * Bugfix: "-p" was not forwarded in bakery.
335
- * Cosmetic: bakery now calls bake with relative pathnames, which results in nicer outputs.
336
- December 19, 2014 - Eclipse plugin 1.2.0
337
- * Bugfix: it is now ensured, that bake will be started from Eclipse working directory
338
- * Bugfix: projects created with the "new bake project wizard" are now placed in the correct folder.
339
- * Added: Eclipse working directory shown in bake preference dialog (important if -w option is used with relative paths)
340
- * Added: Options to recreate .(c)project files when importing bake projects
341
- * Changed: Eclipse configurations will be named "bake" and not "Do not use this config, use bake instead"
342
- December 16, 2014 - Eclipse plugin 1.1.1
343
- * Bugfix: Adjust include and defines broken feature used wrong command line option.
344
- November 7, 2014 - bake-toolkit 1.8.0, Eclipse plugin 1.1.0
345
- * Added: InternalIncludes and InternalDefines in DefaultToolchain, which are forwarded to the IDE.
346
- * Changed: No default options for PC-lint in combination with GCC will be provided anymore. Use the official way, see co-gcc.lnt in PC-lint installation.
347
- * Bugfix: verbose output for replacing non-existing environment variables broken.
348
- November 4, 2014 - bake-toolkit 1.7.0
349
- * Added: Option to define output directory relative/absolute for each project or for all projects.
350
- * Added: --set command line option to set variables
351
- * Added: Optional "Description" tag for projects in Project.meta
352
- * Changed: Variables in DefaultToolchain will be substituted separately for each project.
353
- August 8, 2014 - bake-toolkit 1.6.3
354
- * Fixed: possible uninitialized variable could lead to crash bake
355
- August 6, 2014 - bake-toolkit 1.6.2
356
- * Fixed: clear clearn- and clobber-lists at startup
357
- * Fixed: Variables not substituted in ArtifactName and ArtifactNameBase
358
- * Added: Cyclic variable substitution
359
- August 5, 2014 - bake-toolkit 1.6.1
360
- * Added: Fixed variable substitution
361
- August 1, 2014 - bake-toolkit 1.6.0
362
- * Added: The value of a variable can be the result of a command line
363
- July 18, 2014 - bake-toolkit 1.5.0
364
- * Added: Dependencies can be overwritten in inherited projects
365
- * Removed: defines cannot be filtered anymore via command line
366
- June 6, 2014 - bake-toolkit 1.4.0
367
- * Bugfix: variables can be used in "Set" now
368
- * Added: variable "MainProjectDir"
369
- May 23, 2014 - bake-toolkit 1.3.0
370
- * Added: defines can be filtered now via command line
371
- May 2, 2014 - bake-toolkit 1.2.1
372
- * Added: Set keyword for defining variables
373
- * Changed: "executed in"-output now in separate line
374
- March 14, 2014 - bake-toolkit 1.1.0
375
- * Added: Lint support
376
- * Added: $(ProjectDir) variable
377
- March 7, 2014 - bake-toolkit 1.0.27
378
- * Cosmetic: some pictures in documentation were missing
379
- March 5, 2014 - bake-toolkit 1.0.26
380
- * Bugfix: in rare cases invalid characters from compiler output were not handled correctly
381
- * Bugfix: changing workspace roots on command line now always regenerates build tree
382
- * Added: Variable $(Roots) for IncludeDir directives
383
- * Changed: dependency files for all compilers will be generated inclusive system headers
384
- * Changed: abort earlier if main directory has no Project.meta
385
- * Changed: every environment variable is expanded to an empty string if not defined
386
- January 21, 2014 - bake-toolkit 1.0.25
387
- * Added: configs can now be inherited
388
- * Added: command bake-doc opens bake doc
389
- * Changed: dependency files for Greenhills compiler will be generated with -MD instead of -MMD
390
- September 10, 2013 - bake-toolkit 1.0.24
391
- * Changed: Improved Keil linker error parser.
392
- September 9, 2013 - bake-toolkit 1.0.23
393
- * Added: Keil support.
394
- * Bugfix: minor fixes.
395
- August 21, 2013 - bake-toolkit 1.0.22
396
- * Bugfix: Searching for project folders did not work correctly.
397
- August 20, 2013 - Eclipse plugin 1.0.5.0
398
- * Bugfix: Adjust includes in CDT is working again after Java Update.
399
- August 1, 2013 - bake-toolkit 1.0.21
400
- * Bugfix: projects folders which are junctions were not found anymore after the last update.
401
- July 25, 2013 - bake-toolkit 1.0.20, Eclipse plugin 1.0.4.0
402
- * Added: projects can be placed more than one level below workspaces roots
403
- June 21, 2013 - bake-toolkit 1.0.19
404
- * Added: support for GreenHills compiler.
405
- May 29, 2013 - bake-toolkit 1.0.18
406
- * Bugfix: typo in require, which has broken bake in case sensitive file systems.
407
- May 28, 2013 - bake-toolkit 1.0.17
408
- * Bugfix: error levels greater than 255 of external processes were not be recognized correctly in some cases.
409
- May 16, 2013 - Eclipse plugin 1.0.2.0
410
- * Bugfix: bake did not start correctly with latest Java version installed.
411
- April 22, 2013 - bake-toolkit 1.0.16
412
- * Changed: default roots of bakery are now directory of Collection.meta and it's parent directory.
413
- April 19, 2013 - bake-toolkit 1.0.15
414
- * Bugfix: bakery could not build projects with spaces in oathname.
415
- April 19, 2013 - bake-toolkit 1.0.13
416
- * Bugfix: some bake options specified on bakery command line were not accepted.
417
- April 17, 2013 - bake-toolkit 1.0.12
418
- * Changed: Output folders are not deleted and rebuilt if no source files are available but the archive file.
419
- * Added: Option --clobber deletes .bake cache file.
420
- * Added: Collections can reference collections.
421
- * Added: collection names can be specified without typing "-b"
422
- April 4, 2013 - bake-toolkit 1.0.11
423
- * Bugfix: Executing batch files in CommandLine on Windows were broken.
424
- * April 2, 2013 - bake-toolkit 1.0.10
425
- * Bugfix: options "--toolchain_names" now working as intended
426
- * Bugfix: default flags for makefiles (-j) no longer ignored
427
- * Changed: flags for makefiles are now defined in subtags instead in attributes to be consistent with other flag definitions
428
- * Added: ".." in Files and ExcludeFiles now allowed
429
- * Added: command line switch to turn off "directory magic"
430
- * Added: build config can be specified without typing "-b"
431
- * Cosmetic: better error output if compiler not found
432
- March 22, 2013 - bake-toolkit 1.0.9
433
- * Cosmetic: Changed option --print_less to -v0 and -v to -v2. Default is -v1.
434
- March 7, 2013 - bake-toolkit 1.0.8
435
- * Added: Linkerscript can be referenced from other projects
436
- February 13, 2013 - bake-toolkit 1.0.7
437
- * Added: OS dependent variable $(/)
438
- January 21, 2013 - bake-toolkit 1.0.6
439
- * Added: support for Visual Studio
440
- January 15, 2013 - bake-toolkit 1.0.5
441
- * Changed: no indirect dependency to progressbar gem anymore
442
- January 14, 2013 - bake-toolkit 1.0.4
443
- * Added: a new cache validation check.
444
- January 2, 2013 - bake-toolkit 1.0.3
445
- * Bugfix: option to build a single file did not accept a filename with absolute path.
446
- October 7, 2012 - bake-toolkit 1.0.2
447
- * Changed: Renamed gem from "bake" to "bake-toolkit".
448
- September 18, 2012 - bake 1.0.1
449
- * Changed: bake now based on rgen 0.6.0 and rtext 0.2.0, which are available on rubygems.
450
- August 31, 2012 - bake 1.0.0
451
- * First official release
1
+ Changelog
2
+ =========
3
+
4
+ September 30, 2016 - bake-toolkit 2.21.0
5
+ * Changed: version and time infos are suppressed now per default. Version can be seen with --help or --version, time can be seen with --time.
6
+ * Changed: option --writeCC2J renamed to --compilation-db, which has the default filename compilation-db.json now.
7
+ * Added: option --incs-and-defs=json prints infos about includes and defines of all projects in json format.
8
+
9
+ September 28, 2016 - bake-toolkit 2.20.4
10
+ * Bugfix: fixed auto-detected of dependency files
11
+
12
+ September 21, 2016 - bake-toolkit 2.20.3
13
+ * Bugfix: reading dependency files was broken for TI compiler, format is now auto-detected independent from compiler version
14
+
15
+ September 13, 2016 - bake-toolkit 2.20.2
16
+ * Bugfix: *prebuild* libs were not linked if all original sources were removed
17
+
18
+ September 5, 2016 - bake-toolkit 2.20.1
19
+ * Added: inject feature for dependencies
20
+ * Added: option to generate a dot graph file
21
+ * Added: *prebuild* feature for distribution builds
22
+ * Added: commandline option *--build_* to enable the old outputdir behaviour: *build_* instead of *build/*
23
+ * Added: printing out more information when loading Project.metas in verbosity level 3
24
+ * Changed: circular dependency warning moved from verbosity level 1 to 3
25
+ * Added: ToolchainName is now a predefined variable for Project.meta
26
+ * Added: --compile-only option (which is equal to the workaround -f ".")
27
+ * Bugfix: --adapt commandline option accepts absolute paths now
28
+ * Changed: removed the *bundle* feature
29
+
30
+ August 12, 2016 - bake-toolkit 2.19.2
31
+ * Bugfix: fixed TI linker error parser
32
+
33
+ August 4, 2016 - Eclipse plugin 1.7.1
34
+ * Bugfix: error markers may not created correctly if projects had "^" in the name
35
+
36
+ August 1, 2016 - bake-toolkit 2.19.1
37
+ * Bugfix: made the new "listening to raw character 0x3" more robust
38
+
39
+ July 28, 2016 - bake-toolkit 2.19.0
40
+ * Changed: default output dir is now build/<something> instead of build_<something>
41
+ * Added: listening to raw character 0x3 on stdin to abort bake/bakery (needed for some Cygwin installations)
42
+ * Internal: switching from rgen 0.8.0 to rgen 0.8.1 (which should have no functional impact)
43
+
44
+ June 22, 2016 - bake-toolkit 2.18.0
45
+ * Bugfix: order if linker libs fixed. For compatibility, a new command line flag "--link-2-17" to get the old behaviour was added.
46
+
47
+ ====================================== ======================================
48
+ Example
49
+ ====================================== ======================================
50
+ Dependencies A->B->D and A->C->D
51
+ New correct link order A, B, C, D
52
+ Old wrong link order (--link-2-17) A, B, D, C
53
+ ====================================== ======================================
54
+
55
+
56
+ May 4, 2016 - bake-toolkit 2.17.4
57
+ * Bugfix: bakery returned 1 for successful builds
58
+ * Changed: bakery now lists all failed unit tests at the end
59
+
60
+ April 13, 2016 - bake-toolkit 2.17.3
61
+ * Bugfix: Commands injected by adapt feature were executed in wrong directory
62
+ * Bugfix: Added an error if two sources would result in the same object file
63
+
64
+ April 6, 2016 - bake-toolkit 2.17.2
65
+ * Bugfix: "--link-only" option has ignored libraries from makefiles
66
+
67
+ March 15, 2016 - bake-toolkit 2.17.1
68
+ * Bugfix: configs with inherited DefaultToolchains were not listed on command line (via "--list")
69
+ * Changed: if build config name was omitted on commandline, a default config is specified and this default config has no DefaultToolchain, bake lists all possible build configs (same as "--list")
70
+ * Added: warning if sources files were compiled several times for one binary
71
+
72
+ March 15, 2015 - Eclipse plugin 1.7.0
73
+ * Bugfix: config names written in inverted commas or with special characters were not recognized by "Select bake Config" menu
74
+ * Removed: multi-console option, which was rarely used and not working correctly anymore with latest Eclipse version
75
+ * Added: option to disable/enable console scroll-lock/word-wrap when starting a build
76
+ * Cosmetic: config names are now displayed in "Select bake Config" in the same order as in Project.meta
77
+ * Cosmetic: bake console does not open automatically anymore when starting Eclipse
78
+
79
+ February 26, 2016 - bake-toolkit 2.16.1
80
+ * Added: experimental bundle feature
81
+ * Changed: "--threads" now deprected, use "-j" instead
82
+ * Bugfix: in rare cases the cache from a copied/moved Project.meta file was reused instead of reloading the file. This could lead to errors.
83
+
84
+ February 11, 2016 - bake-toolkit 2.15.0
85
+ * Added: multiple inheritance for configs
86
+ * Added: ArtifactName can be specified for libraries
87
+ * Added: Merged configs are printed out when running bake with --debug
88
+ * Added: info output if "path magic" hides local pathes for IncludeDir
89
+ * Bugfix: fixed passing arguments from bakery to bake
90
+
91
+ January 14, 2016 - bake-toolkit 2.14.0
92
+ * Added: possibility to change configs via command line, e.g. changing compiler, see "adapt" docu page
93
+ * Changed: extending configs in a Project.meta file made more generic, see "derive" docu page
94
+ * Changed: default order of filenames changed, now order in Project.meta has the highest priority as intended. Results of glob patterns are sorted alphabetically as before.
95
+ * Changed: libraries from makefiles are linked now after other libraries defined from the same config
96
+ * Added: IncludeDir now possible for CustomConfigs
97
+ * Bugfix: --abs-paths now works with --incs-and-defs
98
+
99
+ December 23, 2015 - bake-toolkit 2.13.1
100
+ * Bugfix: merging configs was extremely slow in 2.12.2 and 2.13.0
101
+
102
+ December 23, 2015 - bake-toolkit 2.13.0
103
+ * Bugfix: It was possible that the archiver and linker were called for --prepro and --link-only builds
104
+ * Added: possibility to specify minimum and maximum required bake version in Project.meta file
105
+ * Added: option to omit -b when executing the bakery
106
+ * Added: bakery now searches recursively for bake projects
107
+ * Changed: some commandline arguments changed, deprecated arguments still supported
108
+
109
+ ================== =======================
110
+ New argument Deprecated argument
111
+ ================== =======================
112
+ --do --include_filter
113
+ --omit --exclude_filter
114
+ --show_configs --list
115
+ --link-only --link_only
116
+ --generate-doc --docu
117
+ --lint-min --lint_min
118
+ --lint-max --lint_max
119
+ --ignore-cache --ignore_cache
120
+ --toolchain-info --toolchain_info
121
+ --toolchain-names --toolchain_names
122
+ --abs-paths --show_abs_paths
123
+ --no-autodir --no_autodir
124
+ --incs-and-defs --show_incs_and_defs
125
+ --conversion-info --conversion_info
126
+ --doc --show_doc
127
+ --license --show_license
128
+ ================== =======================
129
+ December 16, 2015 - bake-toolkit 2.12.2
130
+ * Bugfix: extending a client config (merging) could have broken the parent config
131
+ * Changed: empty libraries will not be created and linked anymore
132
+ * Changed: added inject as alias for infix
133
+ November 16, 2015 - bake-toolkit 2.12.1
134
+ * Bugfix: inherit and infix features may have calculated wrong relative paths
135
+ October 26, 2015 - Eclipse plugin 1.6.0
136
+ * Added: possibility to specify folders to exclude when importing projects
137
+ * Bugfix: fixed exception when trying to build after starting eclipse with a closed project
138
+ October 14, 2015 - bake-toolkit 2.12.0
139
+ * Changed: now ALL startup and exit steps are executed regardless if the previous steps were successful even if stopOnFirstError was configured
140
+ * Bugfix: relative pathes between roots based on roots.bake were calculated incorrectly
141
+ October 2, 2015 - bake-toolkit 2.11.4
142
+ * Bugfix: bake aborted in larger workspaces with 2.11.3 right before linking
143
+ September 8, 2015 - bake-toolkit 2.11.3
144
+ * Bugfix: linker executed even if a dependency has an error
145
+ * Bugfix: now the new docu is really added to the gem
146
+ September 3, 2015 - bake-toolkit 2.11.2
147
+ * Bugfix: all files were always be recompiled with ruby < 1.9.3
148
+ * Changed: switched to new docu style, thanks Nico!
149
+ August 4, 2015 - bake-toolkit 2.11.1
150
+ * Added: project dir output for conversion tool
151
+ * Moved: wishlist to github
152
+ July 31, 2015 - bake-toolkit 2.11.0
153
+ * Added: new parameters for includeDir: inherit and infix
154
+ * Added: dependency output for conversion tool
155
+ * Bugfix: makefile flags where not used when cleaning the workspace
156
+ July 6, 2015 - bake-toolkit 2.10.3
157
+ * Bugfix: Build stopped unintentionally when using -r
158
+ July 3, 2015 - bake-toolkit 2.10.2
159
+ * Bugfix: PostSteps were unintentionally executed if a dependent step (e.g. linking) was not executed due to an error in another project (e.g. compiler error)
160
+ July 1, 2015 - bake-toolkit 2.10.1
161
+ * Added: Possibility to add descriptions for configs which will be printed when using --show_configs
162
+ * Bugfix: link_only did not link only if not all sources of the main project were not built before
163
+ * Bugfix: Ctrl-C on command line did not work properly under Linux
164
+ July 1, 2015 - Eclipse plugin 1.5.1
165
+ * Bugfix: AdjustIncludes broken for subfolder projects (with a "^" in the name)
166
+ * Bugfix: Error parser broken for subfolder projects (with a "^" in the name)
167
+ * Bugfix: Configs with inherited DefaultToolchain were not selectable to build
168
+ June 10, 2015 - bake-toolkit 2.9.2
169
+ * Cosmetic: Redundant include directories are now removed before calling the compiler
170
+ * Bugfix: Moving cached meta files was not recognized correctly, wrong path references may have been used
171
+ June 8, 2015 - bake-toolkit 2.9.1
172
+ * Changed: "--doc" replaced by "--show_doc" to avoid confusion
173
+ June 5, 2015 - bake-toolkit 2.9.0
174
+ * Added: "--create" command line option to create project templates
175
+ * Added: "--conversion_info" command line option for bake conversion tool
176
+ * Cosmetic: made output clearer if "--link_only" is used for non ExecutableConfigs
177
+ June 5, 2015 - Eclipse plugin 1.4.5
178
+ * Bugfix: input streams from bake were closed too early under Linux - console window output and AdjustCDT feature should work correctly now
179
+ * Added: "Link This Project Only" shortcut added
180
+ * Added: Files under "build_*" and ".bake" are now automatically marked as derived (not shown in "Open Resource" dialog)
181
+ * Changed: error message dialog of AdjustCDT now displays the end instead of the beginning of very long error messages
182
+ May 19, 2015 - bake-toolkit 2.8.0
183
+ * Bugfix: when building a project with -p name, not only name was built, but all projects which start with the string name
184
+ * Added: more info why Project.meta files are reloaded
185
+ * Added: createVSProjects can create VS2013 projects
186
+ April 22, 2015 - bake-toolkit 2.7.0
187
+ * Added: possibility to use Eclipse file ordering for compilation (eclipseOrder attribute for DefaultToolchain)
188
+ * Changed: $(:) and $(/) are now mapped to Ruby internal variables File::PATH_SEPARATOR and File::SEPARATOR.
189
+ * This fixes the result in Cygwin/MinGW environments
190
+ * Bugfix: cmdline files are now written even if the build step fails
191
+ April 14, 2015 - bake-toolkit 2.6.0
192
+ * Added: validExitCodes attribute to steps (if a step has valid exit codes != 0)
193
+ * Added: StartupSteps and ExitSteps (always executed before and after a build)
194
+ April 8, 2015 - bake-toolkit 2.5.0
195
+ * Added: OS dependent variable $(:), which is used for setting the PATH variable
196
+ March 30, 2015 - bake-toolkit 2.4.3
197
+ * Added: If Project.meta files are updated, sources will only be recompiled if necessary
198
+ * Added: Set command in Project.meta has now an env attribute to store variables also in system environment which makes them accessible from user scripts
199
+ * Added: GCC_ENV toolchain (uses environment variables)
200
+ * Added: Improved MSVC support
201
+ March 16, 2015 - VS plugin 1.0.1
202
+ * Added: Support for VS2013
203
+ March 12, 2015 - bake-toolkit 2.3.4
204
+ * Changed: Clang command is now "clang" per default instead of llvm-gcc
205
+ * Added: CLANG_ANALYZE toolchain
206
+ * Added: MSVC toolchain
207
+ * Bugfix: some minor fixes
208
+ February 27, 2015 - Eclipse plugin 1.3.0
209
+ * Added: bake projects with equal names can be imported now
210
+ February 19, 2015 - bake-toolkit 2.2.2
211
+ * Changed: output dirs are now prefixed with "build\_" per default
212
+ * Changed: introduced complex variable $(OutputDir,projectName,configName)
213
+ * Changed: reworked merge strategy of two configs, especially toolchain options
214
+ * Added: variables can be nested now
215
+ * Bugfix: fixed dependency header check for Unix when running Windows on a virtual machine
216
+ * Bugfix: variable OutputDir did not take overwritten output directory from toolchain into account
217
+ * Cosmetic: do not show internal pipes anymore when printing command lines
218
+ January 26, 2015 - bake-toolkit 2.1.1
219
+ * Bugfix: dependent header file check in 2.1.0 was broken
220
+ * Changed: files defined via glob pattern are sorted alphabetically now
221
+ January 23, 2015 - bake-toolkit 2.1.0
222
+ * Bugfix: fixed crash in warning output if setting variable via cmd did not work
223
+ * Workaround: dependent header files are now ignored on Windows if path starts with "/" and file cannot be found
224
+ * Changed: output of lint is now ignored, linting will only fails if it cannot be executed
225
+ * Changed: introduced new verbose mode -v3, shifted some output to this level
226
+ * Added: a dependency project can be specified with parent folders if it is ambiguous, e.g. Dependency "my/folder/proj", config: lib
227
+ * Added: experimental CC2J output
228
+ January 23, 2015 - Eclipse plugin 1.2.1
229
+ * Bugfix: importing projects with existing .(c)project files may be placed in wrong folder
230
+ January 15, 2015 - bake-toolkit 2.0.10
231
+ * Bugfix: spaces in paths were not handled correctly in all cases
232
+ * Bugfix: dependency files of Keil compiler not treated correctly
233
+ * Added: showing why files are built in verbose mode -v2
234
+ * Added: whole workspace can be linted now (projects will be linted separately)
235
+ * Changed: removed bake-doc command, use bake --doc instead
236
+ * Changed: if no default project is specified, possible build configs are shown on command line again like in bake 1.x
237
+ January 7, 2015 - bake-toolkit 2.0.3
238
+ * Changed: default configuration is chosen if configuration name is omitted. This applies to command line as well as to Dependency definitions, e.g.:
239
+ * Project.meta
240
+
241
+ .. code-block:: console
242
+
243
+ Dependency canDriver # no config attribute
244
+
245
+ * Command line
246
+
247
+ .. code-block:: console
248
+
249
+ User@Host:~$ bake -m bla/myProj
250
+
251
+ .. note::
252
+
253
+ To show the possible configs of a project, use the `--show_configs` command line option.
254
+
255
+
256
+ * Changed: more than one config of a project can be used in one build.
257
+
258
+ Example:
259
+
260
+ .. code-block:: console
261
+
262
+ Dependency canDriver, config: C1
263
+ Dependency canDriver, config: C2
264
+
265
+
266
+ To reference a config of the current project, omit the project name, e.g.:
267
+
268
+ .. code-block:: console
269
+
270
+ Dependency config: C3
271
+
272
+ To build a single project, you can still use -p command line argument:
273
+
274
+ .. code-block:: console
275
+
276
+ User@Host:~$ bake Debug -p canDriver
277
+
278
+ However, if canDriver has more than one config in the workspace, all configs will be built. To build only a single config, use a comma separator like this:
279
+
280
+ .. code-block:: console
281
+
282
+ User@Host:~$ bake Debug -p canDriver,C1
283
+
284
+ * Changed: the default output folder has been changed due to the new feature of having several configs of a project in one workspace.
285
+ ============ ===================================== =======================================================
286
+ \ Old New
287
+ ============ ===================================== =======================================================
288
+ Main project $(MainConfigName) $(MainConfigName)
289
+
290
+ Sub Project $(MainConfigName)_$(MainProjectName) $(ConfigName)_$(MainProjectName)_$(MainConfigName)
291
+ ============ ===================================== =======================================================
292
+
293
+ .. warning::
294
+ Be careful if you have something like this in Project.meta:
295
+
296
+ .. code-block:: console
297
+
298
+ ExternalLibrary "bspCoreZ6/$(MainConfigName)_$(MainProjectName)/src/coreZ6/startup/startupCode.o", search:false
299
+
300
+ This refers to the old output directory. Change it or if you want to support old and new bake versions,
301
+ write a PreStep which copies the file from the new location to the old one.
302
+
303
+ * Changed: with -f a pattern can be specified, not only a single file. All files matching this string will be compiled.
304
+ * Changed: variables in Dependency definitions are not allowed anymore to avoid inconsistencies.
305
+ * Changed: no error will be reported anymore if makefile has no clean target.
306
+ * Changed: source files will now be compiled and archived ordered by the Files definition in Project.meta, not by a Eclipse-backward-compatibility-ordering.
307
+ * Changed: reworked some error messages, more error annotations are shown in IDEs
308
+ * Added: "--include_filter" and "--exclude_filter" also work for main step of CustomConfig
309
+ * Added: possibility to add comments in roots.bake
310
+ * Added: new variables CPPPath, CPath, ASMPath, ArchiverPath and LinkerPath. These variables can also be used in InternalDefines and InternalInclude files.
311
+ * Added: lint is not restricted to GCC toolchain anymore.
312
+ * Added: --docu option. Specify the docu command line in Docu tag of the (Default)Toolchain.
313
+ * Removed: support for Ruby 1.8. Use Ruby 1.9 or higher.
314
+ * Removed: dependencies to cxxproject and rake gems
315
+ * Removed: "-j" as default flag when calling makefiles. This must be explicitly specified.
316
+ * Removed: option to check for unnecessary includes
317
+ * Removed: hardcoded TI compiler commands and flags
318
+ ======================= ========================================================================== ===========
319
+ \ Old New
320
+ ======================= ========================================================================== ===========
321
+ Compiler command $(ti_home)/ccsv5/tools/compiler/tms470/bin/cl470 ti_cl
322
+
323
+ Compiler flags -mv7A8 -g --include_path="#{ti_home}/ccsv5/tools/compiler/tms470/include"
324
+ --diag_warning=225 -me --abi=eabi --code_state=32 --preproc_with_compile
325
+
326
+ Archiver command $(ti_home)/ccsv5/tools/compiler/tms470/bin/ar470 ti_ar
327
+
328
+ Linker command $(ti_home)/ccsv5/tools/compiler/tms470/bin/cl470 ti_cl
329
+
330
+ Linker flags -mv7A8 -g --diag_warning=225 -me --abi=eabi --code_state=32 -z
331
+ --warn_sections -i"$(ti_home)/ccsv5/tools/compiler/tms470/lib"
332
+ -i"$(ti_home)/ccsv5/tools/compiler/tms470/include"
333
+
334
+ Linker lib prefix flags -lDebug/configPkg/linker.cmd
335
+ ======================= ========================================================================== ===========
336
+
337
+ * Bugfix: variables in add and remove attributes of Flags now work as intended
338
+ * Bugfix: output folder was not created if no sources are specified for LibraryConfig and ExecutableConfig.
339
+ * Bugfix: "-p" was not forwarded in bakery.
340
+ * Cosmetic: bakery now calls bake with relative pathnames, which results in nicer outputs.
341
+ December 19, 2014 - Eclipse plugin 1.2.0
342
+ * Bugfix: it is now ensured, that bake will be started from Eclipse working directory
343
+ * Bugfix: projects created with the "new bake project wizard" are now placed in the correct folder.
344
+ * Added: Eclipse working directory shown in bake preference dialog (important if -w option is used with relative paths)
345
+ * Added: Options to recreate .(c)project files when importing bake projects
346
+ * Changed: Eclipse configurations will be named "bake" and not "Do not use this config, use bake instead"
347
+ December 16, 2014 - Eclipse plugin 1.1.1
348
+ * Bugfix: Adjust include and defines broken feature used wrong command line option.
349
+ November 7, 2014 - bake-toolkit 1.8.0, Eclipse plugin 1.1.0
350
+ * Added: InternalIncludes and InternalDefines in DefaultToolchain, which are forwarded to the IDE.
351
+ * Changed: No default options for PC-lint in combination with GCC will be provided anymore. Use the official way, see co-gcc.lnt in PC-lint installation.
352
+ * Bugfix: verbose output for replacing non-existing environment variables broken.
353
+ November 4, 2014 - bake-toolkit 1.7.0
354
+ * Added: Option to define output directory relative/absolute for each project or for all projects.
355
+ * Added: --set command line option to set variables
356
+ * Added: Optional "Description" tag for projects in Project.meta
357
+ * Changed: Variables in DefaultToolchain will be substituted separately for each project.
358
+ August 8, 2014 - bake-toolkit 1.6.3
359
+ * Fixed: possible uninitialized variable could lead to crash bake
360
+ August 6, 2014 - bake-toolkit 1.6.2
361
+ * Fixed: clear clearn- and clobber-lists at startup
362
+ * Fixed: Variables not substituted in ArtifactName and ArtifactNameBase
363
+ * Added: Cyclic variable substitution
364
+ August 5, 2014 - bake-toolkit 1.6.1
365
+ * Added: Fixed variable substitution
366
+ August 1, 2014 - bake-toolkit 1.6.0
367
+ * Added: The value of a variable can be the result of a command line
368
+ July 18, 2014 - bake-toolkit 1.5.0
369
+ * Added: Dependencies can be overwritten in inherited projects
370
+ * Removed: defines cannot be filtered anymore via command line
371
+ June 6, 2014 - bake-toolkit 1.4.0
372
+ * Bugfix: variables can be used in "Set" now
373
+ * Added: variable "MainProjectDir"
374
+ May 23, 2014 - bake-toolkit 1.3.0
375
+ * Added: defines can be filtered now via command line
376
+ May 2, 2014 - bake-toolkit 1.2.1
377
+ * Added: Set keyword for defining variables
378
+ * Changed: "executed in"-output now in separate line
379
+ March 14, 2014 - bake-toolkit 1.1.0
380
+ * Added: Lint support
381
+ * Added: $(ProjectDir) variable
382
+ March 7, 2014 - bake-toolkit 1.0.27
383
+ * Cosmetic: some pictures in documentation were missing
384
+ March 5, 2014 - bake-toolkit 1.0.26
385
+ * Bugfix: in rare cases invalid characters from compiler output were not handled correctly
386
+ * Bugfix: changing workspace roots on command line now always regenerates build tree
387
+ * Added: Variable $(Roots) for IncludeDir directives
388
+ * Changed: dependency files for all compilers will be generated inclusive system headers
389
+ * Changed: abort earlier if main directory has no Project.meta
390
+ * Changed: every environment variable is expanded to an empty string if not defined
391
+ January 21, 2014 - bake-toolkit 1.0.25
392
+ * Added: configs can now be inherited
393
+ * Added: command bake-doc opens bake doc
394
+ * Changed: dependency files for Greenhills compiler will be generated with -MD instead of -MMD
395
+ September 10, 2013 - bake-toolkit 1.0.24
396
+ * Changed: Improved Keil linker error parser.
397
+ September 9, 2013 - bake-toolkit 1.0.23
398
+ * Added: Keil support.
399
+ * Bugfix: minor fixes.
400
+ August 21, 2013 - bake-toolkit 1.0.22
401
+ * Bugfix: Searching for project folders did not work correctly.
402
+ August 20, 2013 - Eclipse plugin 1.0.5.0
403
+ * Bugfix: Adjust includes in CDT is working again after Java Update.
404
+ August 1, 2013 - bake-toolkit 1.0.21
405
+ * Bugfix: projects folders which are junctions were not found anymore after the last update.
406
+ July 25, 2013 - bake-toolkit 1.0.20, Eclipse plugin 1.0.4.0
407
+ * Added: projects can be placed more than one level below workspaces roots
408
+ June 21, 2013 - bake-toolkit 1.0.19
409
+ * Added: support for GreenHills compiler.
410
+ May 29, 2013 - bake-toolkit 1.0.18
411
+ * Bugfix: typo in require, which has broken bake in case sensitive file systems.
412
+ May 28, 2013 - bake-toolkit 1.0.17
413
+ * Bugfix: error levels greater than 255 of external processes were not be recognized correctly in some cases.
414
+ May 16, 2013 - Eclipse plugin 1.0.2.0
415
+ * Bugfix: bake did not start correctly with latest Java version installed.
416
+ April 22, 2013 - bake-toolkit 1.0.16
417
+ * Changed: default roots of bakery are now directory of Collection.meta and it's parent directory.
418
+ April 19, 2013 - bake-toolkit 1.0.15
419
+ * Bugfix: bakery could not build projects with spaces in oathname.
420
+ April 19, 2013 - bake-toolkit 1.0.13
421
+ * Bugfix: some bake options specified on bakery command line were not accepted.
422
+ April 17, 2013 - bake-toolkit 1.0.12
423
+ * Changed: Output folders are not deleted and rebuilt if no source files are available but the archive file.
424
+ * Added: Option --clobber deletes .bake cache file.
425
+ * Added: Collections can reference collections.
426
+ * Added: collection names can be specified without typing "-b"
427
+ April 4, 2013 - bake-toolkit 1.0.11
428
+ * Bugfix: Executing batch files in CommandLine on Windows were broken.
429
+ * April 2, 2013 - bake-toolkit 1.0.10
430
+ * Bugfix: options "--toolchain_names" now working as intended
431
+ * Bugfix: default flags for makefiles (-j) no longer ignored
432
+ * Changed: flags for makefiles are now defined in subtags instead in attributes to be consistent with other flag definitions
433
+ * Added: ".." in Files and ExcludeFiles now allowed
434
+ * Added: command line switch to turn off "directory magic"
435
+ * Added: build config can be specified without typing "-b"
436
+ * Cosmetic: better error output if compiler not found
437
+ March 22, 2013 - bake-toolkit 1.0.9
438
+ * Cosmetic: Changed option --print_less to -v0 and -v to -v2. Default is -v1.
439
+ March 7, 2013 - bake-toolkit 1.0.8
440
+ * Added: Linkerscript can be referenced from other projects
441
+ February 13, 2013 - bake-toolkit 1.0.7
442
+ * Added: OS dependent variable $(/)
443
+ January 21, 2013 - bake-toolkit 1.0.6
444
+ * Added: support for Visual Studio
445
+ January 15, 2013 - bake-toolkit 1.0.5
446
+ * Changed: no indirect dependency to progressbar gem anymore
447
+ January 14, 2013 - bake-toolkit 1.0.4
448
+ * Added: a new cache validation check.
449
+ January 2, 2013 - bake-toolkit 1.0.3
450
+ * Bugfix: option to build a single file did not accept a filename with absolute path.
451
+ October 7, 2012 - bake-toolkit 1.0.2
452
+ * Changed: Renamed gem from "bake" to "bake-toolkit".
453
+ September 18, 2012 - bake 1.0.1
454
+ * Changed: bake now based on rgen 0.6.0 and rtext 0.2.0, which are available on rubygems.
455
+ August 31, 2012 - bake 1.0.0
456
+ * First official release