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:
@@ -1390,7 +1390,7 @@ void QmakeBuildSystem::testToolChain(ToolChain *tc, const FilePath &path) const
|
||||
const Utils::FilePath expected = tc->compilerCommand();
|
||||
Environment env = buildConfiguration()->environment();
|
||||
|
||||
if (env.isSameExecutable(path.toString(), expected.toString()))
|
||||
if (tc->matchesCompilerCommand(expected, env))
|
||||
return;
|
||||
const QPair<Utils::FilePath, Utils::FilePath> pair = qMakePair(expected, path);
|
||||
if (m_toolChainWarnings.contains(pair))
|
||||
|
||||
Reference in New Issue
Block a user