Commit Graph

14 Commits

Author SHA1 Message Date
Christian Kandeler
daa478adad Factor out license check.
Change-Id: Ifcaab7252239bde1affa8bc55ab38761c0f6e99f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-07-02 13:02:01 +03:00
Eike Ziller
39613b3b08 Adapt to changes to run mode
Change-Id: I9e299d6fa49920ffa98ececb5b96e9512055ba34
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-30 14:58:51 +03:00
Nikolai Kosjar
3529df2e6e Fix license header
Change-Id: I017092613cdec7c00736442c10ca80b3c74f0189
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2015-06-26 10:24:06 +03:00
Kai Koehne
d49232bbf1 Make licensechecker dependency optional
Change-Id: Ie867d2da37a507d36caaf16494f996b88ca4e142
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2015-06-25 16:32:04 +03:00
André Pönitz
a92d11001e Adapt to upstream API change
Change-Id: I33168006b955af224fd914482a042958f6319c4e
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2015-06-19 14:46:57 +03:00
Christian Kandeler
cffd9f8f3e Adapt to API changes in AnalyzerBase.
Change-Id: Id61d77653c3161f3abc97581f5e9674adf81598b
Reviewed-by: Andre Poenitz <andre.poenitz@theqtcompany.com>
2015-06-18 13:43:19 +03:00
Christian Kandeler
6e796591f4 Allow users to suppress diagnostics.
This patch deals with what is likely the most common use case:
Filtering specific messages at a particular location. The current
granularity is essentially per-file (and per-function, where possible),
which seems more useful than taking line numbers into
account, as that would not be robust with regards to code changes elsewhere
in the file. We can fine-tune this if the need arises.

Change-Id: I4e9b2671fa199339cc3b995953d072b840cd3205
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-02-27 11:39:32 +02:00
André Pönitz
6ac1dc95fd Adjust to Analyzer core changes
Change-Id: I2985b1be505f9aa43f2a8615a8dfcafaeb991e21
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-20 11:35:49 +02:00
André Pönitz
93685b97ef Compile fix after recent Analyzer core changes
Change-Id: I100e75c526ff8609849526c3317a6d0a1658176b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-02-19 10:14:28 +02:00
Eike Ziller
a8dfba176b Merge remote-tracking branch 'origin/3.3'
Conflicts:
	plugins/clangstaticanalyzer/ClangStaticAnalyzer.json.in

Change-Id: Iffa578b015c51375cdb2d9930830cb2d76433bc7
2015-02-13 09:37:39 +01:00
Christian Kandeler
2946364ce6 Add unit tests.
These test the complete workflow as the user experiences it when
clicking "Start".
Intended usage:
    (1) Run sdktool to set up a kit with the toolchain you want
        to test against (using a temporary directory).
        The tests assume exactly one Kit to be present.
    (2) Start Creator with a matching settings path and
        "-load ClangStaticAnalyzer -test ClangStaticAnalyzer".
    (3) Repeat until all toolchains have been tested.
The initial implementation tests one trivial source file
with both qbs and qmake.

Change-Id: I810f23e2990a789a4dd9f1dd16335fbcf5c5f39f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-02-09 16:48:26 +02:00
Eike Ziller
c98db856f9 Update License
Change-Id: I0a127e78046369f7b55b3ace7b08a13a3f5319e5
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-01-15 18:46:29 +02:00
Nikolai Kosjar
2f3666a3f0 Ensure that project configuration did not change
Otherwise we might try to analyze invalid or vanished files.

Change-Id: I387dfb127618f2db21a538b07e1c152dbd026ca6
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2014-11-07 12:01:44 +02:00
Nikolai Kosjar
b9f9eb7ae5 Import Clang Static Analyzer plugin
This plugin adds "Clang Static Analyzer" to the Analyze mode, which
processes all implementation/source project files of the current
project. For this, it will call the clang executable for each file.

The found diagnostics will be displayed in a view similar to the one
used in "Valgrind Memory Analyzer".

The user can specify the clang executable to use and the number of
concurrent processes to launch in Menu: Tools > Options > Analyzer >
Clang Static Analyzer.

Main TODOs:

 * Fiddle around the appropriate command line options, currently only
   defines and include paths are passed on.

 * Tests on Windows / OS X.

 * Remove dependency to clangcodemodel by moving the functions that
   create command line arguments to CppTools. Mostly they are not even
   specific to clang (but would also work with gcc).

 * Maybe limit to a range of tested clang versions.

 * How to deal with directory containing all the log files after the
   user starts a new run or Creator is shut down? (delete it? leave it
   there? make it configurable?).

 * Find out how to properly integrate the tests.

Imaginable future additions:

 * Adding a button to load result/log files from a directory, e.g. if
   the user used the 'scan-build' approach.

 * Adding a button with a filter menu in order to display only
   diagnostics from certain categories, similar to "Valgrind Memory
   Analyzer".

Change-Id: I6aeb5dfdbdfa239a06c03dd8759a983df71b77ea
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2014-10-16 13:36:09 +03:00