introduce -fully-process configure option, change behavior of -process
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Thu, 2 Aug 2012 13:37:50 +0000 (15:37 +0200)
committerQt by Nokia <qt-info@nokia.com>
Mon, 6 Aug 2012 13:28:59 +0000 (15:28 +0200)
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 <joerg.bornemann@nokia.com>
configure
tools/configure/configureapp.cpp

index cfb9a9f..858f244 100755 (executable)
--- 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=
index 1368a99..5da2917 100644 (file)
@@ -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;