summaryrefslogtreecommitdiff
path: root/src/rpath.pri
diff options
context:
space:
mode:
Diffstat (limited to 'src/rpath.pri')
-rw-r--r--src/rpath.pri20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/rpath.pri b/src/rpath.pri
index 0d8911a4d9..ef0a6b773b 100644
--- a/src/rpath.pri
+++ b/src/rpath.pri
@@ -1,13 +1,19 @@
-macx {
- QMAKE_LFLAGS += -Wl,-rpath,@loader_path/../,-rpath,@executable_path/../
+# set RPATH_BASE to the IDE_..._PATH of the target
+
+isEmpty(RPATH_BASE): \
+ error("You must set RPATH_BASE before including rpath.pri")
+
+REL_PATH_TO_LIBS = $$relative_path($$IDE_LIBRARY_PATH, $$RPATH_BASE)
+REL_PATH_TO_PLUGINS = $$relative_path($$IDE_PLUGIN_PATH, $$RPATH_BASE)
+
+macos {
+ QMAKE_LFLAGS += -Wl,-rpath,@loader_path/$$REL_PATH_TO_LIBS,-rpath,@loader_path/$$REL_PATH_TO_PLUGINS
} else:linux-* {
- #do the rpath by hand since it's not possible to use ORIGIN in QMAKE_RPATHDIR
- # this expands to $ORIGIN (after qmake and make), it does NOT read a qmake var
QMAKE_RPATHDIR += \$\$ORIGIN
- QMAKE_RPATHDIR += \$\$ORIGIN/..
- QMAKE_RPATHDIR += \$\$ORIGIN/../$$IDE_LIBRARY_BASENAME/qtcreator
- IDE_PLUGIN_RPATH = $$join(QMAKE_RPATHDIR, ":")
+ QMAKE_RPATHDIR += \$\$ORIGIN/$$REL_PATH_TO_LIBS
+ QMAKE_RPATHDIR += \$\$ORIGIN/$$REL_PATH_TO_PLUGINS
+ IDE_PLUGIN_RPATH = $$join(QMAKE_RPATHDIR, ":")
QMAKE_LFLAGS += -Wl,-z,origin \'-Wl,-rpath,$${IDE_PLUGIN_RPATH}\'
QMAKE_RPATHDIR =
}