From ae3b4f1a061149c5bda15b8ff8d62939719f338f Mon Sep 17 00:00:00 2001
From: Eike Ziller <eike.ziller@theqtcompany.com>
Date: Fri, 13 May 2016 14:53:50 +0200
Subject: [PATCH] Linux deployment: Only add RPATH to Qt if necessary

Don't try to add an RPATH to Qt if the library/executable
does not link to Qt. Chances are, that the reserved space
for the RPATH is too short in that case.

Change-Id: Ie8d50ede43d19236611fe56667995e58606062db
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
---
 scripts/common.py | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/scripts/common.py b/scripts/common.py
index fd724f1e94a..22fcca98720 100644
--- a/scripts/common.py
+++ b/scripts/common.py
@@ -125,15 +125,18 @@ def fix_rpaths(path, qt_deploy_path, qt_install_info, chrpath=None):
         new_rpath = filter(lambda path: not path.startswith(qt_install_prefix) and not path.startswith(qt_install_libs),
                            rpath)
 
-        # add Qt RPATH if necessary
-        relative_path = os.path.relpath(qt_deploy_path, os.path.dirname(filepath))
-        if relative_path == '.':
-            relative_path = ''
-        else:
-            relative_path = '/' + relative_path
-        qt_rpath = '$ORIGIN' + relative_path
-        if not any((path == qt_rpath) for path in rpath):
-            new_rpath.append(qt_rpath)
+        # check for Qt linking
+        lddOutput = subprocess.check_output(['ldd', filepath])
+        if lddOutput.find('libQt5') >= 0 or lddOutput.find('libicu') >= 0:
+            # add Qt RPATH if necessary
+            relative_path = os.path.relpath(qt_deploy_path, os.path.dirname(filepath))
+            if relative_path == '.':
+                relative_path = ''
+            else:
+                relative_path = '/' + relative_path
+            qt_rpath = '$ORIGIN' + relative_path
+            if not any((path == qt_rpath) for path in rpath):
+                new_rpath.append(qt_rpath)
 
         # change RPATH
         if len(new_rpath) > 0:
-- 
GitLab