summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt_functions.prf
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/features/qt_functions.prf')
-rw-r--r--mkspecs/features/qt_functions.prf28
1 files changed, 18 insertions, 10 deletions
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index 389f2418ad..aaf7a4710e 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -121,15 +121,6 @@ defineTest(qtAddModule) {
contains(MODULE_CONFIG, staticlib): \
PRE_TARGETDEPS *= $$MODULE_LIBS/$${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB}
-
- # Make sure we can link to uninstalled libraries
- !isEmpty(MODULE_LIBS) {
- for(rpl, QT.$${1}.rpath_link): \
- QMAKE_RPATHLINKDIR *= $$rpl
- !auto_use_privates:!isEqual(2, UsePrivate): \
- for(rpl, QT.$${1}.rpath_link_private): \
- QMAKE_RPATHLINKDIR *= $$rpl
- }
}
# Only link to this module if a libs directory is set, else this is just a module
# to give access to sources or include files, and not for linking.
@@ -190,11 +181,28 @@ defineTest(qtAddModules) {
export(using_privates)
}
+defineTest(qtAddRpathLink) {
+ # -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 appear here. However, their private dependencies'
+ # paths OTOH need to be put there.
+ pubqt = $$replace(1, -private$, )
+ pubdep = $$resolve_depends(pubqt, "QT.")
+ privdep = $$resolve_depends(pubqt, "QT.", ".depends" ".private_depends" ".run_depends")
+ privdep -= $$pubdep
+ rpaths =
+ for(dep, privdep): \
+ rpaths += $$eval(QT.$${dep}.libs)
+ QMAKE_RPATHLINKDIR *= $$unique(rpaths)
+ export(QMAKE_RPATHLINKDIR)
+}
+
# variable, default
defineTest(qtPrepareTool) {
$$1 = $$eval(QT_TOOL.$${2}.command)
isEmpty($$1) {
- $$1 = $$[QT_HOST_BINS/get]/$$2
+ $$1 = $$[QT_HOST_BINS]/$$2
contains(QMAKE_HOST.os, Windows):!contains($$1, .*\\.(exe|bat)$) {
exists($$eval($$1).bat) {
$$1 = $$eval($$1).bat