Fix arch detection when cross compiling on Windows
authorRafael Roquetto <rafael.roquetto.qnx@kdab.com>
Fri, 8 Jun 2012 12:20:45 +0000 (14:20 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 12 Jun 2012 02:29:58 +0000 (04:29 +0200)
When trying to detect the target architecture, configure.exe will look for a
file called 'arch.exe'. However, in some situations such as when
cross-compiling on a Windows host to a Unix host, and depending on the
toolchain being used, the output file generated by config.tests/arch may
simply be called "arch" instead of "arch.exe", causing configure.exe to fail.
This patches configure.exe to handle both naming schemes.

Change-Id: I5798f716d732388c707564d4d45c4887ab3d3d9f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
tools/configure/configureapp.cpp

index 45c9f5c..8c06a15 100644 (file)
@@ -2603,9 +2603,12 @@ void Configure::detectArch()
         // find the executable that was generated
         QFile exe("arch.exe");
         if (!exe.open(QFile::ReadOnly)) { // no Text, this is binary
-            cout << "Could not find output file: " << qPrintable(exe.errorString()) << endl;
-            dictionary["DONE"] = "error";
-            return;
+            exe.setFileName("arch");
+            if (!exe.open(QFile::ReadOnly)) {
+                cout << "Could not find output file: " << qPrintable(exe.errorString()) << endl;
+                dictionary["DONE"] = "error";
+                return;
+            }
         }
         QByteArray exeContents = exe.readAll();
         exe.close();