Generate a .qmake.cache in config.tests from configure.exe.
authorJason Barron <jason.barron@digia.com>
Mon, 29 Oct 2012 09:17:33 +0000 (10:17 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Tue, 30 Oct 2012 11:53:46 +0000 (12:53 +0100)
We need to generate a .qmake.cache file in the config.tests
directory on Windows to ensure that the config.tests can
actually be compiled before the qmodule.pri is created.

Task-number: QTBUG-27708
Change-Id: I8d9397a8cbdb2aa19a5318497177d76049f9fa91
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
tools/configure/configureapp.cpp
tools/configure/configureapp.h
tools/configure/main.cpp

index 113ebf7..472563a 100644 (file)
@@ -2312,6 +2312,25 @@ void Configure::generateBuildKey()
     build_defines.sort();
 }
 
+void Configure::generateSystemVars()
+{
+    // Generate an empty .qmake.cache file for config.tests
+    QDir buildDir(buildPath);
+    bool success = true;
+    if (!buildDir.exists("config.tests"))
+        success = buildDir.mkdir("config.tests");
+
+    QString fileName(buildPath + "/config.tests/.qmake.cache");
+    QFile cacheFile(fileName);
+    success &= cacheFile.open(QIODevice::WriteOnly);
+    cacheFile.close();
+
+    if (!success) {
+        cout << "Failed to create file " << qPrintable(QDir::toNativeSeparators(fileName)) << endl;
+        dictionary[ "DONE" ] = "error";
+    }
+}
+
 void Configure::generateOutputVars()
 {
     // Generate variables for output
index 8cae9da..16d0a11 100644 (file)
@@ -83,6 +83,7 @@ public:
     void generateConfigfiles();
     void detectArch();
     void generateQConfigPri();
+    void generateSystemVars();
 #endif
     void showSummary();
     void findProjects( const QString& dirName );
index 53013c9..e917137 100644 (file)
@@ -78,6 +78,10 @@ int runConfigure( int argc, char** argv )
     if (!app.isOk())
         return 3;
 
+    app.generateSystemVars();
+    if (!app.isOk())
+        return 3;
+
     // Auto-detect modules and settings.
     app.autoDetection();