bake-toolkit 2.46.0 → 2.47.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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/bin/bake +46 -46
  3. data/bin/bake-doc +1 -1
  4. data/bin/bake-format +1 -1
  5. data/bin/bakeclean +1 -1
  6. data/bin/bakeqac +9 -9
  7. data/bin/bakery +11 -11
  8. data/lib/adapt/config/loader.rb +2 -2
  9. data/lib/bake/cache.rb +5 -5
  10. data/lib/bake/config/loader.rb +3 -3
  11. data/lib/bake/mergeConfig.rb +1 -1
  12. data/lib/bake/model/language.rb +1 -4
  13. data/lib/bake/model/loader.rb +6 -6
  14. data/lib/bake/model/metamodel.rb +21 -0
  15. data/lib/bake/model/metamodel_ext.rb +2 -2
  16. data/lib/bake/options/create.rb +1 -1
  17. data/lib/bake/options/options.rb +24 -16
  18. data/lib/bake/options/showDoc.rb +1 -1
  19. data/lib/bake/options/usage.rb +3 -1
  20. data/lib/bake/subst.rb +14 -13
  21. data/lib/bake/toolchain/clang.rb +5 -5
  22. data/lib/bake/toolchain/clang_analyze.rb +2 -2
  23. data/lib/bake/toolchain/diab.rb +4 -4
  24. data/lib/bake/toolchain/errorparser/diab_compiler_error_parser.rb +1 -1
  25. data/lib/bake/toolchain/errorparser/diab_linker_error_parser.rb +1 -1
  26. data/lib/bake/toolchain/errorparser/gcc_compiler_error_parser.rb +1 -1
  27. data/lib/bake/toolchain/errorparser/gcc_linker_error_parser.rb +1 -1
  28. data/lib/bake/toolchain/errorparser/greenhills_compiler_error_parser.rb +1 -1
  29. data/lib/bake/toolchain/errorparser/greenhills_linker_error_parser.rb +1 -1
  30. data/lib/bake/toolchain/errorparser/keil_compiler_error_parser.rb +1 -1
  31. data/lib/bake/toolchain/errorparser/keil_linker_error_parser.rb +1 -1
  32. data/lib/bake/toolchain/errorparser/msvc_compiler_error_parser.rb +1 -1
  33. data/lib/bake/toolchain/errorparser/msvc_linker_error_parser.rb +1 -1
  34. data/lib/bake/toolchain/errorparser/tasking_compiler_error_parser.rb +1 -1
  35. data/lib/bake/toolchain/errorparser/tasking_linker_error_parser.rb +1 -1
  36. data/lib/bake/toolchain/errorparser/ti_compiler_error_parser.rb +1 -1
  37. data/lib/bake/toolchain/errorparser/ti_linker_error_parser.rb +1 -1
  38. data/lib/bake/toolchain/gcc.rb +9 -5
  39. data/lib/bake/toolchain/gcc_env.rb +5 -5
  40. data/lib/bake/toolchain/greenhills.rb +4 -4
  41. data/lib/bake/toolchain/keil.rb +5 -5
  42. data/lib/bake/toolchain/msvc.rb +5 -5
  43. data/lib/bake/toolchain/provider.rb +10 -10
  44. data/lib/bake/toolchain/tasking.rb +4 -4
  45. data/lib/bake/toolchain/ti.rb +5 -5
  46. data/lib/bake/util.rb +5 -6
  47. data/lib/bakeclean/options/options.rb +2 -2
  48. data/lib/bakeqac/options/options.rb +4 -4
  49. data/lib/bakery/model/language.rb +1 -1
  50. data/lib/bakery/model/loader.rb +5 -5
  51. data/lib/bakery/options/options.rb +4 -4
  52. data/lib/bakery/toBake.rb +1 -1
  53. data/lib/blocks/block.rb +4 -4
  54. data/lib/blocks/blockBase.rb +0 -11
  55. data/lib/blocks/commandLine.rb +2 -2
  56. data/lib/blocks/compile.rb +69 -29
  57. data/lib/blocks/convert.rb +1 -1
  58. data/lib/blocks/docu.rb +1 -1
  59. data/lib/blocks/executable.rb +1 -1
  60. data/lib/blocks/fileutil.rb +62 -0
  61. data/lib/blocks/library.rb +1 -1
  62. data/lib/blocks/makefile.rb +1 -1
  63. data/lib/blocks/showIncludes.rb +4 -4
  64. data/lib/blocks/sleep.rb +41 -0
  65. data/lib/common/cleanup.rb +1 -1
  66. data/lib/common/crc32.rb +1 -1
  67. data/lib/common/ext/file.rb +1 -1
  68. data/lib/common/ext/stdout.rb +1 -1
  69. data/lib/common/ide_interface.rb +2 -2
  70. data/lib/common/options/parser.rb +2 -2
  71. data/lib/common/version.rb +1 -1
  72. data/lib/multithread/job.rb +1 -1
  73. data/lib/tocxx.rb +124 -102
  74. metadata +5 -6
  75. data/bin/createVSProjects +0 -214
  76. data/lib/vs/options.rb +0 -69
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bake-toolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.46.0
4
+ version: 2.47.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Schaal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-18 00:00:00.000000000 Z
11
+ date: 2018-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rtext
@@ -141,7 +141,6 @@ email: alexander.schaal@esrlabs.com
141
141
  executables:
142
142
  - bake
143
143
  - bakery
144
- - createVSProjects
145
144
  - bake-doc
146
145
  - bakeqac
147
146
  - bakeclean
@@ -156,7 +155,6 @@ files:
156
155
  - bin/bakeclean
157
156
  - bin/bakeqac
158
157
  - bin/bakery
159
- - bin/createVSProjects
160
158
  - lib/adapt/config/loader.rb
161
159
  - lib/bake/cache.rb
162
160
  - lib/bake/config/checks.rb
@@ -219,10 +217,12 @@ files:
219
217
  - lib/blocks/convert.rb
220
218
  - lib/blocks/docu.rb
221
219
  - lib/blocks/executable.rb
220
+ - lib/blocks/fileutil.rb
222
221
  - lib/blocks/has_execute_command.rb
223
222
  - lib/blocks/library.rb
224
223
  - lib/blocks/makefile.rb
225
224
  - lib/blocks/showIncludes.rb
225
+ - lib/blocks/sleep.rb
226
226
  - lib/common/abortException.rb
227
227
  - lib/common/cleanup.rb
228
228
  - lib/common/crc32.rb
@@ -241,7 +241,6 @@ files:
241
241
  - lib/format/bake_format.rb
242
242
  - lib/multithread/job.rb
243
243
  - lib/tocxx.rb
244
- - lib/vs/options.rb
245
244
  - license.txt
246
245
  homepage:
247
246
  licenses:
@@ -257,7 +256,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
257
256
  requirements:
258
257
  - - '>='
259
258
  - !ruby/object:Gem::Version
260
- version: '1.9'
259
+ version: '2.0'
261
260
  required_rubygems_version: !ruby/object:Gem::Requirement
262
261
  requirements:
263
262
  - - '>='
@@ -1,214 +0,0 @@
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
- end
@@ -1,69 +0,0 @@
1
- require "common/options/parser"
2
- require "common/options/option"
3
-
4
- module Bake
5
-
6
- class VsOptions < Parser
7
- attr_accessor :version, :roots, :rewriteSolution
8
-
9
- def initialize(argv)
10
- super(argv)
11
-
12
- @version = "2012"
13
- @rewriteSolution = false
14
- @roots = []
15
-
16
- add_option(["--version" ], lambda { |x| set_version(x) })
17
- add_option(["--rewrite", "--rewrite_solution"], lambda { set_rewrite_solution })
18
- add_option(["-w", ], lambda { |x| set_root(x) })
19
- add_option(["-h", "--help" ], lambda { usage; ExitHelper.exit(0) })
20
- add_option(["" ], lambda { |x| puts "Error: invalid argument #{x}"; usage; ExitHelper.exit(1) })
21
- end
22
-
23
- def usage
24
- puts "\nUsage: createVSProjects [options]"
25
- puts " -w <root> Add a workspace root. Default is current directory."
26
- puts " This option can be used at multiple times."
27
- puts " Solution files will be created in the first root directory."
28
- puts " --version <year> Visual Studio version. Currently supported: 2010, 2012 (default) and 2013."
29
- puts " --rewrite Rewrites existing solution files instead of appending new projects."
30
- puts " -h, --help Print this help."
31
- end
32
-
33
- def parse_options()
34
- parse_internal(false)
35
- @roots << Dir.pwd if @roots.length == 0
36
- end
37
-
38
- def check_valid_dir(dir)
39
- if not File.exists?(dir)
40
- puts "Error: Directory #{dir} does not exist"
41
- ExitHelper.exit(1)
42
- end
43
- if not File.directory?(dir)
44
- puts "Error: #{dir} is not a directory"
45
- ExitHelper.exit(1)
46
- end
47
- end
48
-
49
- def set_version(v)
50
- if v != "2010" and v != "2012" and v != "2013"
51
- puts "Error: version must be '2010', '2012' or '2013'"
52
- ExitHelper.exit(1)
53
- end
54
- @version = v
55
- end
56
-
57
- def set_rewrite_solution
58
- @rewriteSolution = true
59
- end
60
-
61
- def set_root(dir)
62
- check_valid_dir(dir)
63
- r = File.expand_path(dir.gsub(/[\\]/,'/'))
64
- @roots << r if not @roots.include?r
65
- end
66
-
67
- end
68
-
69
- end