From 337d48ca9253b45e392068796974c0ac014c5be3 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 30 Nov 2022 12:22:20 +0100 Subject: [PATCH] ProParser: Prefix mkspecs with remote roots When needed. Change-Id: Ibb159ce2513eb0d4023565dd11bc4c7dff5d0ec2 Reviewed-by: Christian Stenger Reviewed-by: Qt CI Bot Reviewed-by: --- src/shared/proparser/qmakeevaluator.cpp | 5 +++-- src/shared/proparser/qmakeglobals.cpp | 14 ++++++++++++++ src/shared/proparser/qmakeglobals.h | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/shared/proparser/qmakeevaluator.cpp b/src/shared/proparser/qmakeevaluator.cpp index b98c0523faa..1a58ab97c8d 100644 --- a/src/shared/proparser/qmakeevaluator.cpp +++ b/src/shared/proparser/qmakeevaluator.cpp @@ -1480,8 +1480,9 @@ void QMakeEvaluator::updateMkspecPaths() if (!m_sourceRoot.isEmpty()) ret << m_sourceRoot + concat; - ret << m_option->propertyValue(ProKey("QT_HOST_DATA/get")) + concat; - ret << m_option->propertyValue(ProKey("QT_HOST_DATA/src")) + concat; + const QString root = m_option->deviceRoot(); + ret << root + m_option->propertyValue(ProKey("QT_HOST_DATA/get")) + concat; + ret << root + m_option->propertyValue(ProKey("QT_HOST_DATA/src")) + concat; ret.removeDuplicates(); m_mkspecPaths = ret; diff --git a/src/shared/proparser/qmakeglobals.cpp b/src/shared/proparser/qmakeglobals.cpp index 79fa9ff669a..97b28a15ea5 100644 --- a/src/shared/proparser/qmakeglobals.cpp +++ b/src/shared/proparser/qmakeglobals.cpp @@ -225,6 +225,20 @@ void QMakeGlobals::setDirectories(const QString &input_dir, const QString &outpu } } +QString QMakeGlobals::deviceRoot() const +{ + static const QString specialRoot = QDir::rootPath() + "__qtc_devices__/"; + if (!build_root.startsWith(specialRoot)) + return {}; + int pos = build_root.indexOf('/', specialRoot.size()); + if (pos == -1) + return {}; + pos = build_root.indexOf('/', pos + 1); + if (pos == -1) + return {}; + return build_root.left(pos + 1); +} + QString QMakeGlobals::shadowedPath(const QString &fileName) const { if (source_root.isEmpty()) diff --git a/src/shared/proparser/qmakeglobals.h b/src/shared/proparser/qmakeglobals.h index b2f62c1f544..110c9d553fd 100644 --- a/src/shared/proparser/qmakeglobals.h +++ b/src/shared/proparser/qmakeglobals.h @@ -120,6 +120,7 @@ public: QString expandEnvVars(const QString &str) const; QString shadowedPath(const QString &fileName) const; QStringList splitPathList(const QString &value) const; + QString deviceRoot() const; private: QString getEnv(const QString &) const;