forked from qt-creator/qt-creator
macOS: Fix importing command line builds with CMake
When configuring a CMake project on the command line, CMake will (correctly) find and use the compiler from the current developer directory, usually somewhere in /Applications/Xcode.app/Contents/Developer But Qt Creator auto-detects and sets up the compiler /usr/bin/clang(++) for desktop kits. This leads to a compiler mismatch between kits and the imported build, and to new kits registered in Qt Creator for the import. Since /usr/bin/clang(++) is just a thin wrapper that resolves to the compiler in the current developer directory, resolve that in Qt Creator with "xcrun -f <command>" too (caching the result), and include that when comparing toolchains for importing builds. Fixes: QTCREATORBUG-27591 Change-Id: I301e2a4e267450b488b49d0c32d4ce89001bb5ec Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -343,6 +343,11 @@ void ToolChain::setCompilerCommand(const FilePath &command)
|
||||
toolChainUpdated();
|
||||
}
|
||||
|
||||
bool ToolChain::matchesCompilerCommand(const Utils::FilePath &command, const Environment &env) const
|
||||
{
|
||||
return env.isSameExecutable(compilerCommand().toString(), command.toString());
|
||||
}
|
||||
|
||||
void ToolChain::setCompilerCommandKey(const QString &commandKey)
|
||||
{
|
||||
d->m_compilerCommandKey = commandKey;
|
||||
|
||||
Reference in New Issue
Block a user