From a04cc5b7e132482b8f715eccb1b2442d9d964bd1 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 21 Jan 2022 12:00:27 +0100 Subject: [PATCH] ProjectExplorer: Collect bad baremetal toolchains Extends 16ef8b6253. Change-Id: I51d16057b45f21f50453a1d54a8bed7915c4d053 Reviewed-by: hjk Reviewed-by: --- src/plugins/baremetal/iarewtoolchain.cpp | 6 +++++- src/plugins/baremetal/keiltoolchain.cpp | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/plugins/baremetal/iarewtoolchain.cpp b/src/plugins/baremetal/iarewtoolchain.cpp index 8114957efc4..a79a6380081 100644 --- a/src/plugins/baremetal/iarewtoolchain.cpp +++ b/src/plugins/baremetal/iarewtoolchain.cpp @@ -535,10 +535,14 @@ Toolchains IarToolChainFactory::autoDetectToolchains( Toolchains IarToolChainFactory::autoDetectToolchain(const Candidate &candidate, Id languageId) const { + if (ToolChainManager::isBadToolchain(candidate.compilerPath)) + return {}; const auto env = Environment::systemEnvironment(); const Macros macros = dumpPredefinedMacros(candidate.compilerPath, {}, languageId, env); - if (macros.isEmpty()) + if (macros.isEmpty()) { + ToolChainManager::addBadToolchain(candidate.compilerPath); return {}; + } const Abi abi = guessAbi(macros); const auto tc = new IarToolChain; diff --git a/src/plugins/baremetal/keiltoolchain.cpp b/src/plugins/baremetal/keiltoolchain.cpp index b91ce9d3861..39cac8a2ca9 100644 --- a/src/plugins/baremetal/keiltoolchain.cpp +++ b/src/plugins/baremetal/keiltoolchain.cpp @@ -681,13 +681,17 @@ Toolchains KeilToolChainFactory::autoDetectToolchains( Toolchains KeilToolChainFactory::autoDetectToolchain(const Candidate &candidate, Id language) const { + if (ToolChainManager::isBadToolchain(candidate.compilerPath)) + return {}; const auto env = Environment::systemEnvironment(); QStringList extraArgs; addDefaultCpuArgs(candidate.compilerPath, extraArgs); const Macros macros = dumpPredefinedMacros(candidate.compilerPath, extraArgs, env); - if (macros.isEmpty()) + if (macros.isEmpty()) { + ToolChainManager::addBadToolchain(candidate.compilerPath); return {}; + } const Abi abi = guessAbi(macros); const Abi::Architecture arch = abi.architecture();