From 93f69366ebc45d5dd28a8667c495654d16d721df Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 4 Jun 2015 21:04:49 +0200 Subject: inline qtAddRpathLink() there is no particular reason to have it in qt_functions.prf. Change-Id: I88ed1ea937a9a88a4625a6de7bcd3a29957560da Reviewed-by: Joerg Bornemann --- mkspecs/features/qt.prf | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'mkspecs/features/qt.prf') diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 9eeb1bd76c..47f14c5017 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -53,7 +53,6 @@ qtAddModules(QT_PRIVATE, LIBS_PRIVATE) message("Running this project against other versions of the Qt modules may crash at any arbitrary point.") message("This is not a bug, but a result of using Qt internals. You have been warned!") } -qtAddRpathLink($$QT $$QT_PRIVATE) qt_module_deps = $$QT $$QT_PRIVATE qt_module_deps = $$replace(qt_module_deps, -private$, _private) @@ -82,6 +81,19 @@ qt_module_deps = $$resolve_depends(qt_module_deps, "QT.") } } +!isEmpty(QMAKE_LFLAGS_RPATHLINK):!contains(QT_CONFIG, static) { + # -rpath-link is used by the linker to find dependencies of dynamic + # libraries which were NOT specified on the command line. + # This means that paths of direct dependencies (QT & QT_PRIVATE) + # don't need to be listed, unlike their private dependencies' paths. + privdep = $$resolve_depends(qt_module_deps, "QT.", ".depends" ".run_depends") + privdep -= $$qt_module_deps + rpaths = + for(dep, privdep): \ + rpaths += $$eval(QT.$${dep}.libs) + QMAKE_RPATHLINKDIR *= $$unique(rpaths) +} + # static builds: link qml import plugins into the app. contains(qt_module_deps, qml): \ contains(QT_CONFIG, static):contains(TEMPLATE, .*app):!host_build:!no_import_scan { -- cgit v1.2.3