bake-toolkit 2.23.12 → 2.24.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.
@@ -0,0 +1,32 @@
1
+ require 'common/options/parser'
2
+ require 'common/version'
3
+
4
+ module Bake
5
+
6
+ class BakecleanOptions < Parser
7
+ attr_reader :preview # Boolean
8
+
9
+ def initialize(argv)
10
+ super(argv)
11
+
12
+ @preview = false
13
+
14
+ add_option(["--preview" ], lambda { @preview = true })
15
+ add_option(["-h", "--help" ], lambda { usage; ExitHelper.exit(0) })
16
+ add_option(["--version" ], lambda { Bake::Version.printBakecleanVersion; ExitHelper.exit(0) })
17
+ end
18
+
19
+ def usage
20
+ puts "\nUsage: bakeclean [options]"
21
+ puts " --preview Only shows the folder which would be deleted."
22
+ puts " --version Print version."
23
+ puts " -h, --help Print this help."
24
+ end
25
+
26
+ def parse_options()
27
+ parse_internal(false)
28
+ end
29
+
30
+ end
31
+
32
+ end
@@ -6,13 +6,14 @@ module Bake
6
6
 
7
7
  class BakeqacOptions < Parser
8
8
  attr_reader :rcf, :acf, :qacdata, :qacstep, :qac_home, :cct_append # String
9
- attr_reader :c11, :c14, :qacfilter, :qacnoformat, :qacunittest, :qacdoc # Boolean
9
+ attr_reader :c11, :c14, :qacfilter, :qacnoformat, :qacunittest, :qacdoc, :cct_patch # Boolean
10
10
  attr_reader :cct # Array
11
11
  attr_reader :qacretry # int
12
12
 
13
13
  def initialize(argv)
14
14
  super(argv)
15
15
 
16
+ @cct_patch = false
16
17
  @cct_append = nil
17
18
  @main_dir = nil
18
19
  @cVersion = ""
@@ -37,6 +38,7 @@ module Bake
37
38
  add_option(["--cct" ], lambda { |x| @cct << x.gsub(/\\/,"/") })
38
39
  add_option(["--rcf" ], lambda { |x| @rcf = x.gsub(/\\/,"/") })
39
40
  add_option(["--acf" ], lambda { |x| @acf = x.gsub(/\\/,"/") })
41
+ add_option(["--qaccctpatch" ], lambda { @cct_patch = true })
40
42
  add_option(["--qacdata" ], lambda { |x| @qacdata = x.gsub(/\\/,"/") })
41
43
  add_option(["--qacstep" ], lambda { |x| @qacstep = x })
42
44
  add_option(["--qacnofilter" ], lambda { @qacfilter = false })
@@ -58,6 +60,7 @@ module Bake
58
60
  puts " a file named qac.cct will be searched up to root and also used if found."
59
61
  puts " --rcf <file> Set a specific rule config file. If not specified, $(QAC_HOME)/config/rcf/mcpp-1_5_1-en_US.rcf will be used."
60
62
  puts " --acf <file> Set a specific analysis config file, otherwise $(QAC_HOME)/config/acf/default.acf will be used."
63
+ puts " --qaccctpatch If specified, some adaptions to cct are made. Might improve the result - no guarantee."
61
64
  puts " --qacdata <dir> QAC writes data into this folder. Default is <working directory>/.qacdata."
62
65
  puts " --qacstep admin|analyze|view Steps can be ORed. Per default all steps will be executed."
63
66
  puts " --qacnofilter Output will be printed immediately and unfiltered. Per default filters are used to reduce noise."
data/lib/blocks/block.rb CHANGED
@@ -194,17 +194,19 @@ module Bake
194
194
  preSteps.each do |step|
195
195
  @result = executeStep(step, method) if @result
196
196
  return false if not @result and Bake.options.stopOnFirstError
197
- end
197
+ end unless @prebuild
198
198
 
199
199
  mainSteps.each do |step|
200
- @result = executeStep(step, method) if @result
200
+ if !@prebuild || (Library === step)
201
+ @result = executeStep(step, method) if @result
202
+ end
201
203
  return false if not @result and Bake.options.stopOnFirstError
202
204
  end
203
205
 
204
206
  postSteps.each do |step|
205
207
  @result = executeStep(step, method) if @result
206
208
  return false if not @result and Bake.options.stopOnFirstError
207
- end
209
+ end unless @prebuild
208
210
 
209
211
  return @result
210
212
  end
@@ -228,13 +230,11 @@ module Bake
228
230
  Bake::IDEInterface.instance.set_build_info(@projectName, @configName)
229
231
 
230
232
  if Bake.options.verbose >= 1
231
- typeStr = @prebuild ? "Skipping" : "Building"
233
+ typeStr = @prebuild ? "Using" : "Building"
232
234
  Bake.formatter.printAdditionalInfo "**** #{typeStr} #{Block.block_counter} of #{@@num_projects}: #{@projectName} (#{@configName}) ****"
233
235
  end
234
236
  puts "Project path: #{@projectDir}" if Bake.options.projectPaths
235
237
 
236
- return depResult if @prebuild
237
-
238
238
  @result = callSteps(:execute)
239
239
  return (depResult && @result)
240
240
  end
@@ -247,12 +247,10 @@ module Bake
247
247
  return false if not depResult and Bake.options.stopOnFirstError
248
248
 
249
249
  if Bake.options.verbose >= 2
250
- typeStr = @prebuild ? "Skipping" : "Cleaning"
250
+ typeStr = @prebuild ? "Checking" : "Cleaning"
251
251
  Bake.formatter.printAdditionalInfo "**** #{typeStr} #{Block.block_counter} of #{@@num_projects}: #{@projectName} (#{@configName}) ****"
252
252
  end
253
253
 
254
- return depResult if @prebuild
255
-
256
254
  @result = callSteps(:clean)
257
255
 
258
256
  if Bake.options.clobber
@@ -99,10 +99,13 @@ module Bake
99
99
  if @tcs[:OUTPUT_DIR] != nil
100
100
  p = @block.convPath(@tcs[:OUTPUT_DIR])
101
101
  @output_dir = p
102
- elsif isMainProject?
103
- @output_dir = "build" + Bake.options.buildDirDelimiter + Bake.options.build_config
104
102
  else
105
- @output_dir = "build" + Bake.options.buildDirDelimiter + @config.name + "_" + Bake.options.main_project_name + "_" + Bake.options.build_config
103
+ qacPart = Bake.options.qac ? (".qac" + Bake.options.buildDirDelimiter) : ""
104
+ if isMainProject?
105
+ @output_dir = "build" + Bake.options.buildDirDelimiter + qacPart + Bake.options.build_config
106
+ else
107
+ @output_dir = "build" + Bake.options.buildDirDelimiter + qacPart + @config.name + "_" + Bake.options.main_project_name + "_" + Bake.options.build_config
108
+ end
106
109
  end
107
110
  end
108
111
 
@@ -199,6 +202,26 @@ module Bake
199
202
  incList
200
203
  end
201
204
 
205
+
206
+ def cleanProjectDir
207
+ Dir.chdir(@projectDir) do
208
+ if File.exist?@output_dir
209
+ puts "Deleting folder #{@output_dir}" if Bake.options.verbose >= 2
210
+ FileUtils.rm_rf(@output_dir)
211
+
212
+ if (@tcs[:OUTPUT_DIR] == nil) && (Bake.options.buildDirDelimiter == "/") # in this case all builds are placed in a "build" folder
213
+ buildDir = File.dirname(@output_dir)
214
+ 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 "..")
215
+ puts "Deleting folder #{buildDir}" if Bake.options.verbose >= 2
216
+ FileUtils.rm_rf(buildDir)
217
+ end
218
+ end
219
+
220
+ end
221
+ end unless Bake.options.filename
222
+ return true
223
+ end
224
+
202
225
  end
203
226
  end
204
227
  end
@@ -24,7 +24,7 @@ module Bake
24
24
  if not @config.artifactName.nil? and @config.artifactName.name != ""
25
25
  baseFilename = @config.artifactName.name
26
26
  else
27
- baseFilename = "#{@projectName}#{@tcs[:LINKER][:OUTPUT_ENDING]}"
27
+ baseFilename = "#{@projectName}#{Bake::Toolchain.outputEnding(@tcs)}"
28
28
  end
29
29
  @exe_name ||= File.join([@output_dir, baseFilename])
30
30
  end
@@ -160,13 +160,7 @@ module Bake
160
160
  end
161
161
 
162
162
  def clean
163
- Dir.chdir(@projectDir) do
164
- if File.exist?@output_dir
165
- puts "Deleting folder #{@output_dir}" if Bake.options.verbose >= 2
166
- FileUtils.rm_rf(@output_dir)
167
- end
168
- end unless Bake.options.filename
169
- return true
163
+ return cleanProjectDir()
170
164
  end
171
165
 
172
166
  end
@@ -41,7 +41,7 @@ module Bake
41
41
  aTime = File.mtime(@archive_name)
42
42
 
43
43
  # sources
44
- @compileBlock.objects.each do |obj|
44
+ @objects.each do |obj|
45
45
  return "because object #{obj} does not exist" if not File.exists?(obj)
46
46
  return "because object #{obj} is newer than executable" if aTime < File.mtime(obj)
47
47
  end
@@ -52,9 +52,21 @@ module Bake
52
52
  def execute
53
53
 
54
54
  Dir.chdir(@projectDir) do
55
- if @compileBlock.objects.empty?
56
- puts "No source files, library won't be created" if Bake.options.verbose >= 2
57
- return true
55
+
56
+ @objects = @compileBlock.objects
57
+ if !@block.prebuild
58
+ if @objects.empty?
59
+ puts "No source files, library won't be created" if Bake.options.verbose >= 2
60
+ return true
61
+ end
62
+ else
63
+ @objects = Dir.glob("#{@output_dir}/**/*.o")
64
+ if @objects.empty?
65
+ if !File.exists?(@archive_name)
66
+ puts "No object files, library won't be created" if Bake.options.verbose >= 2
67
+ end
68
+ return true
69
+ end
58
70
  end
59
71
 
60
72
  cmdLineCheck = false
@@ -78,7 +90,7 @@ module Bake
78
90
  cmd[cmd.length-1] += @archive_name
79
91
  end
80
92
 
81
- cmd += @compileBlock.objects
93
+ cmd += @objects
82
94
 
83
95
  if cmdLineCheck and BlockBase.isCmdLineEqual?(cmd, cmdLineFile)
84
96
  success = true
@@ -99,17 +111,19 @@ module Bake
99
111
  end
100
112
 
101
113
  def clean
102
- Dir.chdir(@projectDir) do
103
- if File.exist?@output_dir
104
- puts "Deleting folder #{@output_dir}" if Bake.options.verbose >= 2
105
- FileUtils.rm_rf(@output_dir)
114
+ if @block.prebuild
115
+ Dir.chdir(@projectDir) do
116
+ @objects = Dir.glob("#{@output_dir}/**/*.o")
117
+ if !@objects.empty? && File.exist?(@archive_name)
118
+ puts "Deleting file #{@archive_name}" if Bake.options.verbose >= 2
119
+ FileUtils.rm_rf(@archive_name)
120
+ end
106
121
  end
107
- end unless Bake.options.filename
108
- return true
122
+ else
123
+ return cleanProjectDir()
124
+ end
109
125
  end
110
126
 
111
-
112
127
  end
113
-
114
128
  end
115
129
  end
@@ -1,7 +1,7 @@
1
1
  module Bake
2
2
  class Version
3
3
  def self.number
4
- "2.23.12"
4
+ "2.24.0"
5
5
  end
6
6
 
7
7
  def self.printBakeVersion(ry = "")
@@ -15,6 +15,10 @@ module Bake
15
15
  def self.printBakeqacVersion()
16
16
  printBakeVersion("qac")
17
17
  end
18
+
19
+ def self.printBakecleanVersion()
20
+ printBakeVersion("clean")
21
+ end
18
22
  end
19
23
 
20
24
  expectedRGen = "0.8.2"
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.23.12
4
+ version: 2.24.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: 2016-10-27 00:00:00.000000000 Z
11
+ date: 2016-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rtext
@@ -102,12 +102,14 @@ executables:
102
102
  - createVSProjects
103
103
  - bake-doc
104
104
  - bakeqac
105
+ - bakeclean
105
106
  extensions: []
106
107
  extra_rdoc_files: []
107
108
  files:
108
109
  - Rakefile.rb
109
110
  - bin/bake
110
111
  - bin/bake-doc
112
+ - bin/bakeclean
111
113
  - bin/bakeqac
112
114
  - bin/bakery
113
115
  - bin/createVSProjects
@@ -193,6 +195,7 @@ files:
193
195
  - documentation/_build/html/_sources/syntax/project_meta_syntax.txt
194
196
  - documentation/_build/html/_sources/syntax/syntax.txt
195
197
  - documentation/_build/html/_sources/syntax/variable_substitutions.txt
198
+ - documentation/_build/html/_sources/tips_and_tricks/bakeclean.txt
196
199
  - documentation/_build/html/_sources/tips_and_tricks/dot.txt
197
200
  - documentation/_build/html/_sources/tips_and_tricks/how_to_use_bake_with_cygwin.txt
198
201
  - documentation/_build/html/_sources/tips_and_tricks/qac.txt
@@ -380,6 +383,7 @@ files:
380
383
  - documentation/_build/html/syntax/project_meta_syntax.html
381
384
  - documentation/_build/html/syntax/syntax.html
382
385
  - documentation/_build/html/syntax/variable_substitutions.html
386
+ - documentation/_build/html/tips_and_tricks/bakeclean.html
383
387
  - documentation/_build/html/tips_and_tricks/dot.html
384
388
  - documentation/_build/html/tips_and_tricks/how_to_use_bake_with_cygwin.html
385
389
  - documentation/_build/html/tips_and_tricks/qac.html
@@ -434,6 +438,7 @@ files:
434
438
  - lib/bake/toolchain/provider.rb
435
439
  - lib/bake/toolchain/ti.rb
436
440
  - lib/bake/util.rb
441
+ - lib/bakeclean/options/options.rb
437
442
  - lib/bakeqac/options/options.rb
438
443
  - lib/bakery/buildPattern.rb
439
444
  - lib/bakery/model/language.rb