From 81f7325a0c442824946f2a662f0e00d10bc06ab3 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 15 Jul 2024 14:30:39 +0200 Subject: [PATCH] macOS: Remove code handling Qt Creator running under Rosetta MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove code that was added to handle the case of Qt Creator running as an Intel binary on ARM Macs, which required some passing of flags to qmake/CMake/LLDB. Nowadays, Qt Creator can be built for the corresponding architecture (and by default we provide universal binaries). Partially reverts a71d725e46cf694867400be2bd079b699e62301a Change-Id: I842f85b85a26d09cff72199ae86c602fd8f14e33 Reviewed-by: Tor Arne Vestbø --- src/libs/utils/hostosinfo.cpp | 11 ---------- src/libs/utils/hostosinfo.h | 2 -- .../cmakebuildconfiguration.cpp | 21 +++++-------------- src/plugins/debugger/lldb/lldbengine.cpp | 5 +---- src/plugins/qmakeprojectmanager/qmakestep.cpp | 6 ------ 5 files changed, 6 insertions(+), 39 deletions(-) diff --git a/src/libs/utils/hostosinfo.cpp b/src/libs/utils/hostosinfo.cpp index cbdb3525ae1..4d24b2307f1 100644 --- a/src/libs/utils/hostosinfo.cpp +++ b/src/libs/utils/hostosinfo.cpp @@ -36,17 +36,6 @@ OsArch HostOsInfo::hostArchitecture() return arch; } -bool HostOsInfo::isRunningUnderRosetta() -{ -#ifdef Q_OS_MACOS - int translated = 0; - auto size = sizeof(translated); - if (sysctlbyname("sysctl.proc_translated", &translated, &size, nullptr, 0) == 0) - return translated; -#endif - return false; -} - void HostOsInfo::setOverrideFileNameCaseSensitivity(Qt::CaseSensitivity sensitivity) { m_useOverrideFileNameCaseSensitivity = true; diff --git a/src/libs/utils/hostosinfo.h b/src/libs/utils/hostosinfo.h index fa153f24d54..144d5d95484 100644 --- a/src/libs/utils/hostosinfo.h +++ b/src/libs/utils/hostosinfo.h @@ -55,8 +55,6 @@ public: #endif } - static bool isRunningUnderRosetta(); - static QString withExecutableSuffix(const QString &executable) { return OsSpecificAspects::withExecutableSuffix(hostOs(), executable); diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 5fc11644137..3e219a23725 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -1455,20 +1455,11 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id) return QString(); }); - macroExpander()->registerVariable(CMAKE_OSX_ARCHITECTURES_FLAG, - Tr::tr("The CMake flag for the architecture on macOS"), - [target] { - if (HostOsInfo::isRunningUnderRosetta()) { - if (auto *qt = QtSupport::QtKitAspect::qtVersion(target->kit())) { - const Abis abis = qt->qtAbis(); - for (const Abi &abi : abis) { - if (abi.architecture() == Abi::ArmArchitecture) - return QLatin1String("-DCMAKE_OSX_ARCHITECTURES=arm64"); - } - } - } - return QLatin1String(); - }); + macroExpander()->registerVariable( + CMAKE_OSX_ARCHITECTURES_FLAG, Tr::tr("The CMake flag for the architecture on macOS"), [] { + // TODO deprecated since Qt Creator 15, remove later + return QString(); + }); macroExpander()->registerVariable(QT_QML_DEBUG_FLAG, Tr::tr("The CMake flag for QML debugging, if enabled"), [this] { @@ -1568,8 +1559,6 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id) cmd.addArg("%{" + QLatin1String(DEVELOPMENT_TEAM_FLAG) + "}"); cmd.addArg("%{" + QLatin1String(PROVISIONING_PROFILE_FLAG) + "}"); } - } else if (device && device->osType() == Utils::OsTypeMac) { - cmd.addArg("%{" + QLatin1String(CMAKE_OSX_ARCHITECTURES_FLAG) + "}"); } if (isWebAssembly(k) || isQnx(k) || isWindowsARM64(k)) { diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index e234aefc216..3fb47e92163 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -211,10 +211,7 @@ void LldbEngine::setupEngine() if (runParameters().debugger.workingDirectory.isDir()) m_lldbProc.setWorkingDirectory(runParameters().debugger.workingDirectory); - if (HostOsInfo::isRunningUnderRosetta()) - m_lldbProc.setCommand(CommandLine("/usr/bin/arch", {"-arm64", lldbCmd.toString()})); - else - m_lldbProc.setCommand(CommandLine(lldbCmd)); + m_lldbProc.setCommand(CommandLine(lldbCmd)); m_lldbProc.start(); } diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index fc8f446bf3e..3ab605595e2 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -648,12 +648,6 @@ void QMakeStep::updateAbiWidgets() } } } - } else if (qtVersion->hasAbi(Abi::DarwinOS) && !isIos(target()->kit()) && HostOsInfo::isRunningUnderRosetta()) { - // Automatically select arm64 when running under Rosetta - for (const Abi &abi : abis) { - if (abi.architecture() == Abi::ArmArchitecture) - selectedAbis.append(abi.param()); - } } }