forked from qt-creator/qt-creator
ProjectExplorer: Fix Clang toolchain setup on Windows
Clang toolchain in gcc mode requires mingw sysroot and target in order to be used properly on Windows. Requires Qt >= 5.12 to work properly (it has the required mkspec). Change-Id: I4e5a734c699ac98740c0d50560aa7b69751ae58c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -145,8 +145,14 @@ QMakeStepConfig QMakeStep::deducedArguments() const
|
||||
ProjectExplorer::ToolChain *tc
|
||||
= ProjectExplorer::ToolChainKitInformation::toolChain(kit, ProjectExplorer::Constants::CXX_LANGUAGE_ID);
|
||||
ProjectExplorer::Abi targetAbi;
|
||||
if (tc)
|
||||
if (tc) {
|
||||
targetAbi = tc->targetAbi();
|
||||
if (HostOsInfo::isWindowsHost()
|
||||
&& tc->typeId() == ProjectExplorer::Constants::CLANG_TOOLCHAIN_TYPEID) {
|
||||
config.sysRoot = ProjectExplorer::SysRootKitInformation::sysRoot(kit).toString();
|
||||
config.targetTriple = tc->originalTargetTriple();
|
||||
}
|
||||
}
|
||||
|
||||
BaseQtVersion *version = QtKitInformation::qtVersion(target()->kit());
|
||||
|
||||
@@ -902,5 +908,16 @@ QStringList QMakeStepConfig::toArguments() const
|
||||
if (separateDebugInfo)
|
||||
arguments << "CONFIG+=force_debug_info" << "CONFIG+=separate_debug_info";
|
||||
|
||||
if (!sysRoot.isEmpty()) {
|
||||
arguments << ("QMAKE_CFLAGS+=--sysroot=\"" + sysRoot + "\"");
|
||||
arguments << ("QMAKE_CXXFLAGS+=--sysroot=\"" + sysRoot + "\"");
|
||||
arguments << ("QMAKE_LFLAGS+=--sysroot=\"" + sysRoot + "\"");
|
||||
if (!targetTriple.isEmpty()) {
|
||||
arguments << ("QMAKE_CFLAGS+=--target=" + targetTriple);
|
||||
arguments << ("QMAKE_CXXFLAGS+=--target=" + targetTriple);
|
||||
arguments << ("QMAKE_LFLAGS+=--target=" + targetTriple);
|
||||
}
|
||||
}
|
||||
|
||||
return arguments;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user