aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2014-10-27 15:13:17 +0100
committerNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2014-10-27 16:22:14 +0200
commitc9feffd2a05d986185a0c7e5bd3b58d65b81c9df (patch)
tree6b5f86ba9dd7c0181db051e979b341d5de2311c3
parentc7c93810c403f4d2a936255953c70df32761cb23 (diff)
RunControlFactory: Limit to Clang/GCC toolchain
Change-Id: Ib50572a062f0bbe9950fee108b53ba8e7370f459 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp
index b07802d797..a8896b4565 100644
--- a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp
+++ b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp
@@ -22,6 +22,12 @@
#include <analyzerbase/analyzerruncontrol.h>
#include <analyzerbase/analyzerstartparameters.h>
+#include <projectexplorer/gcctoolchain.h>
+#include <projectexplorer/kit.h>
+#include <projectexplorer/kitinformation.h>
+#include <projectexplorer/target.h>
+#include <projectexplorer/toolchain.h>
+
using namespace Analyzer;
using namespace ProjectExplorer;
@@ -36,8 +42,16 @@ ClangStaticAnalyzerRunControlFactory::ClangStaticAnalyzerRunControlFactory(QObje
bool ClangStaticAnalyzerRunControlFactory::canRun(RunConfiguration *runConfiguration,
RunMode runMode) const
{
- Q_UNUSED(runConfiguration);
- return runMode == ClangStaticAnalyzerMode;
+ if (runMode != ClangStaticAnalyzerMode)
+ return false;
+
+ Target *target = runConfiguration->target();
+ QTC_ASSERT(target, return false);
+ Kit *kit = target->kit();
+ QTC_ASSERT(kit, return false);
+ ToolChain *toolChain = ToolChainKitInformation::toolChain(kit);
+ QTC_ASSERT(toolChain, return false);
+ return toolChain->type() == QLatin1String("clang") || toolChain->type() == QLatin1String("gcc");
}
RunControl *ClangStaticAnalyzerRunControlFactory::create(RunConfiguration *runConfiguration,