summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mkspecs/features/qt.prf15
-rw-r--r--mkspecs/features/qt_build_extra.prf11
-rw-r--r--mkspecs/features/qt_functions.prf13
3 files changed, 24 insertions, 15 deletions
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
index f62b6bb139..5cc176c2ae 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
@@ -160,21 +160,8 @@ qt_module_deps = $$resolve_depends(qt_module_deps, "QT.")
contains(qt_module_deps, core) {
relative_qt_rpath:!isEmpty(QMAKE_REL_RPATH_BASE):contains(INSTALLS, target):\
isEmpty(target.files):isEmpty(target.commands):isEmpty(target.extra) {
- mac {
- if(equals(TEMPLATE, app):app_bundle)|\
- if(equals(TEMPLATE, lib):plugin:plugin_bundle) {
- ios: binpath = $$target.path/$${TARGET}.app
- else: binpath = $$target.path/$${TARGET}.app/Contents/MacOS
- } else: equals(TEMPLATE, lib):!plugin:lib_bundle {
- binpath = $$target.path/$${TARGET}.framework/Versions/Current
- } else {
- binpath = $$target.path
- }
- } else {
- binpath = $$target.path
- }
# NOT the /dev property, as INSTALLS use host paths
- QMAKE_RPATHDIR += $$relative_path($$[QT_INSTALL_LIBS], $$binpath)
+ QMAKE_RPATHDIR += $$relative_path($$[QT_INSTALL_LIBS], $$qtRelativeRPathBase())
} else {
QMAKE_RPATHDIR += $$[QT_INSTALL_LIBS/dev]
}
diff --git a/mkspecs/features/qt_build_extra.prf b/mkspecs/features/qt_build_extra.prf
index a346525e66..378f5bbd7c 100644
--- a/mkspecs/features/qt_build_extra.prf
+++ b/mkspecs/features/qt_build_extra.prf
@@ -28,4 +28,13 @@ LIBS += $$EXTRA_LIBS
# Static libs need no rpaths
static: return()
-QMAKE_RPATHDIR += $$EXTRA_RPATHS
+for (rp, EXTRA_RPATHS) {
+ absrp = $$absolute_path($$rp, $$[QT_INSTALL_LIBS])
+ !isEqual(absrp, $$rp) {
+ isEmpty(QMAKE_REL_RPATH_BASE)|!contains(INSTALLS, target): \
+ rp = $$absrp
+ else: \
+ rp = $$relative_path($$absrp, $$qtRelativeRPathBase())
+ }
+ QMAKE_RPATHDIR += $$rp
+}
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index b2c2507807..86396958f1 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -32,6 +32,19 @@ defineReplace(qt5LibraryTarget) {
return($$LIBRARY_NAME)
}
+defineReplace(qtRelativeRPathBase) {
+ darwin {
+ if(equals(TEMPLATE, app):app_bundle)|\
+ if(equals(TEMPLATE, lib):plugin:plugin_bundle) {
+ ios: return($$target.path/$${TARGET}.app)
+ return($$target.path/$${TARGET}.app/Contents/MacOS)
+ }
+ equals(TEMPLATE, lib):!plugin:lib_bundle: \
+ return($$target.path/$${TARGET}.framework/Versions/Current)
+ }
+ return($$target.path)
+}
+
defineTest(qtAddLibrary) {
warning("qtAddLibrary() is deprecated. Use QT+= instead.")