introduce $$QMAKE_CHK_EXISTS_GLUE
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Fri, 18 May 2012 18:44:01 +0000 (20:44 +0200)
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Tue, 19 Jun 2012 14:46:07 +0000 (16:46 +0200)
instead of hard-coding platform differences, use a variable.

Change-Id: I20e98811ad5f07429148c6f88aedbabc3ba58fff
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
mkspecs/common/shell-unix.conf
mkspecs/common/shell-win32.conf
qmake/generators/makefile.cpp
qmake/generators/makefile.h

index a894867..967a658 100644 (file)
@@ -8,5 +8,6 @@ QMAKE_MOVE             = mv -f
 QMAKE_DEL_FILE         = rm -f
 QMAKE_DEL_DIR          = rmdir
 QMAKE_CHK_DIR_EXISTS   = test -d
+QMAKE_CHK_EXISTS_GLUE  = "|| "
 QMAKE_MKDIR            = mkdir -p
 QMAKE_STREAM_EDITOR    = sed
index ee13754..16f86e5 100644 (file)
@@ -6,4 +6,5 @@ QMAKE_MOVE             = move
 QMAKE_DEL_FILE         = del
 QMAKE_DEL_DIR          = rmdir
 QMAKE_CHK_DIR_EXISTS   = if not exist
+QMAKE_CHK_EXISTS_GLUE  =
 QMAKE_MKDIR            = mkdir
index 7b29615..a14e723 100644 (file)
@@ -98,12 +98,7 @@ QString MakefileGenerator::mkdir_p_asstring(const QString &dir, bool escape) con
         ret += escapeFilePath(dir);
     else
         ret += dir;
-    ret += " ";
-    if(isWindowsShell())
-        ret += "$(MKDIR)";
-    else
-        ret += "|| $(MKDIR)";
-    ret += " ";
+    ret += " " + chkglue + "$(MKDIR) ";
     if(escape)
         ret += escapeFilePath(dir);
     else
@@ -433,6 +428,9 @@ MakefileGenerator::init()
     QHash<QString, QStringList> &v = project->variables();
 
     chkdir = v["QMAKE_CHK_DIR_EXISTS"].join(" ");
+    chkglue = v["QMAKE_CHK_EXISTS_GLUE"].join(" ");
+    if (chkglue.isEmpty()) // Backwards compat with Qt4 specs
+        chkglue = isWindowsShell() ? "" : "|| ";
 
     QStringList &quc = v["QMAKE_EXTRA_COMPILERS"];
 
index 44fba2d..3a41fb4 100644 (file)
@@ -81,7 +81,7 @@ class MakefileGenerator : protected QMakeSourceFileInfo
     QString spec;
     bool init_opath_already, init_already, no_io;
     QHash<QString, bool> init_compiler_already;
-    QString chkdir;
+    QString chkdir, chkglue;
     QString build_args(const QString &outdir=QString());
     void checkMultipleDefinition(const QString &, const QString &);