summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mkspecs/features/qt_module_fwdpri.prf7
-rw-r--r--mkspecs/features/qt_tool.prf13
2 files changed, 17 insertions, 3 deletions
diff --git a/mkspecs/features/qt_module_fwdpri.prf b/mkspecs/features/qt_module_fwdpri.prf
index 04d2d7771f..d400d273f8 100644
--- a/mkspecs/features/qt_module_fwdpri.prf
+++ b/mkspecs/features/qt_module_fwdpri.prf
@@ -32,9 +32,12 @@
privqt = $$replace(QT_PRIVATE, -private$, )
privdep = $$resolve_depends(privqt, "QT.")
rpaths =
+ pluginpath =
alldep = $$pubdep $$privdep
- for(dep, alldep): \ # Inherit link-rpaths from all our dependencies
+ for(dep, alldep) { # Inherit link-rpaths from all our dependencies
rpaths += $$eval(QT.$${dep}.rpath_link) $$eval(QT.$${dep}.rpath_link_private)
+ pluginpath += $$eval(QT.$${dep}.plugin_path) $$eval(QT.$${dep}.plugins)
+ }
privdep -= $$pubdep
for(dep, privdep): \ # Add our private dependencies' lib paths as new link-rpaths
rpaths += $$eval(QT.$${dep}.libs)
@@ -55,6 +58,7 @@
} else {
module_rpathlink_priv =
}
+ pluginpath = $$unique(pluginpath)
# Create a forwarding module .pri file
MODULE_FWD_PRI_CONT = \
@@ -67,6 +71,7 @@
$$module_rpathlink \
$$module_rpathlink_priv \
"QT.$${MODULE}.rpath = $$MODULE_INSTALL_LIBS" \
+ "QT.$${MODULE}.plugin_path = $$val_escape(pluginpath)" \
"include($$MODULE_PRI)"
write_file($$MODULE_FWD_PRI, MODULE_FWD_PRI_CONT)|error("Aborting.")
touch($$MODULE_FWD_PRI, $$MODULE_PRI)
diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf
index a43a1041b1..055cf1af71 100644
--- a/mkspecs/features/qt_tool.prf
+++ b/mkspecs/features/qt_tool.prf
@@ -38,12 +38,19 @@ INSTALLS += target
cmd = $$shell_path($$QMAKE_RESOLVED_TARGET)
deps = $$resolve_depends(QT, "QT.")
!isEmpty(deps) {
+ plugin_paths =
for(dep, deps) {
deppath += $$shell_path($$eval(QT.$${dep}.libs))
for(rpath, QT.$${dep}.rpath_link): \
deppath += $$shell_path($$rpath)
+ plugin_paths += $$eval(QT.$${dep}.plugin_path) $$eval(QT.$${dep}.plugins)
}
deppath = $$unique(deppath)
+ plugin_paths = $$unique(plugin_paths)
+ pluginpath =
+ for(ppath, plugin_paths): \
+ exists($$ppath): \
+ pluginpath += $$shell_path($$ppath)
equals(QMAKE_DIR_SEP, /) {
equals(QMAKE_HOST.os, Windows): \
var = PATH
@@ -53,10 +60,12 @@ INSTALLS += target
var = DYLD_LIBRARY_PATH
else: \
error("Operating system not supported.")
- cmd = "$$var=$$join(deppath, :)${$$var:+:\$$$var} $$cmd"
+ !isEmpty(pluginpath): pluginpath = "QT_PLUGIN_PATH=$$join(pluginpath, :) "
+ cmd = "$$var=$$join(deppath, :)${$$var:+:\$$$var} $$pluginpath$$cmd"
} else {
+ !isEmpty(pluginpath): pluginpath = "(set QT_PLUGIN_PATH=$$join(pluginpath, ;)) & "
# Escape closing parens when expanding %PATH%, otherwise cmd confuses itself.
- cmd = "(set PATH=$$join(deppath, ;);%PATH:)=^)%) & $$cmd"
+ cmd = "(set PATH=$$join(deppath, ;);%PATH:)=^)%) & $$pluginpath$$cmd"
}
}