diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp index b07802d797e..a8896b45654 100644 --- a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp +++ b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp @@ -22,6 +22,12 @@ #include #include +#include +#include +#include +#include +#include + 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,