bake-toolkit 2.24.6 → 2.25.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/bake-doc +11 -11
- data/bin/bake-format +2 -2
- data/bin/bakeclean +32 -32
- data/bin/bakeqac +77 -6
- data/documentation/_build/html/_images/eclipse.png +0 -0
- data/documentation/_build/html/_images/emacs.png +0 -0
- data/documentation/_build/html/_images/notepad.png +0 -0
- data/documentation/_build/html/_images/vim.png +0 -0
- data/documentation/_build/html/_images/visualstudio-pro.png +0 -0
- data/documentation/_build/html/_sources/changelog.txt +10 -0
- data/documentation/_build/html/_sources/ide/ide_integrations.txt +40 -8
- data/documentation/_build/html/_sources/index.txt +1 -1
- data/documentation/_build/html/_sources/tips_and_tricks/qac.txt +159 -152
- data/documentation/_build/html/_static/eclipse.png +0 -0
- data/documentation/_build/html/_static/emacs.png +0 -0
- data/documentation/_build/html/_static/notepad.png +0 -0
- data/documentation/_build/html/_static/syntax.html +8 -1
- data/documentation/_build/html/_static/vim.png +0 -0
- data/documentation/_build/html/_static/visualstudio-pro.png +0 -0
- data/documentation/_build/html/changelog.html +12 -0
- data/documentation/_build/html/ide/ide_integrations.html +22 -20
- data/documentation/_build/html/index.html +5 -4
- data/documentation/_build/html/searchindex.js +1 -1
- data/documentation/_build/html/syntax/project_meta_syntax.html +8 -1
- data/documentation/_build/html/tips_and_tricks/qac.html +10 -3
- data/lib/bake/cache.rb +16 -28
- data/lib/bake/config/loader.rb +14 -24
- data/lib/bake/model/metamodel.rb +311 -307
- data/lib/bake/model/metamodel_ext.rb +33 -27
- data/lib/bake/subst.rb +4 -4
- data/lib/bake/toolchain/clang.rb +43 -44
- data/lib/bake/toolchain/clang_analyze.rb +30 -31
- data/lib/bake/toolchain/diab.rb +52 -53
- data/lib/bake/toolchain/gcc.rb +1 -1
- data/lib/bake/toolchain/gcc_env.rb +54 -55
- data/lib/bake/toolchain/greenhills.rb +51 -52
- data/lib/bake/toolchain/keil.rb +54 -55
- data/lib/bake/toolchain/lint.rb +19 -20
- data/lib/bake/toolchain/msvc.rb +57 -58
- data/lib/bake/toolchain/provider.rb +6 -3
- data/lib/bake/toolchain/ti.rb +50 -49
- data/lib/bakeqac/options/options.rb +2 -2
- data/lib/blocks/block.rb +4 -0
- data/lib/blocks/compile.rb +36 -19
- data/lib/common/version.rb +1 -1
- data/lib/format/bake_format.rb +1 -1
- data/lib/tocxx.rb +576 -558
- metadata +26 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3234ed733373462ddbf0bed1ad2e368f5340f87b
|
4
|
+
data.tar.gz: ae8511630f714943ae55bc9f1f66a89b68fd54cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1cf9cfbaaed777dcb90cb561bdd6e254ead94f17c9eb63c8632b7aad3839d7e24da9cd7145b8bc8dac4975b5e94d5555cd3e7dfa071bd4a78868719747af231
|
7
|
+
data.tar.gz: fc6ddce74ba7226b927e91c7c804de3bb9f8901517ee04094bc119b77dfcfde104ad3f66a6d73390418b01edecad6dd7b198f39456830165e16285ac8dfc034f
|
data/bin/bake-doc
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
$:.unshift(File.dirname(__FILE__)+"/../lib")
|
4
|
-
require 'common/version'
|
5
|
-
|
6
|
-
Bake::Version.printBakeVersion
|
7
|
-
|
8
|
-
puts "Command \"bake-doc\" not supported anymore. Please use"
|
9
|
-
puts "\"bake --doc\" to open the documentation in the browser OR"
|
10
|
-
puts "\"bake --generate-doc ...\" for building the documentation of a project."
|
11
|
-
exit(1)
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$:.unshift(File.dirname(__FILE__)+"/../lib")
|
4
|
+
require 'common/version'
|
5
|
+
|
6
|
+
Bake::Version.printBakeVersion
|
7
|
+
|
8
|
+
puts "Command \"bake-doc\" not supported anymore. Please use"
|
9
|
+
puts "\"bake --doc\" to open the documentation in the browser OR"
|
10
|
+
puts "\"bake --generate-doc ...\" for building the documentation of a project."
|
11
|
+
exit(1)
|
data/bin/bake-format
CHANGED
@@ -21,8 +21,8 @@ begin
|
|
21
21
|
end
|
22
22
|
rescue
|
23
23
|
puts [
|
24
|
-
"Usage: #{__FILE__} [--
|
25
|
-
" --indent=string,
|
24
|
+
"Usage: #{__FILE__} [--indent=string] input output",
|
25
|
+
" --indent=string, indent defaults to two spaces.",
|
26
26
|
" Note, you can escape a tab in bash by ctrl-vTAB with sourrounding \" e.g. \"--input= \"",
|
27
27
|
" input, filename or '-' for stdin",
|
28
28
|
" output, filename, '-' for stdout, '--' for same as input file"
|
data/bin/bakeclean
CHANGED
@@ -1,32 +1,32 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
$:.unshift(File.dirname(__FILE__)+"/../lib")
|
4
|
-
require "bakeclean/options/options"
|
5
|
-
require "fileutils"
|
6
|
-
|
7
|
-
$options = Bake::BakecleanOptions.new(ARGV)
|
8
|
-
$options.parse_options()
|
9
|
-
|
10
|
-
def remove(folder)
|
11
|
-
if File.exist?folder
|
12
|
-
puts folder
|
13
|
-
FileUtils.rm_rf(folder) unless $options.preview
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
puts $options.preview ? "*** Preview ***" : "*** Deleting ***"
|
18
|
-
|
19
|
-
bakes = Dir.glob("**/.bake")
|
20
|
-
bakes.each do |b|
|
21
|
-
remove(b)
|
22
|
-
projectDir = File.dirname(b)
|
23
|
-
remove(projectDir+"/build")
|
24
|
-
|
25
|
-
builds = Dir.glob(projectDir + "/build_*")
|
26
|
-
builds.each do |build|
|
27
|
-
remove(build)
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
exit(0)
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$:.unshift(File.dirname(__FILE__)+"/../lib")
|
4
|
+
require "bakeclean/options/options"
|
5
|
+
require "fileutils"
|
6
|
+
|
7
|
+
$options = Bake::BakecleanOptions.new(ARGV)
|
8
|
+
$options.parse_options()
|
9
|
+
|
10
|
+
def remove(folder)
|
11
|
+
if File.exist?folder
|
12
|
+
puts folder
|
13
|
+
FileUtils.rm_rf(folder) unless $options.preview
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
puts $options.preview ? "*** Preview ***" : "*** Deleting ***"
|
18
|
+
|
19
|
+
bakes = Dir.glob("**/.bake")
|
20
|
+
bakes.each do |b|
|
21
|
+
remove(b)
|
22
|
+
projectDir = File.dirname(b)
|
23
|
+
remove(projectDir+"/build")
|
24
|
+
|
25
|
+
builds = Dir.glob(projectDir + "/build_*")
|
26
|
+
builds.each do |build|
|
27
|
+
remove(build)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
exit(0)
|
data/bin/bakeqac
CHANGED
@@ -15,6 +15,15 @@ STDERR.sync = true
|
|
15
15
|
|
16
16
|
module Bake
|
17
17
|
|
18
|
+
def self.printCip()
|
19
|
+
cips = Dir.glob(@options.qacdata + "/**/*.cip")
|
20
|
+
if !cips.empty?
|
21
|
+
puts "Temporary debug output to find a highly sporadic bug regarding cip file, sorry for spam:"
|
22
|
+
puts "cip file name: #{cips[0]}"
|
23
|
+
puts "cip file size: #{File.size?(cips[0])}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
18
27
|
###### PREREQUISITE 1: BAKEQAC OPTIONS ######
|
19
28
|
|
20
29
|
@options = BakeqacOptions.new(ARGV)
|
@@ -73,14 +82,11 @@ end
|
|
73
82
|
FileUtils.rm_rf @options.qacdata
|
74
83
|
success, consoleOutput = ProcessHelper.run(cmd, true)
|
75
84
|
|
76
|
-
puts "Temporary debug output:"
|
77
|
-
|
78
85
|
break if not success
|
79
|
-
cips = Dir.glob(@options.qacdata + "/**/*.cip")
|
80
86
|
|
81
|
-
|
82
|
-
|
83
|
-
|
87
|
+
printCip()
|
88
|
+
|
89
|
+
cips = Dir.glob(@options.qacdata + "/**/*.cip")
|
84
90
|
break if (!cips.empty?) && (!File.size?(cips[0]).nil?) # this is the regular case, note: "size?" returns nil if empty or not existing
|
85
91
|
|
86
92
|
cipCounter += 1
|
@@ -186,6 +192,7 @@ end
|
|
186
192
|
puts consoleOutput # no filter
|
187
193
|
end
|
188
194
|
|
195
|
+
printCip()
|
189
196
|
end
|
190
197
|
|
191
198
|
|
@@ -305,8 +312,72 @@ end
|
|
305
312
|
puts consoleOutput # no filter
|
306
313
|
end
|
307
314
|
|
315
|
+
printCip()
|
316
|
+
|
308
317
|
end
|
309
318
|
|
319
|
+
###### STEP 4a: REPORT SCRIPT CHECK (OPTIONAL) ######
|
320
|
+
|
321
|
+
if success and !@options.qacstep.nil? and @options.qacstep.include?("report")
|
322
|
+
|
323
|
+
puts "bakeqac: preparing reports..."
|
324
|
+
|
325
|
+
# check if adapted
|
326
|
+
scriptsAdapted = true
|
327
|
+
[@options.qac_home+"/report_plugins/Rule_Compliance_Report.py", @options.qac_home+"/report_plugins/Suppressions_Report.py"].each do |script|
|
328
|
+
if !File.exist?script
|
329
|
+
puts "Error: script #{script} not found"
|
330
|
+
success = false
|
331
|
+
break
|
332
|
+
end
|
333
|
+
|
334
|
+
foundVersion = false
|
335
|
+
File.open(script, "r").each_line do |line|
|
336
|
+
scan_res = line.scan(/v(\d+\.\d+): Adapted.+_Report\.py/)
|
337
|
+
if scan_res.length > 0
|
338
|
+
puts "Info: script #{script} has version \"#{scan_res[0][0]}\""
|
339
|
+
foundVersion = true
|
340
|
+
break
|
341
|
+
end
|
342
|
+
end
|
343
|
+
puts "Info: script #{script} not adapted" if foundVersion == false
|
344
|
+
|
345
|
+
end
|
346
|
+
|
347
|
+
end
|
348
|
+
|
349
|
+
###### STEP 4b: REPORT SUR (OPTIONAL) ######
|
350
|
+
|
351
|
+
if success and !@options.qacstep.nil? and @options.qacstep.include?("report")
|
352
|
+
FileUtils::mkdir_p @options.qacdata
|
353
|
+
|
354
|
+
puts "bakeqac: generating SUR report..."
|
355
|
+
|
356
|
+
cmd = qaExe + ["report", "-P", @options.qacdata, "-t", "SUR"]
|
357
|
+
|
358
|
+
success, consoleOutput = ProcessHelper.run(cmd, false)
|
359
|
+
puts consoleOutput
|
360
|
+
|
361
|
+
end
|
362
|
+
|
363
|
+
###### STEP 4c: REPORT RCR (OPTIONAL) ######
|
364
|
+
|
365
|
+
if success and !@options.qacstep.nil? and @options.qacstep.include?("report")
|
366
|
+
FileUtils::mkdir_p @options.qacdata
|
367
|
+
|
368
|
+
puts "bakeqac: generating RCR report..."
|
369
|
+
|
370
|
+
cmd = qaExe + ["report", "-P", @options.qacdata, "-t", "RCR"]
|
371
|
+
|
372
|
+
success, consoleOutput = ProcessHelper.run(cmd, false)
|
373
|
+
puts consoleOutput
|
374
|
+
|
375
|
+
end
|
376
|
+
|
377
|
+
|
378
|
+
#### TODO: unittest for report
|
379
|
+
|
380
|
+
|
310
381
|
###### DONE ######
|
311
382
|
|
312
383
|
exit(success ? 0 : 1)
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,6 +1,16 @@
|
|
1
1
|
Changelog
|
2
2
|
=========
|
3
3
|
|
4
|
+
December 15, 2016 - bake-toolkit 2.25.0
|
5
|
+
* Changed (!): before this version, all "IncludeDir"s were evaluated prior to the "Dependency"s to calculate the include path string for the compiler. Now the line order
|
6
|
+
is taken into account. To get the same include path string as in 2.24.x, shift all "IncludeDir"s in front of the first "Dependency".
|
7
|
+
* Added: it is possible to mark an IncludeDir with "system: true", which means that e.g. for gcc "-isystem" is used instead of "-I". Very useful for third party libs.
|
8
|
+
* Bugfix: qac: adapted parser to new gcc version strings. On some machines an incorrect CCT was chosen.
|
9
|
+
* Bugfix: when building with "-p <projectname>", bake has not only built <projectname>, but also all injected dependencies of <projectname>, which was not intended.
|
10
|
+
* Added: qac: additional step to generate reports, activate it manually with "--qacstep report", see documentation.
|
11
|
+
* Cosmetic: Adapt.meta files are also cached now.
|
12
|
+
* Temporary: cip bug workaround from 2.24.2 does not work, added some debug output to get more infos - sorry for the spam - will be removed soon.
|
13
|
+
|
4
14
|
December 5, 2016 - bake-toolkit 2.24.3
|
5
15
|
* Added: qac: if "<mainConfigName>Qac" is found in main project, it will be used instead of "<mainConfigName>"
|
6
16
|
* Added: First version of bake-format script, thanks to gizmomogwai
|
@@ -1,8 +1,40 @@
|
|
1
|
-
IDE Support
|
2
|
-
===========
|
3
|
-
|
4
|
-
.. toctree::
|
5
|
-
:maxdepth:
|
6
|
-
|
7
|
-
eclipse/eclipse
|
8
|
-
vs/vs
|
1
|
+
IDE Support
|
2
|
+
===========
|
3
|
+
|
4
|
+
.. toctree::
|
5
|
+
:maxdepth: 1
|
6
|
+
|
7
|
+
eclipse/eclipse
|
8
|
+
vs/vs
|
9
|
+
|
10
|
+
The integrations for eclipse and visual studio are the ones that are
|
11
|
+
most used and best documented.
|
12
|
+
|
13
|
+
.. image:: ../_static/eclipse.png
|
14
|
+
:target: eclipse/eclipse.html
|
15
|
+
|
16
|
+
.. image:: ../_static/visualstudio-pro.png
|
17
|
+
:target: vs/vs.html
|
18
|
+
|
19
|
+
|
20
|
+
Basic integrations
|
21
|
+
******************
|
22
|
+
|
23
|
+
The following integrations lack in features, documentation and
|
24
|
+
maturity compared to the above integrations. Still they provide you
|
25
|
+
with a starting point.
|
26
|
+
|
27
|
+
.. image:: ../_static/emacs.png
|
28
|
+
:target: http://github.com/gizmomogwai/bake-mode
|
29
|
+
|
30
|
+
.. image:: ../_static/notepad.png
|
31
|
+
:target: https://github.com/sanastasiou/RTextNpp/releases
|
32
|
+
|
33
|
+
.. image:: ../_static/vim.png
|
34
|
+
:target: https://github.com/flxo/bake.vim
|
35
|
+
|
36
|
+
The beautiful IDE icons are designed by `Kat On`_ and used under the
|
37
|
+
`creative commons license v3.0`_.
|
38
|
+
|
39
|
+
.. _Kat On: https://www.squirrelmuffins.com
|
40
|
+
.. _creative commons license v3.0: https://creativecommons.org/licenses/by/3.0
|
@@ -1,153 +1,160 @@
|
|
1
|
-
QACPP
|
2
|
-
*****
|
3
|
-
|
4
|
-
bakeqac is a convenience wrapper for QACPP with some nice features.
|
5
|
-
|
6
|
-
Without bakeqac
|
7
|
-
---------------
|
8
|
-
|
9
|
-
QACPP can be called directly from command line:
|
10
|
-
|
11
|
-
.. code-block:: console
|
12
|
-
|
13
|
-
qacli admin --qaf-project-config --qaf-project qacdata --cct <cct> --rcf <rcf> --acf <acf>
|
14
|
-
qacli analyze -P qacdata -b <bake call>
|
15
|
-
qacli view -P qacdata -m STDOUT
|
16
|
-
|
17
|
-
|
18
|
-
- The
|
19
|
-
- The
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
bakeqac
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
1
|
+
QACPP
|
2
|
+
*****
|
3
|
+
|
4
|
+
bakeqac is a convenience wrapper for QACPP with some nice features.
|
5
|
+
|
6
|
+
Without bakeqac
|
7
|
+
---------------
|
8
|
+
|
9
|
+
QACPP can be called directly from command line:
|
10
|
+
|
11
|
+
.. code-block:: console
|
12
|
+
|
13
|
+
qacli admin --qaf-project-config --qaf-project qacdata --cct <cct> --rcf <rcf> --acf <acf>
|
14
|
+
qacli analyze -P qacdata -b <bake call>
|
15
|
+
qacli view -P qacdata -m STDOUT
|
16
|
+
qacli report -P qacdata -t SUR # or -t RCR. Please also note, that the "view" is not necessary to generate the reports.
|
17
|
+
|
18
|
+
- The first command creates the qac project database.
|
19
|
+
- The second command builds and analyzes the files.
|
20
|
+
- The third command prints out the result unfiltered.
|
21
|
+
- The forth command generates reports. You may replace the python scripts in PRQA to adapt the output.
|
22
|
+
|
23
|
+
With bakeqac
|
24
|
+
------------
|
25
|
+
|
26
|
+
Instead of writing
|
27
|
+
|
28
|
+
.. code-block:: console
|
29
|
+
|
30
|
+
bake <options>
|
31
|
+
|
32
|
+
for regular build, simply write:
|
33
|
+
|
34
|
+
.. code-block:: console
|
35
|
+
|
36
|
+
bakeqac <options>
|
37
|
+
|
38
|
+
bakeqac will automatically do the first three steps mentioned above. If one of these steps fails, the consecutive steps will be dismissed.
|
39
|
+
|
40
|
+
You can also choose certain steps (can be combined with "|"):
|
41
|
+
|
42
|
+
.. code-block:: console
|
43
|
+
|
44
|
+
bakeqac <options> --qacstep admin|analyze|view|report
|
45
|
+
bakeqac <options> --qacstep admin
|
46
|
+
etc.
|
47
|
+
|
48
|
+
Step 1: admin
|
49
|
+
-------------
|
50
|
+
|
51
|
+
You have to set the environment variable QAC_HOME, e.g. to *c:\\tools\\prqa\\PRQA-Framework-2.1.0*. If not specified otherwise, cct, rcf and acf will be automatically chosen.
|
52
|
+
|
53
|
+
- Configuration compiler template (cct): Only GCC is supported. bakeqac tries to get the platform and the GCC version and calculates the path to the right cct file. To overwrite this behaviour, specify one or more ccts:
|
54
|
+
|
55
|
+
.. code-block:: console
|
56
|
+
|
57
|
+
bakeqac <options> --cct <first> --cct <second>
|
58
|
+
|
59
|
+
Alternatively, you can add
|
60
|
+
|
61
|
+
.. code-block:: console
|
62
|
+
|
63
|
+
bakeqac <options> --c++11
|
64
|
+
bakeqac <options> --c++14
|
65
|
+
|
66
|
+
to enforce bakeqac choosing the C++11 or C++14 toolchain.
|
67
|
+
|
68
|
+
If --cct is not used, bakeqac uses a built-in cct file as mentioned above. Additionally, it searched for a file named qac.cct up to root and appends the content to the original cct file.
|
69
|
+
This may be used to add additional configuration parameters which are compiler independent, e.q. "-n 1234" suppresses warning 1234.
|
70
|
+
|
71
|
+
- Rule configuration file (rcf): Can be specified with:
|
72
|
+
|
73
|
+
.. code-block:: console
|
74
|
+
|
75
|
+
bakeqac <options> --rcf <rcf>
|
76
|
+
|
77
|
+
If not specified, bakeqac uses $(QAC_HOME)/config/rcf/mcpp-1_5_1-en_US.rcf.
|
78
|
+
|
79
|
+
- Analysis configuration file (acf): Can be specified with:
|
80
|
+
|
81
|
+
.. code-block:: console
|
82
|
+
|
83
|
+
bakeqac <options> --acf <acf>
|
84
|
+
|
85
|
+
If not specified, $(QAC_HOME)/config/acf/default.acf will be used.
|
86
|
+
|
87
|
+
- You can also specify the qacdata folder, default is *.qacdata*:
|
88
|
+
|
89
|
+
.. code-block:: console
|
90
|
+
|
91
|
+
bakeqac <options> --qacdata anotherFolder
|
92
|
+
|
93
|
+
|
94
|
+
Step 2: analyze
|
95
|
+
---------------
|
96
|
+
|
97
|
+
This is the main step. Use exactly the same options for bakeqac as for bake. A few things have to be mentioned:
|
98
|
+
|
99
|
+
- *--compile-only* will be automatically added
|
100
|
+
- *--rebuild* will be automatically added
|
101
|
+
|
102
|
+
The output will be filtered per default (e.g. some warnings) . To get unfiltered output, write:
|
103
|
+
|
104
|
+
.. code-block:: console
|
105
|
+
|
106
|
+
bakeqac <options> --qacnofilter
|
107
|
+
|
108
|
+
Step 3: view
|
109
|
+
------------
|
110
|
+
|
111
|
+
Results are also filtered in this step if not specified otherwise:
|
112
|
+
|
113
|
+
- Only results from compiled bake projects will be shown (which does not apply to e.g. compiler libraries). To narrow the results, use the *-p* option.
|
114
|
+
- Files from subfolders test and mock will be filtered out.
|
115
|
+
- Files from projects gtest and gmock will be filtered out.
|
116
|
+
|
117
|
+
bakeqac slightly reformats the output (originally the violated MISRA rule numbers are printed out incomplete). To switch back to raw format, use:
|
118
|
+
|
119
|
+
.. code-block:: console
|
120
|
+
|
121
|
+
bakeqac <options> --qacrawformat
|
122
|
+
|
123
|
+
To get additional links to the appropriate documentation pages use:
|
124
|
+
|
125
|
+
.. code-block:: console
|
126
|
+
|
127
|
+
bakeqac <options> --qacdoc
|
128
|
+
|
129
|
+
Colored output is also supported similar to bake:
|
130
|
+
|
131
|
+
.. code-block:: console
|
132
|
+
|
133
|
+
bakeqac <options> -a <color_scheme>
|
134
|
+
|
135
|
+
Step 4: report
|
136
|
+
--------------
|
137
|
+
|
138
|
+
Reports about the warnings and suppressed warnings are be generated.
|
139
|
+
|
140
|
+
|
141
|
+
Additional options
|
142
|
+
------------------
|
143
|
+
|
144
|
+
QACPP needs a license. If floating licenses are not available, bakeqac can retry to checkout them:
|
145
|
+
|
146
|
+
.. code-block:: console
|
147
|
+
|
148
|
+
bakeqac <options> --qacretry <seconds>
|
149
|
+
|
150
|
+
Steps "analyze" and "view" are retried until timeout is reached.
|
151
|
+
|
152
|
+
Notes
|
153
|
+
-----
|
154
|
+
|
155
|
+
If "<mainConfigName>Qac" is found in main project, it will be used instead of "<mainConfigName>. This is useful if the unit test has to be built different to MISRA.
|
156
|
+
|
157
|
+
Example output
|
158
|
+
--------------
|
159
|
+
|
153
160
|
.. image:: ../_static/misra.png
|