factor out code to install default mkspec
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Fri, 24 Feb 2012 19:32:08 +0000 (20:32 +0100)
committerQt by Nokia <qt-info@nokia.com>
Tue, 28 Feb 2012 23:05:38 +0000 (00:05 +0100)
Change-Id: I15f371df7bc24cd85c1c0924d1929da4dc3db16d
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
tools/configure/configureapp.cpp
tools/configure/configureapp.h

index b7eeea6..36c9501 100644 (file)
@@ -2638,6 +2638,29 @@ QString Configure::addDefine(QString def)
 }
 
 #if !defined(EVAL)
+bool Configure::copySpec(const char *name, const char *pfx, const QString &spec)
+{
+    // Copy configured mkspec to default directory, but remove the old one first, if there is any
+    QString defSpec = buildPath + "/mkspecs/" + name;
+    QFileInfo defSpecInfo(defSpec);
+    if (defSpecInfo.exists()) {
+        if (!Environment::rmdir(defSpec)) {
+            cout << "Couldn't update default " << pfx << "mkspec! Are files in " << qPrintable(defSpec) << " read-only?" << endl;
+            dictionary["DONE"] = "error";
+            return false;
+        }
+    }
+
+    QString pltSpec = sourcePath + "/mkspecs/" + spec;
+    QString includeSpec = buildPath + "/mkspecs/" + spec;
+    if (!Environment::cpdir(pltSpec, defSpec, includeSpec)) {
+        cout << "Couldn't update default " << pfx << "mkspec! Does " << qPrintable(pltSpec) << " exist?" << endl;
+        dictionary["DONE"] = "error";
+        return false;
+    }
+    return true;
+}
+
 void Configure::generateConfigfiles()
 {
     QDir(buildPath).mkpath("src/corelib/global");
@@ -2821,25 +2844,9 @@ void Configure::generateConfigfiles()
         tmpFile.close();
     }
 
-    // Copy configured mkspec to default directory, but remove the old one first, if there is any
-    QString defSpec = buildPath + "/mkspecs/default";
-    QFileInfo defSpecInfo(defSpec);
-    if (defSpecInfo.exists()) {
-        if (!Environment::rmdir(defSpec)) {
-            cout << "Couldn't update default mkspec! Are files in " << qPrintable(defSpec) << " read-only?" << endl;
-            dictionary["DONE"] = "error";
-            return;
-        }
-    }
-
     QString spec = dictionary.contains("XQMAKESPEC") ? dictionary["XQMAKESPEC"] : dictionary["QMAKESPEC"];
-    QString pltSpec = sourcePath + "/mkspecs/" + spec;
-    QString includeSpec = buildPath + "/mkspecs/" + spec;
-    if (!Environment::cpdir(pltSpec, defSpec, includeSpec)) {
-        cout << "Couldn't update default mkspec! Does " << qPrintable(pltSpec) << " exist?" << endl;
-        dictionary["DONE"] = "error";
+    if (!copySpec("default", "", spec))
         return;
-    }
 
     // Generate the new qconfig.cpp file
     QDir(buildPath).mkpath("src/corelib/global");
index c3838fb..58544b5 100644 (file)
@@ -79,6 +79,7 @@ public:
     void generateMakefiles();
     void appendMakeItem(int inList, const QString &item);
 #if !defined(EVAL)
+    bool copySpec(const char *name, const char *pfx, const QString &spec);
     void generateConfigfiles();
 #endif
     void showSummary();