From 3f9b2871b633c055b194cac9ea4733c0cbe8f8c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Fri, 6 Jul 2018 10:00:32 +0200 Subject: macdeployqt: process rpaths in deterministic order MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use QList instead of QSet to make macdeployqt process rpaths in deterministic order instead of arbitrary order based on the QString hash value. Make sure that the fallback QLibraryInfo::LibrariesPath is added last in order to give preference to the actual rpaths. (Use of LibrariesPath was added in an earlier commit to cover cases where the app binary did not have an rpath set that points to the Qt libs) Task-number: QTBUG-53533 Change-Id: Ic8d91e196f50b8b43e6c09d5c64b7cdb01b8a8b2 Reviewed-by: Tor Arne Vestbø --- src/macdeployqt/shared/shared.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/macdeployqt/shared/shared.h') diff --git a/src/macdeployqt/shared/shared.h b/src/macdeployqt/shared/shared.h index 15ff08430..8761fe8c0 100644 --- a/src/macdeployqt/shared/shared.h +++ b/src/macdeployqt/shared/shared.h @@ -101,7 +101,7 @@ public: QString qtPath; QString pluginPath; QStringList deployedFrameworks; - QSet rpathsUsed; + QList rpathsUsed; bool useLoaderPath; bool isFramework; bool isDebug; @@ -112,10 +112,10 @@ public: inline QDebug operator<<(QDebug debug, const ApplicationBundleInfo &info); OtoolInfo findDependencyInfo(const QString &binaryPath); -FrameworkInfo parseOtoolLibraryLine(const QString &line, const QString &appBundlePath, const QSet &rpaths, bool useDebugLibs); +FrameworkInfo parseOtoolLibraryLine(const QString &line, const QString &appBundlePath, const QList &rpaths, bool useDebugLibs); QString findAppBinary(const QString &appBundlePath); -QList getQtFrameworks(const QString &path, const QString &appBundlePath, const QSet &rpaths, bool useDebugLibs); -QList getQtFrameworks(const QStringList &otoolLines, const QString &appBundlePath, const QSet &rpaths, bool useDebugLibs); +QList getQtFrameworks(const QString &path, const QString &appBundlePath, const QList &rpaths, bool useDebugLibs); +QList getQtFrameworks(const QStringList &otoolLines, const QString &appBundlePath, const QList &rpaths, bool useDebugLibs); QString copyFramework(const FrameworkInfo &framework, const QString path); DeploymentInfo deployQtFrameworks(const QString &appBundlePath, const QStringList &additionalExecutables, bool useDebugLibs); DeploymentInfo deployQtFrameworks(QList frameworks,const QString &bundlePath, const QStringList &binaryPaths, bool useDebugLibs, bool useLoaderPath); -- cgit v1.2.3