From 575a51663007095c8c4d14295ed6028cc18513f8 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 18 May 2012 22:13:51 +0200 Subject: revamp automatic makefile generation for sub-projects instead of making the "real" targets depend on the makefiles, add conditional makefile generation to the targets themselves. this causes makefile generation to follow the recursion order determined by the project, which is important when dealing with prl and module pri files. a side effect of this is that qmake and make calls are interleaved now, which is entirely different from a 'qmake -r' run. on the downside, calling make with multiple targets which operate on the same subprojects without prior makefile generation will make a mess, as the qmake calls will be racing. this should be no problem, as qmake does not generate recursive targets where this would be useful - at least by default. it is not sufficient to just order the creation of the makefiles non-recursively (e.g., by using gnu-specific order-only-prerequisites), as an interrupted and subsequently resumed build would happily skip the nested makefiles. workable alternative approaches would be walking the entire tree in a pre-pass to ensure makefile presence (which is incredibly slow) or creating additional stamp files only after recursing and having the makefiles depend on them (which is ugly). Task-number: QTBUG-23376 Reviewed-by: Joerg Bornemann Change-Id: I88d3e7610215677d362026de316513d3bea04b06 --- mkspecs/common/shell-unix.conf | 1 + mkspecs/common/shell-win32.conf | 1 + 2 files changed, 2 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/common/shell-unix.conf b/mkspecs/common/shell-unix.conf index 967a658cff..17c3612fdc 100644 --- a/mkspecs/common/shell-unix.conf +++ b/mkspecs/common/shell-unix.conf @@ -8,6 +8,7 @@ QMAKE_MOVE = mv -f QMAKE_DEL_FILE = rm -f QMAKE_DEL_DIR = rmdir QMAKE_CHK_DIR_EXISTS = test -d +QMAKE_CHK_FILE_EXISTS = test -f QMAKE_CHK_EXISTS_GLUE = "|| " QMAKE_MKDIR = mkdir -p QMAKE_STREAM_EDITOR = sed diff --git a/mkspecs/common/shell-win32.conf b/mkspecs/common/shell-win32.conf index 16f86e5e27..3b2ace7c90 100644 --- a/mkspecs/common/shell-win32.conf +++ b/mkspecs/common/shell-win32.conf @@ -6,5 +6,6 @@ QMAKE_MOVE = move QMAKE_DEL_FILE = del QMAKE_DEL_DIR = rmdir QMAKE_CHK_DIR_EXISTS = if not exist +QMAKE_CHK_FILE_EXISTS = if not exist QMAKE_CHK_EXISTS_GLUE = QMAKE_MKDIR = mkdir -- cgit v1.2.3