From d7229d4afca8da42762054ae41b9da611f44b5bd Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 8 Sep 2020 16:50:50 +0200 Subject: [PATCH] ProjectExplorer: Fix restoring parent toolchain ... for auto-detected clang toolchains on Windows. We must wait until toolchain loading has finished before determining whether the parent toolchain still exists. Change-Id: I4d9ed3e1d7df47dd4b2b408c70d796c8972c9a54 Reviewed-by: Orgad Shaneh --- src/plugins/projectexplorer/gcctoolchain.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp index 89ae6b17483..d812fb78c5a 100644 --- a/src/plugins/projectexplorer/gcctoolchain.cpp +++ b/src/plugins/projectexplorer/gcctoolchain.cpp @@ -1424,6 +1424,17 @@ void ClangToolChain::syncAutodetectedWithParentToolchains() QObject::disconnect(m_thisToolchainRemovedConnection); QObject::disconnect(m_mingwToolchainAddedConnection); + if (!ToolChainManager::isLoaded()) { + QObject::connect(ToolChainManager::instance(), &ToolChainManager::toolChainsLoaded, + [this, id = id()] { + if (ToolChain * const tc = ToolChainManager::findToolChain(id)) { + if (tc->typeId() == Constants::CLANG_TOOLCHAIN_TYPEID) + static_cast(tc)->syncAutodetectedWithParentToolchains(); + } + }); + return; + } + if (!mingwToolChainFromId(m_parentToolChainId)) { const QList mingwTCs = mingwToolChains(); m_parentToolChainId = mingwTCs.isEmpty() ? QByteArray() : mingwTCs.front()->id();