54 #include <qcompilerdetection.h>
55 #include <QCoreApplication>
56 #include <QLatin1Char>
57 #include <QLatin1String>
59 #include <QStaticStringData>
61 #include <QStringData>
62 #include <QStringDataPtr>
79 #if defined(Q_CC_INTEL)
81 #ifdef __INTEL_CLANG_COMPILER
82 iccCompact = QLatin1String(
"Clang");
83 #elif defined(__INTEL_MS_COMPAT_LEVEL)
84 iccCompact = QLatin1String(
"Microsoft");
85 #elif defined(__GNUC__)
86 iccCompact = QLatin1String(
"GCC");
88 iccCompact = QLatin1String(
"no");
91 if (__INTEL_COMPILER >= 1300)
93 iccVersion = QString::number(__INTEL_COMPILER/100);
97 iccVersion = QLatin1String(__INTEL_COMPILER);
99 #ifdef __INTEL_COMPILER_UPDATE
100 return QLatin1String(
"Intel(R) C++ ") + iccVersion + QLatin1String(
".") + QLatin1String(__INTEL_COMPILER_UPDATE) +
101 QLatin1String(
" build ") + QLatin1String(__INTEL_COMPILER_BUILD_DATE) + QLatin1String(
" [") +
102 QLatin1String(iccCompact) + QLatin1String(
" compatibility]");
104 return QLatin1String(
"Intel(R) C++ ") + iccVersion + QLatin1String(
" build ") +
105 QLatin1String(__INTEL_COMPILER_BUILD_DATE) + QLatin1String(
" [") + iccCompact +
106 QLatin1String(
" compatibility]");
108 #elif defined(Q_CC_CLANG)
109 QString isAppleString;
110 #if defined(__apple_build_version__)
111 isAppleString = QLatin1String(
" (Apple)");
113 return QLatin1String(
"Clang " ) + QString::number(__clang_major__) + QLatin1Char(
'.')
114 + QString::number(__clang_minor__) + isAppleString;
115 #elif defined(Q_CC_GNU)
116 return QLatin1String(
"GCC " ) + QLatin1String(__VERSION__);
117 #elif defined(Q_CC_MSVC)
118 if (_MSC_VER >= 1800)
120 return QLatin1String(
"MSVC ") + QString::number(2008 + ((_MSC_VER / 100) - 13));
122 if (_MSC_VER >= 1500)
124 return QLatin1String(
"MSVC ") + QString::number(2008 + 2 * ((_MSC_VER / 100) - 15));
127 return QStringLiteral(
"<unknown compiler>");
134 return QCoreApplication::tr(
"Based on Qt %1 (%2, %3 bit)").arg(QLatin1String(qVersion()),
compilerString(),
135 QString::number(QSysInfo::WordSize));
const QString APP_VERSION_STR(QStringLiteral("%1.%2.%3.%4").arg(MAJOR_VERSION).arg(MINOR_VERSION) .arg(DEBUG_VERSION).arg(SUPER_MINOR__VERSION))
const int SUPER_MINOR__VERSION
QString buildCompatibilityString()