forked from qt-creator/qt-creator
Toolchains: Better out-of-the-box support for the Intel C++ compiler
- Make sure it gets auto-detected on macOS, where the -dumpmachine option, while present and documented, doesn't print anything. - Do not call it "Linux ICC", as it's also available on macOS. There is no danger of confusion with the MSVC-based variant, as the respective UI elements are not present on Windows. Fixes: QTCREATORBUG-18304 Change-Id: Ibe70c618cf28ecfb105efefc3fe2b79814a0f0ce Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -63,8 +63,9 @@
|
||||
Windows applications on Windows. MinGW is
|
||||
distributed together with \QC and Qt installers for Windows.
|
||||
|
||||
\li Linux ICC (Intel C++ Compiler) is a group of C and C++ compilers
|
||||
for Linux.
|
||||
\li ICC (Intel C++ Compiler) is a group of C and C++ compilers.
|
||||
Only the GCC-compatible variant, available for Linux and \macos,
|
||||
is currently supported by \QC.
|
||||
|
||||
\li Clang is a C, C++, Objective C, and Objective C++ front-end for the
|
||||
LLVM compiler for Windows, Linux, and \macos.
|
||||
|
||||
@@ -221,8 +221,12 @@ static GccToolChain::DetectedAbisResult guessGccAbi(const FilePath &path, const
|
||||
QStringList arguments = extraArgs;
|
||||
arguments << "-dumpmachine";
|
||||
QString machine = QString::fromLocal8Bit(runGcc(path, arguments, env)).trimmed();
|
||||
if (machine.isEmpty())
|
||||
if (machine.isEmpty()) {
|
||||
// ICC does not implement the -dumpmachine option on macOS.
|
||||
if (HostOsInfo::isMacHost() && (path.fileName() == "icc" || path.fileName() == "icpc"))
|
||||
return GccToolChain::DetectedAbisResult({Abi::hostAbi()});
|
||||
return GccToolChain::DetectedAbisResult(); // no need to continue if running failed once...
|
||||
}
|
||||
return GccToolChain::DetectedAbisResult(guessGccAbi(machine, macros), machine);
|
||||
}
|
||||
|
||||
@@ -1833,7 +1837,7 @@ QList<ToolChain *> MingwToolChainFactory::detectForImport(const ToolChainDescrip
|
||||
LinuxIccToolChain::LinuxIccToolChain() :
|
||||
GccToolChain(Constants::LINUXICC_TOOLCHAIN_TYPEID)
|
||||
{
|
||||
setTypeDisplayName(LinuxIccToolChainFactory::tr("Linux ICC"));
|
||||
setTypeDisplayName(LinuxIccToolChainFactory::tr("ICC"));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1874,7 +1878,7 @@ QStringList LinuxIccToolChain::suggestedMkspecList() const
|
||||
|
||||
LinuxIccToolChainFactory::LinuxIccToolChainFactory()
|
||||
{
|
||||
setDisplayName(tr("Linux ICC"));
|
||||
setDisplayName(tr("ICC"));
|
||||
setSupportedToolChainType(Constants::LINUXICC_TOOLCHAIN_TYPEID);
|
||||
setSupportedLanguages({Constants::CXX_LANGUAGE_ID, Constants::C_LANGUAGE_ID});
|
||||
setToolchainConstructor([] { return new LinuxIccToolChain; });
|
||||
|
||||
Reference in New Issue
Block a user