summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt_tool.prf
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-08-08 11:33:26 +0200
committerQt by Nokia <qt-info@nokia.com>2012-08-11 00:41:07 +0200
commit6f4ff81380862ad0e788151b35d742f548241d5a (patch)
treee503172ebde3ab84666a135ab6953e2c57d22352 /mkspecs/features/qt_tool.prf
parentff13798708071573e6188e9daff238ccd85d11ca (diff)
assemble the complete tool commands already in qt_tool.prf
this saves some repeated calculations. also, it's nicer to have most logic in one place. Change-Id: Iea362d40f5e6203709ced94d29ca61a4163b8e69 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Diffstat (limited to 'mkspecs/features/qt_tool.prf')
-rw-r--r--mkspecs/features/qt_tool.prf26
1 files changed, 23 insertions, 3 deletions
diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf
index 69a303fcac..f1555de1d0 100644
--- a/mkspecs/features/qt_tool.prf
+++ b/mkspecs/features/qt_tool.prf
@@ -35,12 +35,32 @@ INSTALLS += target
isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$MODULE_BASE_OUTDIR
load(resolve_target)
+ cmd = $$shell_path($$QMAKE_RESOLVED_TARGET)
+ deps = $$resolve_depends(QT, "QT.")
+ !isEmpty(deps) {
+ for(dep, deps) {
+ deppath += $$shell_path($$eval(QT.$${dep}.libs))
+ }
+ deppath = $$unique(deppath)
+ equals(QMAKE_DIR_SEP, /) {
+ equals(QMAKE_HOST.os, Windows): \
+ var = PATH
+ else:contains(QMAKE_HOST.os, Linux): \
+ var = LD_LIBRARY_PATH
+ else:equals(QMAKE_HOST.os, Darwin): \
+ var = DYLD_LIBRARY_PATH
+ else: \
+ error("Operating system not supported.")
+ cmd = "$$var=$$join(deppath, :)${$$var:+:\$$$var} $$cmd"
+ } else {
+ # Escape closing parens when expanding %PATH%, otherwise cmd confuses itself.
+ cmd = "(set PATH=$$join(deppath, ;);%PATH:)=^)%) & $$cmd"
+ }
+ }
TOOL_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_$${MODULE}.pri
- TOOL_PRI_CONT = \
- "QT_TOOL.$${MODULE}.binary = $$QMAKE_RESOLVED_TARGET" \
- "QT_TOOL.$${MODULE}.depends =$$join(MODULE_DEPENDS, " ", " ")"
+ TOOL_PRI_CONT = "QT_TOOL.$${MODULE}.command = $$val_escape(cmd)"
write_file($$TOOL_PRI, TOOL_PRI_CONT)|error("Aborting.")
# Then, inject the new tool into the current cache state