bake-toolkit 2.30.0 → 2.31.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: 322bd03d70c1a3b08a9749b9bb54dc943919cf00
4
- data.tar.gz: b1a5a2233c2f272c7586472f367c57c95de031be
3
+ metadata.gz: 591b37562b34be1359a7a53a148d7e1742ea500f
4
+ data.tar.gz: 78bf6242de07bb51e91a4d910ed65ef606683b29
5
5
  SHA512:
6
- metadata.gz: 2754807736c448d84f7654ec615a12d399efa96724c22a5f6e337f3beb2f4b20de5d4b064e1cbbc7c8a3821a3bfe1962ef9ae5a5d01a7a96cf9fb1f7953535fe
7
- data.tar.gz: df77fee541fb35618a5ee170366c3e516332e1e0570f10de7901d20db6e363a7c9922e2c9e62824d18fe8adac0e8e1ec87f23f242980c109ca323f1e60cd1dd4
6
+ metadata.gz: fac870359cbe3ba177abb4052466de49c2b314f476b20b3e6aa76305bf11026946421c4b97e6addc16ff3bc581f9648b077e71f827b38bbd3dd92a70e00f7147
7
+ data.tar.gz: 750652d03d56a383209e6db4110c737e0119d38f7d1f53ab0cfa0beaf6759f173520ee19dad901384ac664da010f47a5131092e8f4a1ab345b653ae39d2a6459
@@ -29,9 +29,8 @@ module Bake
29
29
  configs
30
30
  end
31
31
 
32
- def self.checkSyntax(configs, filename)
32
+ def self.checkSyntax(configs, filename, isLocalAdapt = false)
33
33
  Bake::Configs::Checks::commonMetamodelCheck(configs, filename, true)
34
-
35
34
  configs.each do |c|
36
35
  if not c.extends.empty?
37
36
  Bake.formatter.printError("Attribute 'extends' must not be used in adapt config.",c)
@@ -44,7 +43,7 @@ module Bake
44
43
  if c.project.empty?
45
44
  Bake.formatter.printError("The corresponding project must be specified.",c)
46
45
  ExitHelper.exit(1)
47
- end
46
+ end if !isLocalAdapt
48
47
  if not ["replace", "remove", "extend", "push_front"].include?c.type
49
48
  Bake.formatter.printError("Allowed types are 'replace', 'remove', 'extend' and 'push_front'.",c)
50
49
  ExitHelper.exit(1)
@@ -30,7 +30,7 @@ module Bake
30
30
  else
31
31
  @cacheFilename = Bake.options.main_dir+"/.bake/Project.meta." + sanitize_filename(Bake.options.build_config) + qacStr + ".cache"
32
32
  end
33
- FileUtils.mkdir_p(File.dirname(@cacheFilename))
33
+ FileUtils.mkdir_p(File.dirname(@cacheFilename)) if !Bake.options.dry
34
34
  end
35
35
 
36
36
  def load_cache
@@ -78,6 +78,7 @@ module Bake
78
78
  break
79
79
  end
80
80
  end
81
+ break if cache == nil
81
82
  end
82
83
  end
83
84
 
@@ -170,6 +171,8 @@ module Bake
170
171
  end
171
172
 
172
173
  def write_cache(referencedConfigs, adaptConfigs)
174
+ return if Bake.options.dry
175
+
173
176
  cache = Cache.new
174
177
  cache.referencedConfigs = referencedConfigs
175
178
  cache.adaptStrings = Bake.options.adapt
@@ -103,10 +103,13 @@ module Bake
103
103
  conditionProjPattern = /\A#{c.parent.mainProject.gsub("*", "(\\w*)")}\z/
104
104
  conditionConfPattern = /\A#{c.parent.mainConfig.gsub("*", "(\\w*)")}\z/
105
105
 
106
- next if c.parent.toolchain != "" && c.parent.toolchain != @defaultToolchainName
107
- next if c.parent.os != "" && c.parent.os != Utils::OS.name
108
- next if c.parent.mainProject != "" && !conditionProjPattern.match(@mainProjectName)
109
- next if c.parent.mainConfig != "" && !conditionConfPattern.match(@mainConfigName)
106
+ adaptCondition = (c.parent.toolchain == "" || c.parent.toolchain == @defaultToolchainName) &&
107
+ (c.parent.os == "" || c.parent.os == Utils::OS.name) &&
108
+ (c.parent.mainProject == "" || !conditionProjPattern.match(@mainProjectName).nil?) &&
109
+ (c.parent.mainConfig == "" || !conditionConfPattern.match(@mainConfigName).nil?)
110
+
111
+ invertLogic = (Bake::Metamodel::Unless === c.parent)
112
+ next if (adaptCondition && invertLogic) || (!adaptCondition && !invertLogic)
110
113
 
111
114
  MergeConfig.new(c, config).merge(c.type.to_sym)
112
115
 
@@ -215,9 +218,9 @@ module Bake
215
218
  adaptRoots.each do |adapt|
216
219
  adapt.mainProject = @mainProjectName if adapt.mainProject == "__THIS__"
217
220
  adaptConfigs = adapt.getConfig
218
- AdaptConfig.checkSyntax(adaptConfigs, filename)
221
+ AdaptConfig.checkSyntax(adaptConfigs, filename, true)
219
222
  adaptConfigs.each do |ac|
220
- ac.project = proj.name if ac.project == "__THIS__"
223
+ ac.project = proj.name if ac.project == "__THIS__" || ac.project == ""
221
224
  end
222
225
  @adaptConfigs.concat(adaptConfigs)
223
226
  end
@@ -24,7 +24,13 @@ module Bake
24
24
 
25
25
  fcm = RGen::Util::FileCacheMap.new(".bake", ".cache")
26
26
  fcm.version_info = Version.number
27
- @DumpFileCache = RGen::Fragment::DumpFileCache.new(fcm)
27
+
28
+ if !Bake.options.dry
29
+ @DumpFileCache = RGen::Fragment::DumpFileCache.new(fcm)
30
+ else
31
+ @DumpFileCache = nil
32
+ end
33
+
28
34
  @model = RGen::Fragment::FragmentedModel.new(:env => @env)
29
35
  end
30
36
 
@@ -57,11 +57,13 @@ module Bake
57
57
 
58
58
  class Archiver < ModelElement
59
59
  has_attr 'command', String, :defaultValueLiteral => ""
60
+ has_attr 'prefix', String, :defaultValueLiteral => "$(ArchiverPrefix)"
60
61
  contains_many 'flags', Flags, 'parent'
61
62
  end
62
63
 
63
64
  class Linker < ModelElement
64
65
  has_attr 'command', String, :defaultValueLiteral => ""
66
+ has_attr 'prefix', String, :defaultValueLiteral => "$(LinkerPrefix)"
65
67
  contains_many 'flags', Flags, 'parent'
66
68
  contains_many 'libprefixflags', LibPrefixFlags, 'parent'
67
69
  contains_many 'libpostfixflags', LibPostfixFlags, 'parent'
@@ -70,6 +72,7 @@ module Bake
70
72
  class Compiler < ModelElement
71
73
  has_attr 'ctype', CompilerType
72
74
  has_attr 'command', String, :defaultValueLiteral => ""
75
+ has_attr 'prefix', String, :defaultValueLiteral => "$(CompilerPrefix)"
73
76
  contains_many 'define', Define, 'parent'
74
77
  contains_many 'flags', Flags, 'parent'
75
78
  contains_one 'internalDefines', InternalDefines, 'parent'
@@ -300,6 +303,12 @@ module Bake
300
303
  contains_many 'config', BaseConfig_INTERNAL, 'parent'
301
304
  end
302
305
 
306
+ class If < Adapt
307
+ end
308
+
309
+ class Unless < Adapt
310
+ end
311
+
303
312
  class Project < ModelElement
304
313
  has_attr 'default', String, :defaultValueLiteral => ""
305
314
  contains_one 'description', Description, 'parent'
@@ -20,7 +20,7 @@ module Bake
20
20
  attr_accessor :build_config, :nocache, :analyze, :eclipseOrder, :envToolchain, :showConfigs
21
21
  attr_reader :main_dir, :project, :filename, :main_project_name, :buildDirDelimiter, :dot, :cc2j_filename # String
22
22
  attr_reader :roots, :include_filter, :exclude_filter, :adapt # String List
23
- attr_reader :conversion_info, :stopOnFirstError, :clean, :rebuild, :show_includes, :show_includes_and_defines, :projectPaths, :qac # Boolean
23
+ attr_reader :conversion_info, :stopOnFirstError, :clean, :rebuild, :show_includes, :show_includes_and_defines, :projectPaths, :qac, :dry # Boolean
24
24
  attr_reader :linkOnly, :compileOnly, :no_autodir, :clobber, :docu, :debug, :prepro, :oldLinkOrder, :prebuild, :printTime, :json, :wparse # Boolean
25
25
  attr_reader :threads, :socket # Fixnum
26
26
  attr_reader :vars # map
@@ -32,6 +32,7 @@ module Bake
32
32
  def initialize(argv)
33
33
  super(argv)
34
34
 
35
+ @dry = false
35
36
  @filelist = nil
36
37
  @qac = false
37
38
  @projectPaths = false
@@ -133,6 +134,8 @@ module Bake
133
134
  add_option(["--doc", "--show_doc" ], lambda { Doc.show })
134
135
  add_option(["--install-doc", "--install_doc" ], lambda { Doc.install })
135
136
 
137
+ add_option(["--dry" ], lambda { @dry = true })
138
+
136
139
  add_option(["--version" ], lambda { Bake::Usage.version })
137
140
  add_option(["--list", "--show_configs" ], lambda { @showConfigs = true })
138
141
  add_option(["--compilation-db" ], lambda { |x,dummy| @cc2j_filename = (x ? x : "compilation-db.json" )})
@@ -59,6 +59,8 @@ module Bake
59
59
  puts " --version Print version."
60
60
  puts " --time Print elapsed time at the end."
61
61
  puts " --doc Open documentation in browser"
62
+ puts " --dry No changes to the file system, no external processes like the compiler are called."
63
+ puts " Exceptions: some special command line options like --create or --dot and 'cmd's of 'Set's."
62
64
  puts " --install-doc If installed, --doc opens the offline docu, otherwise it's online. You may need super user rights to enhance the bake-toolkit installation."
63
65
  puts " -h, --help Print this help."
64
66
  puts " --license Print the license."
@@ -264,7 +264,7 @@ module Bake
264
264
  elsif ENV[var]
265
265
  substStr << ENV[var]
266
266
  else
267
- if Bake.options.verbose >= 2
267
+ if Bake.options.verbose >= 2 && !(["CompilerPrefix", "ArchiverPrefix", "LinkerPrefix"].include?(var))
268
268
  msg = "Substitute variable '$(#{var})' with empty string"
269
269
  if elem
270
270
  Bake.formatter.printInfo(msg, elem)
@@ -15,6 +15,7 @@ module Bake
15
15
  {
16
16
  :CPP => {
17
17
  :COMMAND => "",
18
+ :PREFIX => "$(CompilerPrefix)",
18
19
  :DEFINE_FLAG => "",
19
20
  :OBJECT_FILE_FLAG => "",
20
21
  :OBJECT_FILE_ENDING => ".o",
@@ -34,6 +35,7 @@ module Bake
34
35
  },
35
36
  :C => {
36
37
  :COMMAND => "",
38
+ :PREFIX => "$(CompilerPrefix)",
37
39
  :DEFINE_FLAG => "",
38
40
  :OBJECT_FILE_FLAG => "",
39
41
  :OBJECT_FILE_ENDING => ".o",
@@ -53,6 +55,7 @@ module Bake
53
55
  },
54
56
  :ASM => {
55
57
  :COMMAND => "",
58
+ :PREFIX => "$(CompilerPrefix)",
56
59
  :DEFINE_FLAG => "",
57
60
  :OBJECT_FILE_FLAG => "",
58
61
  :OBJECT_FILE_ENDING => ".o",
@@ -75,6 +78,7 @@ module Bake
75
78
  :ARCHIVER =>
76
79
  {
77
80
  :COMMAND => "",
81
+ :PREFIX => "$(ArchiverPrefix)",
78
82
  :ARCHIVE_FLAGS => "",
79
83
  :ARCHIVE_FLAGS_SPACE => true,
80
84
  :FLAGS => "",
@@ -84,6 +88,7 @@ module Bake
84
88
  :LINKER =>
85
89
  {
86
90
  :COMMAND => "",
91
+ :PREFIX => "$(LinkerPrefix)",
87
92
  :MUST_FLAGS => "",
88
93
  :SCRIPT => "",
89
94
  :USER_LIB_FLAG => "",
@@ -60,6 +60,7 @@ end
60
60
  def integrateLinker(tcs, linker)
61
61
  return tcs unless linker
62
62
  tcs[:LINKER][:COMMAND] = linker.command if linker.command != ""
63
+ tcs[:LINKER][:PREFIX] = linker.prefix if linker.prefix != ""
63
64
  tcs[:LINKER][:FLAGS] = adjustFlags(tcs[:LINKER][:FLAGS], linker.flags)
64
65
  tcs[:LINKER][:LIB_PREFIX_FLAGS] = adjustFlags(tcs[:LINKER][:LIB_PREFIX_FLAGS], linker.libprefixflags)
65
66
  tcs[:LINKER][:LIB_POSTFIX_FLAGS] = adjustFlags(tcs[:LINKER][:LIB_POSTFIX_FLAGS], linker.libpostfixflags)
@@ -68,6 +69,7 @@ end
68
69
  def integrateArchiver(tcs, archiver)
69
70
  return tcs unless archiver
70
71
  tcs[:ARCHIVER][:COMMAND] = archiver.command if archiver.command != ""
72
+ tcs[:ARCHIVER][:PREFIX] = archiver.prefix if archiver.prefix != ""
71
73
  tcs[:ARCHIVER][:FLAGS] = adjustFlags(tcs[:ARCHIVER][:FLAGS], archiver.flags)
72
74
  end
73
75
 
@@ -76,6 +78,10 @@ def integrateCompiler(tcs, compiler, type)
76
78
  if compiler.respond_to?"command"
77
79
  tcs[:COMPILER][type][:COMMAND] = compiler.command if compiler.command != ""
78
80
  end
81
+ if compiler.respond_to?"prefix"
82
+ tcs[:COMPILER][type][:PREFIX] = compiler.prefix if compiler.prefix != ""
83
+ end
84
+
79
85
  tcs[:COMPILER][type][:FLAGS] = adjustFlags(tcs[:COMPILER][type][:FLAGS], compiler.flags)
80
86
  compiler.define.each do |d|
81
87
  tcs[:COMPILER][type][:DEFINES] << d.str unless tcs[:COMPILER][type][:DEFINES].include? d.str
@@ -104,6 +104,8 @@ module Bake
104
104
 
105
105
  res = []
106
106
 
107
+ return d if (inc[0] == "." || inc[0] == "..") # prio 0: force local
108
+
107
109
  if (inc[0] == @projectName) # prio 1: the real path magic
108
110
  resPathMagic = inc[1..-1].join("/") # within self
109
111
  resPathMagic = "." if resPathMagic == ""
@@ -280,7 +282,9 @@ module Bake
280
282
  Dir.chdir(@projectDir) do
281
283
  if File.exist?".bake"
282
284
  puts "Deleting folder .bake" if Bake.options.verbose >= 2
283
- FileUtils.rm_rf(".bake")
285
+ if !Bake.options.dry
286
+ FileUtils.rm_rf(".bake")
287
+ end
284
288
  end
285
289
  end
286
290
  end
@@ -20,7 +20,7 @@ module Bake
20
20
  def check_config_file()
21
21
  if File.exists?(@config.file_name) and File.mtime(@config.file_name) > @config_date
22
22
  begin
23
- FileUtils.touch(@config.file_name)
23
+ FileUtils.touch(@config.file_name) if !Bake.options.dry
24
24
  rescue Exception=>e
25
25
  if Bake.options.verbose >= 2
26
26
  Bake.formatter.printWarning("Could not touch #{@config.file_name}: #{e.message}", @config.file_name)
@@ -30,6 +30,7 @@ module Bake
30
30
  end
31
31
 
32
32
  def self.prepareOutput(filename)
33
+ return if Bake.options.dry
33
34
  begin
34
35
  if File.exists?(filename)
35
36
  FileUtils.rm(filename)
@@ -61,7 +62,7 @@ module Bake
61
62
  if File.exist?cmdLineFile
62
63
  lastCmdLineArray = File.readlines(cmdLineFile)[0];
63
64
  if lastCmdLineArray == cmd.join(" ")
64
- FileUtils.touch(cmdLineFile)
65
+ FileUtils.touch(cmdLineFile) if !Bake.options.dry
65
66
  return true
66
67
  end
67
68
  end
@@ -76,7 +77,9 @@ module Bake
76
77
 
77
78
  def self.writeCmdLineFile(cmd, cmdLineFile)
78
79
  begin
79
- File.open(cmdLineFile, 'w') { |f| f.write(cmd.join(" ")) }
80
+ if !Bake.options.dry
81
+ File.open(cmdLineFile, 'w') { |f| f.write(cmd.join(" ")) }
82
+ end
80
83
  rescue Exception => e
81
84
  if Bake.options.debug
82
85
  puts e.message
@@ -176,21 +179,27 @@ module Bake
176
179
 
177
180
 
178
181
  def cleanProjectDir
179
- Dir.chdir(@projectDir) do
180
- if File.exist?@block.output_dir
181
- puts "Deleting folder #{@block.output_dir}" if Bake.options.verbose >= 2
182
- FileUtils.rm_rf(@block.output_dir)
183
-
184
- if (@block.tcs[:OUTPUT_DIR] == nil) && (Bake.options.buildDirDelimiter == "/") # in this case all builds are placed in a "build" folder
185
- buildDir = File.dirname(@block.output_dir)
186
- if (File.basename(buildDir) == "build") && (Dir.entries(buildDir).size == 2)# double check if it's really "build" and check if it's empty (except "." and "..")
187
- puts "Deleting folder #{buildDir}" if Bake.options.verbose >= 2
188
- FileUtils.rm_rf(buildDir)
182
+ if !Bake.options.filename
183
+ Dir.chdir(@projectDir) do
184
+ if File.exist?@block.output_dir
185
+ puts "Deleting folder #{@block.output_dir}" if Bake.options.verbose >= 2
186
+ if !Bake.options.dry
187
+ FileUtils.rm_rf(@block.output_dir)
189
188
  end
190
- end
191
189
 
190
+ if (@block.tcs[:OUTPUT_DIR] == nil) && (Bake.options.buildDirDelimiter == "/") # in this case all builds are placed in a "build" folder
191
+ buildDir = File.dirname(@block.output_dir)
192
+ if (File.basename(buildDir) == "build") && (Dir.entries(buildDir).size == 2)# double check if it's really "build" and check if it's empty (except "." and "..")
193
+ puts "Deleting folder #{buildDir}" if Bake.options.verbose >= 2
194
+ if !Bake.options.dry
195
+ FileUtils.rm_rf(buildDir)
196
+ end
197
+ end
198
+ end
199
+
200
+ end
192
201
  end
193
- end unless Bake.options.filename
202
+ end
194
203
  return true
195
204
  end
196
205
 
@@ -143,7 +143,8 @@ module Bake
143
143
  raise SystemCommandFailed.new
144
144
  end
145
145
 
146
- cmd = Utils.flagSplit(compiler[:COMMAND], false)
146
+ cmd = Utils.flagSplit(compiler[:PREFIX], false)
147
+ cmd += Utils.flagSplit(compiler[:COMMAND], false)
147
148
  cmd += compiler[:COMPILE_FLAGS].split(" ")
148
149
 
149
150
  if dep_filename
@@ -190,7 +191,9 @@ module Bake
190
191
  if not (cmdLineCheck and BlockBase.isCmdLineEqual?(cmd, cmdLineFile))
191
192
  BlockBase.prepareOutput(object)
192
193
  BlockBase.writeCmdLineFile(cmd, cmdLineFile)
193
- success, consoleOutput = ProcessHelper.run(cmd, false, false)
194
+ success = true
195
+ consoleOutput = ""
196
+ success, consoleOutput = ProcessHelper.run(cmd, false, false) if !Bake.options.dry
194
197
 
195
198
  outputType = Bake.options.analyze ? "Analyzing" : (Bake.options.prepro ? "Preprocessing" : "Compiling")
196
199
  incList = process_result(cmd, consoleOutput, compiler[:ERROR_PARSER], "#{outputType} #{source}", reason, success)
@@ -225,8 +228,10 @@ module Bake
225
228
  deps = dep_splitted.map { |d| d.gsub(/[\\] /,' ').gsub(/[\\]/,'/').strip }.delete_if {|d| d == "" }
226
229
  end
227
230
  rescue Exception => ex1
228
- Bake.formatter.printWarning("Could not read '#{dep_filename}'", projDir)
229
- puts ex1.message if Bake.options.debug
231
+ if !Bake.options.dry
232
+ Bake.formatter.printWarning("Could not read '#{dep_filename}'", projDir)
233
+ puts ex1.message if Bake.options.debug
234
+ end
230
235
  return nil
231
236
  end
232
237
  deps
@@ -234,7 +239,7 @@ module Bake
234
239
 
235
240
  # todo: move to toolchain util file
236
241
  def self.write_depfile(deps, dep_filename_conv)
237
- if deps
242
+ if deps && !Bake.options.dry
238
243
  begin
239
244
  File.open(dep_filename_conv, 'wb') do |f|
240
245
  deps.each do |dep|
@@ -307,7 +312,7 @@ module Bake
307
312
  end
308
313
  compileJobs.join
309
314
 
310
- if Bake.options.filelist
315
+ if Bake.options.filelist && !Bake.options.dry
311
316
  Bake.options.filelist.merge(fileListBlock.merge(fileListBlock))
312
317
 
313
318
  FileUtils.mkdir_p(@block.output_dir)
@@ -333,7 +338,7 @@ module Bake
333
338
  end
334
339
 
335
340
  def clean
336
- if Bake.options.filename or Bake.options.analyze
341
+ if (Bake.options.filename or Bake.options.analyze)
337
342
  Dir.chdir(@projectDir) do
338
343
  calcSources(true)
339
344
  @source_files.each do |source|
@@ -343,18 +348,24 @@ module Bake
343
348
  object = get_object_file(source)
344
349
  if File.exist?object
345
350
  puts "Deleting file #{object}" if Bake.options.verbose >= 2
346
- FileUtils.rm_rf(object)
351
+ if !Bake.options.dry
352
+ FileUtils.rm_rf(object)
353
+ end
347
354
  end
348
355
  if not Bake.options.analyze
349
356
  dep_filename = calcDepFile(object, type)
350
357
  if dep_filename and File.exist?dep_filename
351
358
  puts "Deleting file #{dep_filename}" if Bake.options.verbose >= 2
352
- FileUtils.rm_rf(dep_filename)
359
+ if !Bake.options.dry
360
+ FileUtils.rm_rf(dep_filename)
361
+ end
353
362
  end
354
363
  cmdLineFile = calcCmdlineFile(object)
355
364
  if File.exist?cmdLineFile
356
365
  puts "Deleting file #{cmdLineFile}" if Bake.options.verbose >= 2
357
- FileUtils.rm_rf(cmdLineFile)
366
+ if !Bake.options.dry
367
+ FileUtils.rm_rf(cmdLineFile)
368
+ end
358
369
  end
359
370
  end
360
371
  end
@@ -395,6 +406,8 @@ module Bake
395
406
  source_files = Set.new
396
407
  @config.files.each do |sources|
397
408
  p = sources.name
409
+ p = p[2..-1] if p.start_with?"./"
410
+
398
411
  res = Dir.glob(p).sort
399
412
  if res.length == 0 and cleaning == false
400
413
  if not p.include?"*" and not p.include?"?"
@@ -108,7 +108,8 @@ module Bake
108
108
 
109
109
  linker = @block.tcs[:LINKER]
110
110
 
111
- cmd = Utils.flagSplit(linker[:COMMAND], false) # g++
111
+ cmd = Utils.flagSplit(linker[:PREFIX], false)
112
+ cmd += Utils.flagSplit(linker[:COMMAND], false) # g++
112
113
  cmd += linker[:MUST_FLAGS].split(" ")
113
114
  cmd += Bake::Utils::flagSplit(linker[:FLAGS],true)
114
115
 
@@ -147,7 +148,9 @@ module Bake
147
148
 
148
149
  printCmd(cmdLinePrint, "Linking #{@exe_name}", reason, false)
149
150
  BlockBase.writeCmdLineFile(cmd, cmdLineFile)
150
- success, consoleOutput = ProcessHelper.run(cmd, false, false, outPipe)
151
+ success = true
152
+ consoleOutput = ""
153
+ success, consoleOutput = ProcessHelper.run(cmd, false, false, outPipe) if !Bake.options.dry
151
154
  process_result(cmdLinePrint, consoleOutput, linker[:ERROR_PARSER], nil, reason, success)
152
155
 
153
156
  check_config_file()
@@ -5,6 +5,11 @@ module Bake
5
5
  module HasExecuteCommand
6
6
 
7
7
  def executeCommand(commandLine, ignoreStr=nil, exitCodeArray = [0], echo = "on")
8
+ if Bake.options.dry
9
+ puts commandLine
10
+ return true
11
+ end
12
+
8
13
  puts commandLine if (Bake.options.verbose >= 1 && echo != "off") || Bake.options.verbose >= 3
9
14
  puts "(executed in '#{@projectDir}')" if Bake.options.verbose >= 3
10
15
  cmd_result = false
@@ -80,7 +80,8 @@ module Bake
80
80
  end
81
81
  archiver = @block.tcs[:ARCHIVER]
82
82
 
83
- cmd = Utils.flagSplit(archiver[:COMMAND], false) # ar
83
+ cmd = Utils.flagSplit(archiver[:PREFIX], false)
84
+ cmd += Utils.flagSplit(archiver[:COMMAND], false) # ar
84
85
  cmd += Bake::Utils::flagSplit(archiver[:FLAGS],true) # --all_load
85
86
  cmd += archiver[:ARCHIVE_FLAGS].split(" ")
86
87
 
@@ -98,7 +99,9 @@ module Bake
98
99
  BlockBase.prepareOutput(@archive_name)
99
100
 
100
101
  BlockBase.writeCmdLineFile(cmd, cmdLineFile)
101
- success, consoleOutput = ProcessHelper.run(cmd, false, false)
102
+ success = true
103
+ consoleOutput = ""
104
+ success, consoleOutput = ProcessHelper.run(cmd, false, false) if !Bake.options.dry
102
105
  process_result(cmd, consoleOutput, archiver[:ERROR_PARSER], "Creating #{@archive_name}", reason, success)
103
106
 
104
107
  check_config_file()
@@ -114,7 +117,9 @@ module Bake
114
117
  @objects = Dir.glob("#{@block.output_dir}/**/*.o")
115
118
  if !@objects.empty? && File.exist?(@archive_name)
116
119
  puts "Deleting file #{@archive_name}" if Bake.options.verbose >= 2
117
- FileUtils.rm_rf(@archive_name)
120
+ if !Bake.options.dry
121
+ FileUtils.rm_rf(@archive_name)
122
+ end
118
123
  end
119
124
  end
120
125
  else
@@ -1,7 +1,7 @@
1
1
  module Bake
2
2
  class Version
3
3
  def self.number
4
- "2.30.0"
4
+ "2.31.0"
5
5
  end
6
6
 
7
7
  def self.printBakeVersion(ry = "")
@@ -538,7 +538,7 @@ module Bake
538
538
  File.write(Bake.options.cc2j_filename, JSON.pretty_generate(Blocks::CC2J))
539
539
  end
540
540
 
541
- if Bake.options.filelist
541
+ if Bake.options.filelist && !Bake.options.dry
542
542
  mainBlock = Blocks::ALL_BLOCKS[Bake.options.main_project_name+","+Bake.options.build_config]
543
543
  Dir.chdir(mainBlock.projectDir) do
544
544
  FileUtils.mkdir_p(mainBlock.output_dir)
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.30.0
4
+ version: 2.31.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: 2017-01-20 00:00:00.000000000 Z
11
+ date: 2017-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rtext