bake-toolkit 2.0.10 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b793e0fe7bd1968ec00296fba84aa608ff3c1ad9
4
- data.tar.gz: 8bd30d6498a53cdb10d81be6fc8a96836731f98d
3
+ metadata.gz: 55fd9b69d1c25ad937a08eaec9f8d12d055a1fbc
4
+ data.tar.gz: 269feb7487d2f484ce31f3fa6be8ca629b5c3de8
5
5
  SHA512:
6
- metadata.gz: 82495dc61ad9c98b2dcf4c941e562ff6b0d0abf4f953d14a5e3fa7401d7aace13980bb9299433cf113b8c71e192316b23804af718720e940e530c37dad614ecf
7
- data.tar.gz: fa22d24b19a3008809f3f9d2c2c956008278e3a01fdfbc15d7f344fb18d2f81273adcb7cd28eea2a71ef6a29cd7b6733b4c20ec387c6b30e9eef02d378f7c5d6
6
+ metadata.gz: 75783f20ffd0d0e08b453a2e3dc1394c32c2bb609c9c2873f49d6c18285541f1667e1ce6b9e0e0709562b66c404530e9873bc5b3a30501a98466f00499798f33
7
+ data.tar.gz: fdd3a74eace9ba8618e611306997846cf63d2c8aeb84d7fb2c0a0e504c58daafe3b689825043884d32a4a0f3e5918f2269be3884c4b921e3a92ce16497486f44
data/doc/dyk/lint.html CHANGED
@@ -53,6 +53,17 @@ To use in bake, add a LintPolicy in Project.meta:
53
53
  <pre id="rundrum"><code>LintPolicy ".../your.lnt"</code></pre>
54
54
 
55
55
 
56
+ <h3>Output to xml</h3>
57
+ This is an example how to redirect the output to single xml files placed into the main project folder.
58
+ <pre id="rundrum"><code>DefaultToolchain GCC {
59
+ LintPolicy "-os($(MainProjectDir)/$(ProjectName)_$(ConfigName)_lintout.xml)"
60
+ LintPolicy "-v"
61
+ LintPolicy "+xml(doc)"
62
+ LintPolicy "-format=<message><file>%f</file> <line>%l</line> <type>%t</type> <code>%n</code> <desc>%m</desc></message>"
63
+ LintPolicy "-format_specific= "
64
+ LintPolicy "-pragma(message)"</code></pre>
65
+
66
+
56
67
  <h3>Notes</h3>
57
68
  In rare cases lint has problems if it has to open too many (include) files. If that is the case, use --lint_min and --lint_max command line option of bake. Example:
58
69
  <pre id="rundrum"><code>bake Debug -p MyLibraryProject --lint --lint_max 50 (lints the first 51 files)
@@ -7,13 +7,28 @@
7
7
  <body>
8
8
  <h1>Changelog</h1>
9
9
 
10
+ January 23, 2015 - bake-toolkit 2.1.0<br>
11
+ <ul>
12
+ <li><b>Bugfix: fixed crash in warning output if setting variable via cmd did not work</b>
13
+ <li><b>Workaround: dependent header files are now ignored on Windows if path starts with "/" and file cannot be found</b>
14
+ <li><b>Changed: output of lint is now ignored, linting will only fails if it cannot be executed</b>
15
+ <li><b>Changed: introduced new verbose mode <i>-v3</i>, shifted some output to this level</b>
16
+ <li><b>Added: a dependency project can be specified with parent folders if it is ambiguous, e.g. <i>Dependency "my/folder/proj", config: lib</i></b>
17
+ <li><b>Added: experimental CC2J output</b>
18
+ </ul>
19
+
20
+ January 23, 2015 - Eclipse plugin 1.2.1<br>
21
+ <ul>
22
+ <li><b>Bugfix: importing projects with existing .(c)project files may be placed in wrong folder</b>
23
+ </ul>
24
+
10
25
  January 15, 2015 - bake-toolkit 2.0.10<br>
11
26
  <ul>
12
27
  <li><b>Bugfix: spaces in paths were not handled correctly in all cases</b>
13
28
  <li><b>Bugfix: dependency files of Keil compiler not treated correctly</b>
14
29
  <li><b>Added: showing why files are built in verbose mode <i>-v2</i></b>
15
30
  <li><b>Added: whole workspace can be linted now (projects will be linted separately)</b>
16
- <li><b>Changed: removed <i>bake-doc</i> command, use <i>bake --doc<i> instead</b>
31
+ <li><b>Changed: removed <i>bake-doc</i> command, use <i>bake --doc</i> instead</b>
17
32
  <li><b>Changed: if no default project is specified, possible build configs are shown on command line again like in bake 1.x</b>
18
33
  </ul>
19
34
 
data/doc/index.html CHANGED
@@ -72,7 +72,7 @@ bake is used to build software <font color="#009900"><b>fast</b></font> and <fon
72
72
 
73
73
  <p>
74
74
  <hr>
75
- <table width="100%" border="0"><tr><td align="left">Described bake-toolkit version: 2.0.10</td><td align="right">January 15, 2015</td></tr></table>
75
+ <table width="100%" border="0"><tr><td align="left">Described bake-toolkit version: 2.1.0</td><td align="right">January 23, 2015</td></tr></table>
76
76
 
77
77
  </body>
78
78
 
@@ -435,7 +435,10 @@ function showDependency() {
435
435
  str = 'Specifies another project to be built before this project.<br>'+
436
436
  'The archive, linker libs and search paths are imported from this project to the this project automatically.<br>'+
437
437
  'If you omit the project, the current project will be used.<br>'+
438
- 'If you omit the config name, the default config will be used.'
438
+ 'If you omit the config name, the default config will be used.<br>'+
439
+ '<b>Examples:</b><br>'+
440
+ '&nbsp;&nbsp; <i>Dependency gtest, config: lib<br>'+
441
+ '&nbsp;&nbsp; Dependency "my/folder/proj"</i>'
439
442
  ddrivetip("Dependency", "No","0..n","-",str)
440
443
  }
441
444
 
data/lib/bake/cache.rb CHANGED
@@ -130,7 +130,7 @@ module Bake
130
130
  end
131
131
 
132
132
  if cache != nil
133
- Bake.formatter.printInfo("Info: cache is up-to-date, loading cached meta information") if Bake.options.verboseHigh
133
+ Bake.formatter.printInfo("Info: cache is up-to-date, loading cached meta information") if Bake.options.verbose >= 3
134
134
  Bake.options.build_config = cache.build_config if Bake.options.build_config == ""
135
135
  return cache.referencedConfigs
136
136
  end
@@ -111,14 +111,20 @@ module Bake
111
111
  end
112
112
 
113
113
  def loadMeta(dep)
114
-
114
+ dep_subbed = dep.name.gsub(/\\/,"/")
115
+ if dep_subbed.include?":" or dep_subbed.include?"../" or dep_subbed.start_with?"/" or dep_subbed.end_with?"/"
116
+ Bake.formatter.printError("#{dep.name} is invalid", dep)
117
+ ExitHelper.exit(1)
118
+ end
119
+ dep_path, dismiss, dep_name = dep_subbed.rpartition("/")
120
+
115
121
  # file not loaded yet
116
- if not @loadedConfigs.include?dep.name
122
+ if not @loadedConfigs.include?dep_name
117
123
 
118
124
  pmeta_filenames = []
119
125
 
120
126
  @potentialProjs.each do |pp|
121
- if pp.include?("/" + dep.name + "/Project.meta") or pp == (dep.name + "/Project.meta")
127
+ if pp.include?("/" + dep_subbed + "/Project.meta") or pp == (dep_subbed + "/Project.meta")
122
128
  pmeta_filenames << pp
123
129
  end
124
130
  end
@@ -137,17 +143,25 @@ module Bake
137
143
  end
138
144
  end
139
145
 
140
- @loadedConfigs[dep.name] = loadProjMeta(pmeta_filenames[0])
146
+ @loadedConfigs[dep_name] = loadProjMeta(pmeta_filenames[0])
147
+ else
148
+ folder = @loadedConfigs[dep_name][0].get_project_dir
149
+ if not folder.include?dep_subbed
150
+ Bake.formatter.printError("Cannot load #{dep.name}, because #{folder} already loaded", dep)
151
+ ExitHelper.exit(1)
152
+ end
153
+
141
154
  end
142
-
155
+
143
156
  # get config
144
- config, dep.config = getFullProject(@loadedConfigs[dep.name],dep.config)
157
+ config, dep.config = getFullProject(@loadedConfigs[dep_name], dep.config)
158
+ dep.name = dep_name
145
159
 
146
160
  # config not referenced yet
147
- if not @referencedConfigs.include?dep.name
148
- @referencedConfigs[dep.name] = [config]
149
- elsif @referencedConfigs[dep.name].index { |c| c.name == dep.config } == nil
150
- @referencedConfigs[dep.name] << config
161
+ if not @referencedConfigs.include?dep_name
162
+ @referencedConfigs[dep_name] = [config]
163
+ elsif @referencedConfigs[dep_name].index { |c| c.name == dep.config } == nil
164
+ @referencedConfigs[dep_name] << config
151
165
  else
152
166
  return
153
167
  end
@@ -50,13 +50,13 @@ module Bake
50
50
  loader.load(:before_load => proc {|fragment, kind|
51
51
  case kind
52
52
  when :load_update_cache
53
- if Bake.options.verboseHigh
53
+ if Bake.options.verbose >= 3
54
54
  puts "Loading and caching #{fragment.location}"
55
55
  else
56
56
  puts "Loading #{fragment.location}"
57
57
  end
58
58
  when :load_cached
59
- if Bake.options.verboseHigh
59
+ if Bake.options.verbose >= 3
60
60
  puts "Loading cached #{fragment.location}"
61
61
  else
62
62
  puts "Loading #{fragment.location}"
@@ -18,13 +18,12 @@ module Bake
18
18
 
19
19
  class Options < Parser
20
20
  attr_accessor :build_config, :nocache
21
- attr_reader :main_dir, :project, :filename, :main_project_name # String
21
+ attr_reader :main_dir, :project, :filename, :main_project_name, :cc2j_filename # String
22
22
  attr_reader :roots, :include_filter, :exclude_filter # String List
23
23
  attr_reader :stopOnFirstError, :clean, :rebuild, :show_includes, :show_includes_and_defines, :linkOnly, :no_autodir, :clobber, :lint, :docu, :debug, :prepro # Boolean
24
24
  attr_reader :threads, :socket, :lint_min, :lint_max # Fixnum
25
25
  attr_reader :vars # map
26
- attr_reader :verboseLow
27
- attr_reader :verboseHigh
26
+ attr_reader :verbose
28
27
  attr_reader :consoleOutput_fullnames, :consoleOutput_visualStudio
29
28
 
30
29
 
@@ -36,13 +35,13 @@ module Bake
36
35
  @consoleOutput_visualStudio = false
37
36
  @prepro = false
38
37
  @stopOnFirstError = false
39
- @verboseLow = false
40
- @verboseHigh = false
38
+ @verbose = 1
41
39
  @vars = {}
42
40
  @build_config = ""
43
41
  @main_dir = nil
44
42
  @project = nil
45
43
  @filename = nil
44
+ @cc2j_filename = nil
46
45
  @clean = false
47
46
  @clobber = false
48
47
  @lint = false
@@ -84,9 +83,10 @@ module Bake
84
83
 
85
84
  add_option(Option.new("--docu",false) { @docu = true })
86
85
 
87
- add_option(Option.new("-v0",false) { @verboseLow = true; @verboseHigh = false })
88
- add_option(Option.new("-v1",false) { @verboseLow = false; @verboseHigh = false })
89
- add_option(Option.new("-v2",false) { @verboseLow = false; @verboseHigh = true })
86
+ add_option(Option.new("-v0",false) { @verbose = 0 })
87
+ add_option(Option.new("-v1",false) { @verbose = 1 })
88
+ add_option(Option.new("-v2",false) { @verbose = 2 })
89
+ add_option(Option.new("-v3",false) { @verbose = 3 })
90
90
 
91
91
  add_option(Option.new("--debug",false) { @debug = true })
92
92
  add_option(Option.new("--set",true) { |x| set_set(x) })
@@ -109,7 +109,7 @@ module Bake
109
109
  add_option(Option.new("--doc",false) { Doc.show })
110
110
  add_option(Option.new("--version",false) { ExitHelper.exit(0) })
111
111
  add_option(Option.new("--show_configs",false) { @showConfigs = true })
112
-
112
+ add_option(Option.new("--writeCC2J",true) { |x| @cc2j_filename = x.gsub(/[\\]/,'/') })
113
113
 
114
114
  end
115
115
 
@@ -10,7 +10,7 @@ module Bake
10
10
  puts " -f <name> Build/Clean this file only."
11
11
  puts " -c Clean the file/project."
12
12
  puts " -a <scheme> Use ansi color sequences (console must support it). Possible values are 'white' and 'black'."
13
- puts " -v<level> Verbose level from 0 to 2, whereas -v0 is less, -v1 is normal (default) and -v2 is more verbose."
13
+ puts " -v<level> Verbose level from 0 to 3, whereas -v0 is less, -v1 is normal (default) and -v2 and -v3 are more verbose."
14
14
  puts " -r Stop on first error."
15
15
  puts " -w <root> Add a workspace root (can be used multiple times)."
16
16
  puts " If no root is specified, the parent directory of the main project is added automatically."
@@ -39,6 +39,7 @@ module Bake
39
39
  puts " --set <key>=<value> Sets a variable. Overwrites variables defined in Project.metas (can be used multiple times)."
40
40
  puts " --show_include_paths Used by IDEs plugins"
41
41
  puts " --show_incs_and_defs Used by IDEs plugins"
42
+ puts " --writeCC2J <name> Writes compiler command into a json file (experimental!)"
42
43
  puts ""
43
44
  puts " --version Print version."
44
45
  puts " --doc Open documentation in browser"
data/lib/bake/subst.rb CHANGED
@@ -80,6 +80,7 @@ module Bake
80
80
  end
81
81
  else
82
82
  cmd_result = false
83
+ consoleOutput = ""
83
84
  begin
84
85
  Dir.chdir(@@projDir) do
85
86
  cmd = [substString(s.cmd, s)]
@@ -90,7 +91,7 @@ module Bake
90
91
  consoleOutput = e.message
91
92
  end
92
93
  if (cmd_result == false)
93
- Bake.formatter.printWarning("Command not successful, variable #{s.name} wil be set to \"\" (#{consoleOutput.chomp}).", s)
94
+ Bake.formatter.printWarning("Command not successful, variable #{s.name} will be set to \"\" (#{consoleOutput.chomp}).", s)
94
95
  @@userVarMap[s.name] = ""
95
96
  end
96
97
  end
@@ -187,7 +188,7 @@ module Bake
187
188
  elsif ENV[var]
188
189
  substStr << ENV[var]
189
190
  else
190
- if Bake.options.verboseHigh
191
+ if Bake.options.verbose >= 2
191
192
  msg = "Substitute variable '$(#{var})' with empty string"
192
193
  if elem
193
194
  Bake.formatter.printInfo(msg, elem)
@@ -11,7 +11,7 @@ module Bake
11
11
  :COMMAND => "lint-nt.exe",
12
12
  :DEFINE_FLAG => "-D",
13
13
  :INCLUDE_PATH_FLAG => "-I",
14
- :COMPILE_FLAGS => ["-b","-\"format=%f%(:%l:%) %t %n: %m\"", "-width(0)", "-hF1"], # array, not string!
14
+ :COMPILE_FLAGS => ["-b","-\"format=%f%(:%l:%) %t %n: %m\"", "-width(0)", "-hF1", "-zero"], # array, not string!
15
15
  })
16
16
 
17
17
  LintChain[:COMPILER][:CPP][:ERROR_PARSER] = LintErrorParser.new
data/lib/blocks/block.rb CHANGED
@@ -9,6 +9,7 @@ module Bake
9
9
 
10
10
  module Blocks
11
11
 
12
+ CC2J = []
12
13
  ALL_BLOCKS = {}
13
14
  ALL_COMPILE_BLOCKS = {}
14
15
 
@@ -90,7 +91,7 @@ module Bake
90
91
  end
91
92
  end
92
93
  else
93
- if elem and Bake.options.verboseHigh
94
+ if elem and Bake.options.verbose >= 2
94
95
  Bake.formatter.printInfo("\"..\" in path name found", elem)
95
96
  end
96
97
  end
@@ -166,7 +167,7 @@ module Bake
166
167
 
167
168
  def execute
168
169
  if (@inDeps)
169
- if not Bake.options.verboseLow
170
+ if Bake.options.verbose >= 1
170
171
  Bake.formatter.printWarning("Circular dependency found including project #{@projectName} with config #{@configName}", @config)
171
172
  end
172
173
  return true
@@ -182,7 +183,7 @@ module Bake
182
183
 
183
184
  Bake::IDEInterface.instance.set_build_info(@projectName, @configName)
184
185
 
185
- if not Bake.options.verboseLow
186
+ if Bake.options.verbose >= 1
186
187
  Bake.formatter.printAdditionalInfo "**** Building #{Block.block_counter} of #{@@num_projects}: #{@projectName} (#{@configName}) ****"
187
188
  end
188
189
 
@@ -197,7 +198,7 @@ module Bake
197
198
  depResult = callDeps(:clean)
198
199
  return false if not depResult and Bake.options.stopOnFirstError
199
200
 
200
- if Bake.options.verboseHigh
201
+ if Bake.options.verbose >= 2
201
202
  Bake.formatter.printAdditionalInfo "**** Cleaning #{Block.block_counter} of #{@@num_projects}: #{@projectName} (#{@configName}) ****"
202
203
  end
203
204
 
@@ -206,7 +207,7 @@ module Bake
206
207
  if Bake.options.clobber
207
208
  Dir.chdir(@projectDir) do
208
209
  if File.exist?".bake"
209
- puts "Deleting folder .bake" if Bake.options.verboseHigh
210
+ puts "Deleting folder .bake" if Bake.options.verbose >= 2
210
211
  FileUtils.rm_rf(".bake")
211
212
  end
212
213
  end
@@ -25,14 +25,14 @@ module Bake
25
25
  begin
26
26
  FileUtils.touch(@config.file_name)
27
27
  rescue Exception=>e
28
- if Bake.options.verboseHigh
28
+ if Bake.options.verbose >= 2
29
29
  Bake.formatter.printWarning("Could not touch #{@config.file_name}: #{e.message}", @config.file_name)
30
30
  end
31
31
  end
32
32
  end
33
33
  end
34
34
 
35
- def prepareOutput(filename)
35
+ def self.prepareOutput(filename)
36
36
  begin
37
37
  if File.exists?(filename)
38
38
  FileUtils.rm(filename)
@@ -61,19 +61,19 @@ module Bake
61
61
  def printCmd(cmd, alternate, reason, forceVerbose)
62
62
 
63
63
  if (cmd == @lastCommand)
64
- if (Bake.options.verboseHigh or (@printedCmdAlternate and not forceVerbose))
64
+ if (Bake.options.verbose >= 2 or (@printedCmdAlternate and not forceVerbose))
65
65
  return
66
66
  end
67
67
  end
68
68
 
69
69
  @lastCommand = cmd
70
70
 
71
- return if Bake.options.verboseLow and not forceVerbose
71
+ return if Bake.options.verbose == 0 and not forceVerbose
72
72
 
73
- if forceVerbose or Bake.options.verboseHigh or not alternate
73
+ if forceVerbose or Bake.options.verbose >= 2 or not alternate
74
74
  @printedCmdAlternate = false
75
- if Bake.options.verboseHigh
76
- puts "" # for A.K. :-)
75
+ puts "" if Bake.options.verbose >= 2 # for A.K. :-)
76
+ if Bake.options.verbose >= 3
77
77
  exedIn = "\n(executed in '#{@projectDir}')"
78
78
  because = reason ? "\n(#{reason})" : ""
79
79
  else
@@ -114,7 +114,7 @@ module Bake
114
114
  end
115
115
 
116
116
  if Bake.options.lint
117
- ret = error_descs.any? { |e| e.severity != ErrorParser::SEVERITY_OK }
117
+ # ignore error output
118
118
  else
119
119
  ret = error_descs.any? { |e| e.severity == ErrorParser::SEVERITY_ERROR }
120
120
  end
@@ -47,8 +47,19 @@ module Bake
47
47
 
48
48
  begin
49
49
  File.readlines(dep_filename_conv).map{|line| line.strip}.each do |dep|
50
- return "because dependent header #{dep} does not exist" if not File.exist?(dep)
51
- return "because dependent header #{dep} is newer than object" if oTime < File.mtime(dep)
50
+ dep = "/usr/bla"
51
+ if not File.exist?(dep)
52
+ # we need a hack here. with some windows configurations the compiler prints unix paths
53
+ # into the dep file which cannot be found easily. this will be true for system includes,
54
+ # e.g. /usr/lib/...xy.h
55
+ if Bake::Utils::OS.windows? and dep.start_with?"/"
56
+ puts "Dependency header file #{dep} ignored!" if Bake.options.debug
57
+ else
58
+ return "because dependent header #{dep} does not exist"
59
+ end
60
+ else
61
+ return "because dependent header #{dep} is newer than object" if oTime < File.mtime(dep)
62
+ end
52
63
  end
53
64
  rescue Exception => ex
54
65
  if Bake.options.debug
@@ -112,7 +123,7 @@ module Bake
112
123
  raise SystemCommandFailed.new
113
124
  end
114
125
 
115
- prepareOutput(object)
126
+ BlockBase.prepareOutput(object)
116
127
 
117
128
  cmd = Utils.flagSplit(compiler[:COMMAND], false)
118
129
  cmd += compiler[:COMPILE_FLAGS].split(" ")
@@ -150,6 +161,10 @@ module Bake
150
161
  end
151
162
  cmd << source
152
163
 
164
+ if Bake.options.cc2j_filename
165
+ Blocks::CC2J << { :directory => @projectDir, :command => cmd, :file => source }
166
+ end
167
+
153
168
  success, consoleOutput = ProcessHelper.run(cmd, false, false)
154
169
  outputType = Bake.options.prepro ? "Preprocessing" : "Compiling"
155
170
  process_result(cmd, consoleOutput, compiler[:ERROR_PARSER], "#{outputType} #{source}", reason, success)
@@ -270,11 +285,11 @@ module Bake
270
285
  object = get_object_file(source)
271
286
  dep_filename = calcDepFile(object, type)
272
287
  if File.exist?object
273
- puts "Deleting file #{object}" if Bake.options.verboseHigh
288
+ puts "Deleting file #{object}" if Bake.options.verbose >= 2
274
289
  FileUtils.rm_rf(object)
275
290
  end
276
291
  if File.exist?dep_filename
277
- puts "Deleting file #{dep_filename}" if Bake.options.verboseHigh
292
+ puts "Deleting file #{dep_filename}" if Bake.options.verbose >= 2
278
293
  FileUtils.rm_rf(dep_filename)
279
294
  end
280
295
  end
@@ -298,7 +313,7 @@ module Bake
298
313
  if not p.include?"*" and not p.include?"?"
299
314
  Bake.formatter.printError("Source file '#{p}' not found", sources)
300
315
  raise SystemCommandFailed.new
301
- elsif not Bake.options.verboseLow
316
+ elsif Bake.options.verbose >= 1
302
317
  Bake.formatter.printInfo("Source file pattern '#{p}' does not match to any file", sources)
303
318
  end
304
319
  end
@@ -92,7 +92,7 @@ module Bake
92
92
  reason = needed?(libs)
93
93
  return unless reason
94
94
 
95
- prepareOutput(@exe_name)
95
+ BlockBase.prepareOutput(@exe_name)
96
96
 
97
97
  linker = @tcs[:LINKER]
98
98
 
@@ -131,7 +131,7 @@ module Bake
131
131
  def clean
132
132
  Dir.chdir(@projectDir) do
133
133
  if File.exist?@output_dir
134
- puts "Deleting folder #{@output_dir}" if Bake.options.verboseHigh
134
+ puts "Deleting folder #{@output_dir}" if Bake.options.verbose >= 2
135
135
  FileUtils.rm_rf(@output_dir)
136
136
  end
137
137
  end unless Bake.options.filename
@@ -5,8 +5,8 @@ module Bake
5
5
  module HasExecuteCommand
6
6
 
7
7
  def executeCommand(commandLine, ignoreStr=nil)
8
- puts commandLine if not Bake.options.verboseLow
9
- puts "(executed in '#{@projectDir}')" if Bake.options.verboseHigh
8
+ puts commandLine if Bake.options.verbose >= 1
9
+ puts "(executed in '#{@projectDir}')" if Bake.options.verbose >= 3
10
10
  cmd_result = false
11
11
  output = ""
12
12
  begin
@@ -20,7 +20,7 @@ module Bake
20
20
 
21
21
  if (cmd_result == false and (not ignoreStr or not output.include?ignoreStr))
22
22
  Bake.formatter.printError("Command \"#{commandLine}\" failed", @config)
23
- puts "(executed in '#{@projectDir}')" if not Bake.options.verboseHigh
23
+ puts "(executed in '#{@projectDir}')" if Bake.options.verbose >= 3
24
24
  raise SystemCommandFailed.new
25
25
  end
26
26
  end
@@ -45,7 +45,7 @@ module Bake
45
45
  reason = needed?
46
46
  return unless reason
47
47
 
48
- prepareOutput(archive_name)
48
+ BlockBase.prepareOutput(archive_name)
49
49
 
50
50
  archiver = @tcs[:ARCHIVER]
51
51
 
@@ -65,7 +65,7 @@ module Bake
65
65
  def clean
66
66
  Dir.chdir(@projectDir) do
67
67
  if File.exist?@output_dir
68
- puts "Deleting folder #{@output_dir}" if Bake.options.verboseHigh
68
+ puts "Deleting folder #{@output_dir}" if Bake.options.verbose >= 2
69
69
  FileUtils.rm_rf(@output_dir)
70
70
  end
71
71
  end unless Bake.options.filename
@@ -3,6 +3,7 @@ module Bake
3
3
  def self.cleanup()
4
4
  Blocks::ALL_BLOCKS.clear
5
5
  Blocks::ALL_COMPILE_BLOCKS.clear
6
+ Blocks::CC2J.clear
6
7
  Bake::IDEInterface.instance.set_abort(false)
7
8
  end
8
9
 
@@ -1,7 +1,7 @@
1
1
  module Bake
2
2
  class Version
3
3
  def self.number
4
- "2.0.10"
4
+ "2.1.0"
5
5
  end
6
6
  end
7
7
 
data/lib/tocxx.rb CHANGED
@@ -254,6 +254,21 @@ module Bake
254
254
  ExitHelper.set_exit_code(1)
255
255
  return
256
256
  end
257
+
258
+ if Bake.options.cc2j_filename
259
+ Blocks::BlockBase.prepareOutput(Bake.options.cc2j_filename)
260
+ File.open(Bake.options.cc2j_filename, 'w') do |f|
261
+ f.puts "["
262
+ noComma = Blocks::CC2J.length - 1
263
+ Blocks::CC2J.each_with_index do |c, index|
264
+ cmd = c[:command].is_a?(Array) ? c[:command].join(' ') : c[:command]
265
+ f.puts " { \"directory\": \"" + c[:directory] + "\","
266
+ f.puts " \"command\": \"" + cmd + "\","
267
+ f.puts " \"file\": \"" + c[:file] + "\" }#{index == noComma ? "" : ","}"
268
+ end
269
+ f.puts "]"
270
+ end
271
+ end
257
272
 
258
273
  if result == false
259
274
  Bake.formatter.printError("\n#{taskType} failed.")
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.0.10
4
+ version: 2.1.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: 2015-01-15 00:00:00.000000000 Z
11
+ date: 2015-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rtext
@@ -89,7 +89,6 @@ files:
89
89
  - lib/bake/options/showLicense.rb
90
90
  - lib/bake/options/showToolchains.rb
91
91
  - lib/bake/options/usage.rb
92
- - lib/bake/process_output.rb
93
92
  - lib/bake/subst.rb
94
93
  - lib/bake/toolchain/clang.rb
95
94
  - lib/bake/toolchain/colorizing_formatter.rb
@@ -1,10 +0,0 @@
1
- module Bake
2
-
3
- class ProcessOutput
4
-
5
-
6
-
7
- end
8
-
9
-
10
- end