From 5fae23eb26b172d4677db273049119b16db272d3 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 2 Aug 2012 15:37:50 +0200 Subject: introduce -fully-process configure option, change behavior of -process configure will now run qmake without -recursive, as on modern systems one can get a lot more out of parallelization done by make, which qmake cannot do. use -fully-process to get back the old behavior. -dont-process is unchanged. Change-Id: I2874321a963175463ae8992f3ab2b01bc13c9922 Reviewed-by: Joerg Bornemann --- configure | 26 +++++++++++++++++++------- tools/configure/configureapp.cpp | 20 ++++++++++++-------- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/configure b/configure index cfb9a9f36e..858f244fd2 100755 --- a/configure +++ b/configure @@ -814,7 +814,7 @@ CFG_SILENT=no CFG_ALSA=auto CFG_PULSEAUDIO=auto CFG_COREWLAN=auto -CFG_NOPROCESS=no +CFG_PROCESS=yes CFG_ICU=auto CFG_FORCE_ASSERTS=no CFG_PCRE=auto @@ -1969,10 +1969,13 @@ while [ "$#" -gt 0 ]; do CFG_SILENT="$VAL" ;; dont-process) - CFG_NOPROCESS=yes + CFG_PROCESS=no ;; process) - CFG_NOPROCESS=no + CFG_PROCESS=partial + ;; + fully-process) + CFG_PROCESS=full ;; audio-backend) if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then @@ -2985,6 +2988,10 @@ Configure options: * -shared ............ Create and use shared Qt libraries. -static ............ Create and use static Qt libraries. + * -process ........... Generate only a top-level Makefile. + -fully-process ..... Generate Makefiles for the entire Qt tree. + -dont-process ...... Do not generate any Makefiles. + * -no-fast ........... Configure Qt normally by generating Makefiles for all project files. -fast .............. Configure Qt quickly by generating Makefiles only for @@ -6185,10 +6192,15 @@ EXEC="" # build makefiles based on the configuration #------------------------------------------------------------------------------- -if [ "$CFG_NOPROCESS" != "yes" ]; then - echo "Creating makefiles. Please wait..." - "$outpath/bin/qmake" -r ${OPT_FAST+CONFIG+=fast} "$relpath" - echo "Done" +if [ "$CFG_PROCESS" != "no" ]; then + + if [ "$CFG_PROCESS" = "full" ]; then + echo "Creating makefiles. Please wait..." + "$outpath/bin/qmake" -r "$relpath" + echo "Done" + else + "$outpath/bin/qmake" "$relpath" + fi if [ "$OPT_FAST" = "yes" ]; then PART_ROOTS= diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 1368a99c99..5da2917c94 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -207,7 +207,7 @@ Configure::Configure(int& argc, char** argv) dictionary[ "VCPROJFILES" ] = "yes"; dictionary[ "QMAKE_INTERNAL" ] = "no"; dictionary[ "FAST" ] = "no"; - dictionary[ "NOPROCESS" ] = "no"; + dictionary[ "PROCESS" ] = "partial"; dictionary[ "WIDGETS" ] = "yes"; dictionary[ "RTTI" ] = "yes"; dictionary[ "SSE2" ] = "auto"; @@ -899,9 +899,11 @@ void Configure::parseCmdLine() dictionary[ "BUILD_QMAKE" ] = "yes"; else if (configCmdLine.at(i) == "-dont-process") - dictionary[ "NOPROCESS" ] = "yes"; + dictionary[ "PROCESS" ] = "no"; else if (configCmdLine.at(i) == "-process") - dictionary[ "NOPROCESS" ] = "no"; + dictionary[ "PROCESS" ] = "partial"; + else if (configCmdLine.at(i) == "-fully-process") + dictionary[ "PROCESS" ] = "full"; else if (configCmdLine.at(i) == "-no-qmake-deps") dictionary[ "DEPENDENCIES" ] = "no"; @@ -1724,8 +1726,9 @@ bool Configure::displayHelp() desc("BUILD_QMAKE", "no", "-no-qmake", "Do not compile qmake."); desc("BUILD_QMAKE", "yes", "-qmake", "Compile qmake.\n"); - desc("NOPROCESS", "yes", "-dont-process", "Do not generate Makefiles/Project files. This will override -no-fast if specified."); - desc("NOPROCESS", "no", "-process", "Generate Makefiles/Project files.\n"); + desc("PROCESS", "partial", "-process", "Generate top-level Makefiles/Project files.\n"); + desc("PROCESS", "full", "-fully-process", "Generate Makefiles/Project files for the entire Qt tree.\n"); + desc("PROCESS", "no", "-dont-process", "Do not generate Makefiles/Project files. This will override -no-fast if specified."); desc("RTTI", "no", "-no-rtti", "Do not compile runtime type information."); desc("RTTI", "yes", "-rtti", "Compile runtime type information.\n"); @@ -3561,7 +3564,7 @@ void Configure::buildQmake() void Configure::findProjects(const QString& dirName) { - if (dictionary[ "NOPROCESS" ] == "no") { + if (dictionary[ "PROCESS" ] != "no") { QDir dir(dirName); QString entryName; int makeListNumber; @@ -3612,7 +3615,7 @@ void Configure::appendMakeItem(int inList, const QString &item) void Configure::generateMakefiles() { - if (dictionary[ "NOPROCESS" ] == "no") { + if (dictionary[ "PROCESS" ] != "no") { QString spec = dictionary.contains("XQMAKESPEC") ? dictionary[ "XQMAKESPEC" ] : dictionary[ "QMAKESPEC" ]; if (spec != "win32-msvc.net" && !spec.startsWith("win32-msvc2") && !spec.startsWith(QLatin1String("wince"))) dictionary[ "VCPROJFILES" ] = "no"; @@ -3640,7 +3643,8 @@ void Configure::generateMakefiles() printf("Generating Makefiles...\n"); generate = false; // Now Makefiles will be done } - args << "-r"; + if (dictionary[ "PROCESS" ] == "full") + args << "-r"; args << (sourcePath + "/qtbase.pro"); args << "-o"; args << buildPath; -- cgit v1.2.3