From bb00d3fb0ed13d005aab567879c3420879c08492 Mon Sep 17 00:00:00 2001 From: Ivan Donchevskii Date: Fri, 30 Nov 2018 11:39:39 +0100 Subject: [PATCH] Clang: Fix clang-cl environment The environment depends on vcvars script and with current way of clang-cl initialization we need to call it again when vcvars are updated. Change-Id: I5ccf34861b711c2514203408db62e2a134592721 Reviewed-by: Tobias Hunger Reviewed-by: Nikolai Kosjar --- src/plugins/projectexplorer/msvctoolchain.cpp | 4 ++++ src/plugins/projectexplorer/msvctoolchain.h | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp index 7638884aad6..5defb0b7449 100644 --- a/src/plugins/projectexplorer/msvctoolchain.cpp +++ b/src/plugins/projectexplorer/msvctoolchain.cpp @@ -1102,6 +1102,10 @@ void ClangClToolChain::resetMsvcToolChain(const MsvcToolChain *base) m_abi = base->targetAbi(); m_vcvarsBat = base->varsBat(); setVarsBatArg(base->varsBatArg()); + + initEnvModWatcher(Utils::runAsync(envModThreadPool(), + &ClangClToolChain::environmentModifications, + m_vcvarsBat, base->varsBatArg())); } bool ClangClToolChain::operator ==(const ToolChain &other) const diff --git a/src/plugins/projectexplorer/msvctoolchain.h b/src/plugins/projectexplorer/msvctoolchain.h index c1482b95b3a..73c683daf96 100644 --- a/src/plugins/projectexplorer/msvctoolchain.h +++ b/src/plugins/projectexplorer/msvctoolchain.h @@ -97,7 +97,6 @@ protected: LanguageVersion msvcLanguageVersion(const Core::Id &language, const Macros ¯os) const override; -private: struct GenerateEnvResult { Utils::optional error; @@ -106,6 +105,8 @@ private: static void environmentModifications(QFutureInterface &future, QString vcvarsBat, QString varsBatArg); void initEnvModWatcher(const QFuture &future); + +private: void updateEnvironmentModifications(QList modifications); mutable QList m_environmentModifications;