diff options
-rw-r--r-- | mkspecs/features/qt_module_fwdpri.prf | 7 | ||||
-rw-r--r-- | mkspecs/features/qt_tool.prf | 13 |
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" } } |