Fix arch detection when cross compiling on Windows

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>
bb10
Rafael Roquetto 2012-06-08 14:20:45 +02:00 committed by Qt by Nokia
parent 0fb84aa7a9
commit 8839109abe
1 changed files with 6 additions and 3 deletions

View 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();