summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Strzelecki <ono@java.pl>2014-08-06 18:54:03 +0200
committerJake Petroules <jake.petroules@petroules.com>2014-11-01 19:27:23 +0100
commitc0a54efc4091b365ffac09fc2827cf92f849d698 (patch)
treeb2ac95c8b33127df3baa8e07623175daa6eeb2b6
parente0676a954c3a8375b30e6eb76450e2222de12079 (diff)
Build Qt for OS X and iOS with relative rpath
Defaulting to absolute_library_soname on configure -rpath is no longer necessary as now we support @rpath install name ids on OS X and iOS. This also sets QMAKE_SONAME_PREFIX to @rpath for Qt modules when built with rpath configuration. This makes Qt libraries relocatable on OS X. Qt SDK is not yet relocatable though, because plugin location (including cocoa plugin) is still resolved using absolute path (see QTBUG-14150), also there are several absolute paths hardcoded in qmake mkspecs pri files. Task-number: QTBUG-31814 Change-Id: Ie9dffefcd2a946c1580293d433621c1adb7e06c4 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
-rwxr-xr-xconfigure6
-rw-r--r--mkspecs/features/qt_build_config.prf6
-rw-r--r--mkspecs/features/qt_module.prf3
3 files changed, 4 insertions, 11 deletions
diff --git a/configure b/configure
index 7d6ba9f4d6..1bd7db88b3 100755
--- a/configure
+++ b/configure
@@ -5783,11 +5783,7 @@ fi
[ '!' -z "$INCLUDES" ] && QMakeVar add INCLUDEPATH "$INCLUDES"
[ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
-if [ "$XPLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
- if [ "$CFG_RPATH" = "yes" ]; then
- QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
- fi
-elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
+if [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
if [ -n "$RPATH_FLAGS" ]; then
echo
echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf
index 42046c238a..7197f84c9a 100644
--- a/mkspecs/features/qt_build_config.prf
+++ b/mkspecs/features/qt_build_config.prf
@@ -52,12 +52,6 @@ QMAKE_DIR_REPLACE_SANE = PRECOMPILED_DIR OBJECTS_DIR MOC_DIR RCC_DIR UI_DIR
unset(modpath)
}
-mac {
- !isEmpty(QMAKE_RPATHDIR){
- CONFIG += absolute_library_soname
- }
-}
-
cross_compile: \
CONFIG += force_bootstrap
diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
index 8599a47ecd..7d47caef46 100644
--- a/mkspecs/features/qt_module.prf
+++ b/mkspecs/features/qt_module.prf
@@ -111,6 +111,9 @@ mac:CONFIG(shared, static|shared):contains(QT_CONFIG, qt_framework) {
}
}
+mac:contains(QT_CONFIG, rpath): \
+ QMAKE_SONAME_PREFIX = @rpath
+
mac {
CONFIG += explicitlib
macx-g++ {