forked from qt-creator/qt-creator
MsvcToolChain: Introduce changeVcVarsAllCall
In order to avoid code duplication in followup patches a function to set the vcvars path and its arguments was introduced. It also takes care of running the environment modification watcher. Change-Id: I37dcb0a448bfac070267fdab8adefa074a3447fb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -1228,6 +1228,19 @@ IOutputParser *MsvcToolChain::outputParser() const
|
|||||||
return new MsvcParser;
|
return new MsvcParser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MsvcToolChain::changeVcVarsCall(const QString &varsBat, const QString &varsBatArg)
|
||||||
|
{
|
||||||
|
m_vcvarsBat = varsBat;
|
||||||
|
m_varsBatArg = varsBatArg;
|
||||||
|
|
||||||
|
if (!varsBat.isEmpty()) {
|
||||||
|
initEnvModWatcher(Utils::runAsync(envModThreadPool(),
|
||||||
|
&ClangClToolChain::environmentModifications,
|
||||||
|
m_vcvarsBat,
|
||||||
|
m_varsBatArg));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
// MsvcBasedToolChainConfigWidget: Creates a simple GUI without error label
|
// MsvcBasedToolChainConfigWidget: Creates a simple GUI without error label
|
||||||
// to display name and varsBat. Derived classes should add the error label and
|
// to display name and varsBat. Derived classes should add the error label and
|
||||||
@@ -1563,18 +1576,12 @@ void ClangClToolChain::resetMsvcToolChain(const MsvcToolChain *base)
|
|||||||
{
|
{
|
||||||
if (!base) {
|
if (!base) {
|
||||||
m_abi = Abi();
|
m_abi = Abi();
|
||||||
m_vcvarsBat.clear();
|
changeVcVarsCall("");
|
||||||
setVarsBatArg("");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
m_abi = base->targetAbi();
|
|
||||||
m_vcvarsBat = base->varsBat();
|
|
||||||
setVarsBatArg(base->varsBatArg());
|
|
||||||
|
|
||||||
initEnvModWatcher(Utils::runAsync(envModThreadPool(),
|
m_abi = base->targetAbi();
|
||||||
&ClangClToolChain::environmentModifications,
|
changeVcVarsCall(base->varsBat(), base->varsBatArg());
|
||||||
m_vcvarsBat,
|
|
||||||
base->varsBatArg()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ClangClToolChain::operator==(const ToolChain &other) const
|
bool ClangClToolChain::operator==(const ToolChain &other) const
|
||||||
|
@@ -100,6 +100,7 @@ public:
|
|||||||
QString varsBatArg() const { return m_varsBatArg; }
|
QString varsBatArg() const { return m_varsBatArg; }
|
||||||
QString varsBat() const { return m_vcvarsBat; }
|
QString varsBat() const { return m_vcvarsBat; }
|
||||||
void setVarsBatArg(const QString &varsBA) { m_varsBatArg = varsBA; }
|
void setVarsBatArg(const QString &varsBA) { m_varsBatArg = varsBA; }
|
||||||
|
void changeVcVarsCall(const QString &varsBat, const QString &varsBatArgs = QString());
|
||||||
|
|
||||||
bool operator==(const ToolChain &) const override;
|
bool operator==(const ToolChain &) const override;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user