diff --git a/devlib/devlib.pro b/devlib/devlib.pro index e5503fb..5c90655 100644 --- a/devlib/devlib.pro +++ b/devlib/devlib.pro @@ -10,6 +10,9 @@ TARGET = devlib TEMPLATE = lib CONFIG += c++14 staticlib +# Qt 6.10.2 bug: qyieldcpu.h calls __yield() on ARM64 without including +macx: QMAKE_CXXFLAGS += "-include arm_acle.h" + # The following define makes your compiler emit warnings if you use # any feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the diff --git a/devlib/native/linux_native.cpp b/devlib/native/linux_native.cpp index 979ec75..72913a8 100644 --- a/devlib/native/linux_native.cpp +++ b/devlib/native/linux_native.cpp @@ -51,7 +51,7 @@ namespace linutil { if (::close(fd) == -1) { auto errnoCache = errno; linutil::errnoWarning(__PRETTY_FUNCTION__, - QString("can not close handle ").append(fd), + QString("can not close handle ").append(QString::number(fd)), errnoCache); } } diff --git a/devlib/native/macos_utils/macos_utils.cpp b/devlib/native/macos_utils/macos_utils.cpp index e408a10..7669bcd 100644 --- a/devlib/native/macos_utils/macos_utils.cpp +++ b/devlib/native/macos_utils/macos_utils.cpp @@ -114,7 +114,7 @@ namespace macos_utils { { auto usbPortsInHex = QString{locationID}.remove(0,2) // remove leading bus number .remove("0") // remove trailing zeros - .split("", QString::SkipEmptyParts); + .split("", Qt::SkipEmptyParts); auto usbPorts = QStringList{}; std::transform(usbPortsInHex.cbegin(), usbPortsInHex.cend(), diff --git a/devlib/native/macosx_native.cpp b/devlib/native/macosx_native.cpp index 614231e..75965a8 100644 --- a/devlib/native/macosx_native.cpp +++ b/devlib/native/macosx_native.cpp @@ -15,7 +15,7 @@ auto devlib::native::devicePartitions(QString const& devicePath) qCDebug(macos_utils::macxlog()) << "Run 'diskutil list -plist'"; QProcess diskutil; - diskutil.start("diskutil list -plist", QIODevice::ReadOnly); + diskutil.start("diskutil", {"list", "-plist"}, QIODevice::ReadOnly); diskutil.waitForFinished(); if (diskutil.error() != QProcess::ProcessError::UnknownError) { @@ -173,7 +173,7 @@ bool devlib::native::umountDisk(QString const & devicePath) bool devlib::native::mount(const QString &dev, const QString &path) { QProcess mount; - mount.start(QString("mount -t msdos %1 %2").arg(dev).arg(path)); + mount.start("mount", {"-t", "msdos", dev, path}); mount.waitForFinished(); return mount.exitCode() == 0; } diff --git a/devlib/native/win_native.cpp b/devlib/native/win_native.cpp index f865858..f3791ee 100644 --- a/devlib/native/win_native.cpp +++ b/devlib/native/win_native.cpp @@ -14,6 +14,7 @@ #include #include +#include namespace winutil { Q_LOGGING_CATEGORY(winlog, "windows_native"); @@ -161,11 +162,11 @@ namespace winutil { static auto extractUSBPorts(QString const& locationPath) { QString ports = ""; - QRegExp usbPort("USB\\((\\d+)"); - int pos = 0; - while ((pos = usbPort.indexIn(locationPath, pos)) != -1) { - ports += QString(".") + usbPort.cap(1); - pos += usbPort.matchedLength(); + QRegularExpression usbPort("USB\\((\\d+)"); + auto it = usbPort.globalMatch(locationPath); + while (it.hasNext()) { + auto match = it.next(); + ports += QString(".") + match.captured(1); } return ports; }