Added function returning build information to QLibraryInfo.

Useful for bug reports and test logs.

[ChangeLog][QtCore] QLibraryInfo provides information on how
Qt was built.

Change-Id: I867197fd7d2e10bcdf01a8eb47c9c1e03647e2c1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Friedemann Kleint 2014-02-06 16:16:07 +01:00 committed by The Qt Project
parent 5adba7cba7
commit 5ae5bebb93
3 changed files with 54 additions and 3 deletions

View File

@ -255,6 +255,57 @@ QLibraryInfo::buildDate()
} }
#endif //QT_NO_DATESTRING #endif //QT_NO_DATESTRING
#if defined(Q_CC_CLANG) // must be before GNU, because clang claims to be GNU too
# ifdef __apple_build_version__ // Apple clang has other version numbers
# define COMPILER_STRING __clang_version__ " (Apple)"
# else
# define COMPILER_STRING __clang_version__
# endif
#elif defined(Q_CC_GNU)
# define COMPILER_STRING "GCC " __VERSION__
#elif defined(Q_CC_MSVC)
# if _MSC_VER < 1600
# define COMPILER_STRING "MSVC 2008"
# elif _MSC_VER < 1700
# define COMPILER_STRING "MSVC 2010"
# elif _MSC_VER < 1800
# define COMPILER_STRING "MSVC 2012"
# elif _MSC_VER < 1900
# define COMPILER_STRING "MSVC 2013"
# else
# define COMPILER_STRING "MSVC <unknown version>"
# endif
#else
# define COMPILER_STRING "<unknown compiler>"
#endif
/*!
Returns a string describing how this version of Qt was built.
\internal
\since 5.3
*/
const char *QLibraryInfo::build()
{
static const char data[] = "Qt " QT_VERSION_STR " (" __DATE__ "), "
COMPILER_STRING ", "
#if QT_POINTER_SIZE == 4
"32"
#else
"64"
#endif
" bit, "
#ifdef QT_NO_DEBUG
"release"
#else
"debug"
#endif
" build)";
return data;
}
/*! /*!
\since 5.0 \since 5.0
Returns \c true if this build of Qt was built with debugging enabled, or Returns \c true if this build of Qt was built with debugging enabled, or

View File

@ -59,6 +59,8 @@ public:
static QDate buildDate(); static QDate buildDate();
#endif //QT_NO_DATESTRING #endif //QT_NO_DATESTRING
static const char * build();
static bool isDebugBuild(); static bool isDebugBuild();
enum LibraryLocation enum LibraryLocation

View File

@ -116,10 +116,8 @@ int main(int argc, char **argv)
QGuiApplication app(argc, argv); QGuiApplication app(argc, argv);
const QPlatformIntegration *platformIntegration = QGuiApplicationPrivate::platformIntegration(); const QPlatformIntegration *platformIntegration = QGuiApplicationPrivate::platformIntegration();
std::cout << "Qt " << QT_VERSION_STR << " on \"" << QGuiApplication::platformName().toStdString() << "\" " std::cout << QLibraryInfo::build() << " on \"" << QGuiApplication::platformName().toStdString() << "\" "
<< QSysInfo::WordSize << " bit/"
<< (QSysInfo::ByteOrder == QSysInfo::LittleEndian ? "little endian" : "big endian") << '/' << (QSysInfo::ByteOrder == QSysInfo::LittleEndian ? "little endian" : "big endian") << '/'
<< (QLibraryInfo::isDebugBuild() ? "debug" : "release")
<< '\n'; << '\n';
#if defined(Q_OS_WIN) #if defined(Q_OS_WIN)