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