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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/bin/bake-doc +11 -11
  3. data/bin/bake-format +2 -2
  4. data/bin/bakeclean +32 -32
  5. data/bin/bakeqac +77 -6
  6. data/documentation/_build/html/_images/eclipse.png +0 -0
  7. data/documentation/_build/html/_images/emacs.png +0 -0
  8. data/documentation/_build/html/_images/notepad.png +0 -0
  9. data/documentation/_build/html/_images/vim.png +0 -0
  10. data/documentation/_build/html/_images/visualstudio-pro.png +0 -0
  11. data/documentation/_build/html/_sources/changelog.txt +10 -0
  12. data/documentation/_build/html/_sources/ide/ide_integrations.txt +40 -8
  13. data/documentation/_build/html/_sources/index.txt +1 -1
  14. data/documentation/_build/html/_sources/tips_and_tricks/qac.txt +159 -152
  15. data/documentation/_build/html/_static/eclipse.png +0 -0
  16. data/documentation/_build/html/_static/emacs.png +0 -0
  17. data/documentation/_build/html/_static/notepad.png +0 -0
  18. data/documentation/_build/html/_static/syntax.html +8 -1
  19. data/documentation/_build/html/_static/vim.png +0 -0
  20. data/documentation/_build/html/_static/visualstudio-pro.png +0 -0
  21. data/documentation/_build/html/changelog.html +12 -0
  22. data/documentation/_build/html/ide/ide_integrations.html +22 -20
  23. data/documentation/_build/html/index.html +5 -4
  24. data/documentation/_build/html/searchindex.js +1 -1
  25. data/documentation/_build/html/syntax/project_meta_syntax.html +8 -1
  26. data/documentation/_build/html/tips_and_tricks/qac.html +10 -3
  27. data/lib/bake/cache.rb +16 -28
  28. data/lib/bake/config/loader.rb +14 -24
  29. data/lib/bake/model/metamodel.rb +311 -307
  30. data/lib/bake/model/metamodel_ext.rb +33 -27
  31. data/lib/bake/subst.rb +4 -4
  32. data/lib/bake/toolchain/clang.rb +43 -44
  33. data/lib/bake/toolchain/clang_analyze.rb +30 -31
  34. data/lib/bake/toolchain/diab.rb +52 -53
  35. data/lib/bake/toolchain/gcc.rb +1 -1
  36. data/lib/bake/toolchain/gcc_env.rb +54 -55
  37. data/lib/bake/toolchain/greenhills.rb +51 -52
  38. data/lib/bake/toolchain/keil.rb +54 -55
  39. data/lib/bake/toolchain/lint.rb +19 -20
  40. data/lib/bake/toolchain/msvc.rb +57 -58
  41. data/lib/bake/toolchain/provider.rb +6 -3
  42. data/lib/bake/toolchain/ti.rb +50 -49
  43. data/lib/bakeqac/options/options.rb +2 -2
  44. data/lib/blocks/block.rb +4 -0
  45. data/lib/blocks/compile.rb +36 -19
  46. data/lib/common/version.rb +1 -1
  47. data/lib/format/bake_format.rb +1 -1
  48. data/lib/tocxx.rb +576 -558
  49. metadata +26 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6f2d7170b26cbdbc70b0088ff731af07ef3f623a
4
- data.tar.gz: 30132e42d5dafcbc3dc047eb17021c9184bb9379
3
+ metadata.gz: 3234ed733373462ddbf0bed1ad2e368f5340f87b
4
+ data.tar.gz: ae8511630f714943ae55bc9f1f66a89b68fd54cf
5
5
  SHA512:
6
- metadata.gz: 6ecb9653e3655a6cbc0c454a0263925ea45f1686e81409fc45434445f632c55f5b044fb459463725413355c1dd8d5ca125ac72b01988d49eb125ffa52b1a7b5e
7
- data.tar.gz: bdf1bcc8e32078aef69722152c11c37deb459191fa8bee2d9f76551737c65071ba39eeac737f9b9f71f11fbf889e3858ef3068fcbd71856b94d29fbe29b4be68
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__} [--ident=string] input output",
25
- " --indent=string, ident defaults to two spaces.",
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
- p cips
82
- puts (!cips.empty?)
83
- puts (!File.size?(cips[0]).nil?)
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)
@@ -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: 2
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,4 +1,4 @@
1
- bake 2.24.3
1
+ bake 2.25.0
2
2
  ==========================================
3
3
  bake, building software **fast** and **easy**!
4
4
 
@@ -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
- - The first command creates the qac project database.
18
- - The second command builds and analyzes the files.
19
- - The third command prints out the result unfiltered.
20
-
21
- With bakeqac
22
- ------------
23
-
24
- Instead of writing
25
-
26
- .. code-block:: console
27
-
28
- bake <options>
29
-
30
- for regular build, simply write:
31
-
32
- .. code-block:: console
33
-
34
- bakeqac <options>
35
-
36
- bakeqac will automatically do the three steps mentioned above. If one of these steps fails, the consecutive steps will be dismissed.
37
-
38
- You can also choose certain steps (can be combined with "|"):
39
-
40
- .. code-block:: console
41
-
42
- bakeqac <options> --qacstep admin|analyze|view
43
- bakeqac <options> --qacstep admin
44
- etc.
45
-
46
- Step 1: admin
47
- -------------
48
-
49
- 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.
50
-
51
- - 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:
52
-
53
- .. code-block:: console
54
-
55
- bakeqac <options> --cct <first> --cct <second>
56
-
57
- Alternatively, you can add
58
-
59
- .. code-block:: console
60
-
61
- bakeqac <options> --c++11
62
- bakeqac <options> --c++14
63
-
64
- to enforce bakeqac choosing the C++11 or C++14 toolchain.
65
-
66
- 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.
67
- This may be used to add additional configuration parameters which are compiler independent, e.q. "-n 1234" suppresses warning 1234.
68
-
69
- - Rule configuration file (rcf): Can be specified with:
70
-
71
- .. code-block:: console
72
-
73
- bakeqac <options> --rcf <rcf>
74
-
75
- If not specified, bakeqac uses $(QAC_HOME)/config/rcf/mcpp-1_5_1-en_US.rcf.
76
-
77
- - Analysis configuration file (acf): Can be specified with:
78
-
79
- .. code-block:: console
80
-
81
- bakeqac <options> --acf <acf>
82
-
83
- If not specified, $(QAC_HOME)/config/acf/default.acf will be used.
84
-
85
- - You can also specify the qacdata folder, default is *.qacdata*:
86
-
87
- .. code-block:: console
88
-
89
- bakeqac <options> --qacdata anotherFolder
90
-
91
-
92
- Step 2: analyze
93
- ---------------
94
-
95
- This is the main step. Use exactly the same options for bakeqac as for bake. A few things have to be mentioned:
96
-
97
- - *--compile-only* will be automatically added
98
- - *--rebuild* will be automatically added
99
-
100
- The output will be filtered per default (e.g. some warnings) . To get unfiltered output, write:
101
-
102
- .. code-block:: console
103
-
104
- bakeqac <options> --qacnofilter
105
-
106
- Step 3: view
107
- ------------
108
-
109
- Results are also filtered in this step if not specified otherwise:
110
-
111
- - 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.
112
- - Files from subfolders test and mock will be filtered out.
113
- - Files from projects gtest and gmock will be filtered out.
114
-
115
- bakeqac slightly reformats the output (originally the violated MISRA rule numbers are printed out incomplete). To switch back to raw format, use:
116
-
117
- .. code-block:: console
118
-
119
- bakeqac <options> --qacrawformat
120
-
121
- To get additional links to the appropriate documentation pages use:
122
-
123
- .. code-block:: console
124
-
125
- bakeqac <options> --qacdoc
126
-
127
- Colored output is also supported similar to bake:
128
-
129
- .. code-block:: console
130
-
131
- bakeqac <options> -a <color_scheme>
132
-
133
-
134
- Additional options
135
- ------------------
136
-
137
- QACPP needs a license. If floating licenses are not available, bakeqac can retry to checkout them:
138
-
139
- .. code-block:: console
140
-
141
- bakeqac <options> --qacretry <seconds>
142
-
143
- Step 2 and 3 are retried until timeout is reached.
144
-
145
- Notes
146
- -----
147
-
148
- 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.
149
-
150
- Example output
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