Add mingw GCC Version to qconfig.pri

This change adds missing variables in mkspecs/qconfig.pri about gcc
compiler version when using mingw: QT_GCC_{MAJOR,MINOR,PATCH}_VERSION
This is needed in case CONFIG += c++14 is used.

Task-number: QTBUG-44142
Change-Id: I34c27f9154bb745a8ee75c777a0acbdbc5bda5a9
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This commit is contained in:
Eric Lemanissier 2015-03-04 12:58:28 +01:00
parent b0c58c2bb4
commit b814d05101
3 changed files with 27 additions and 0 deletions

View File

@ -305,6 +305,14 @@ Configure::Configure(int& argc, char** argv)
dictionary[ "LTCG" ] = "no"; dictionary[ "LTCG" ] = "no";
dictionary[ "NATIVE_GESTURES" ] = "yes"; dictionary[ "NATIVE_GESTURES" ] = "yes";
dictionary[ "MSVC_MP" ] = "no"; dictionary[ "MSVC_MP" ] = "no";
if (dictionary["QMAKESPEC"] == QString("win32-g++")) {
const QString zero = QStringLiteral("0");
const QStringList parts = Environment::gccVersion().split(QLatin1Char('.'));
dictionary["QT_GCC_MAJOR_VERSION"] = parts.value(0, zero);
dictionary["QT_GCC_MINOR_VERSION"] = parts.value(1, zero);
dictionary["QT_GCC_PATCH_VERSION"] = parts.value(2, zero);
}
} }
Configure::~Configure() Configure::~Configure()
@ -3466,6 +3474,12 @@ void Configure::generateQConfigPri()
if (dictionary[ "SHARED" ] == "no") if (dictionary[ "SHARED" ] == "no")
configStream << "QT_DEFAULT_QPA_PLUGIN = q" << qpaPlatformName() << endl; configStream << "QT_DEFAULT_QPA_PLUGIN = q" << qpaPlatformName() << endl;
if (!dictionary["QT_GCC_MAJOR_VERSION"].isEmpty()) {
configStream << "QT_GCC_MAJOR_VERSION = " << dictionary["QT_GCC_MAJOR_VERSION"] << endl
<< "QT_GCC_MINOR_VERSION = " << dictionary["QT_GCC_MINOR_VERSION"] << endl
<< "QT_GCC_PATCH_VERSION = " << dictionary["QT_GCC_PATCH_VERSION"] << endl;
}
if (!configStream.flush()) if (!configStream.flush())
dictionary[ "DONE" ] = "error"; dictionary[ "DONE" ] = "error";
} }

View File

@ -163,6 +163,18 @@ Compiler Environment::compilerFromQMakeSpec(const QString &qmakeSpec)
return CC_UNKNOWN; return CC_UNKNOWN;
} }
QString Environment::gccVersion()
{
CompilerInfo *info = compilerInfo(CC_MINGW);
int returnValue = 0;
QString version = execute(QStringLiteral("%1 -dumpversion").arg(info->executable), &returnValue);
if (returnValue != 0) {
cout << "Could not get mingw version" << returnValue << qPrintable(version);
version.resize(0);
}
return version;
}
/*! /*!
Returns the enum of the compiler which was detected on the system. Returns the enum of the compiler which was detected on the system.
The compilers are detected in the order as entered into the The compilers are detected in the order as entered into the

View File

@ -56,6 +56,7 @@ public:
static Compiler detectCompiler(); static Compiler detectCompiler();
static QString detectQMakeSpec(); static QString detectQMakeSpec();
static Compiler compilerFromQMakeSpec(const QString &qmakeSpec); static Compiler compilerFromQMakeSpec(const QString &qmakeSpec);
static QString gccVersion();
static int execute(QStringList arguments, const QStringList &additionalEnv, const QStringList &removeEnv); static int execute(QStringList arguments, const QStringList &additionalEnv, const QStringList &removeEnv);
static QString execute(const QString &command, int *returnCode = 0); static QString execute(const QString &command, int *returnCode = 0);