bake-toolkit 2.0.10 → 2.1.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.
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