From 6463a686f6b6530c005fe6b340152b331bca9600 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 22 Oct 2019 10:13:29 +0200 Subject: [PATCH] Build Fix: Workaround symbols inclusion from PCH headers Broken in b128d498b2da55a9f87cd2eabb802acc0c48e7d4 Tested with MinGW 8.1 Tested with VisualStudio 2017 Change-Id: I8f43efe43016ea95866ee018ac9a47373a37373b Reviewed-by: Tim Jenssen --- src/shared/qtcreator_pch.h | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/src/shared/qtcreator_pch.h b/src/shared/qtcreator_pch.h index 8ff33bef080..a80eb42e7a6 100644 --- a/src/shared/qtcreator_pch.h +++ b/src/shared/qtcreator_pch.h @@ -29,14 +29,37 @@ */ #if defined __cplusplus -#include +#include -#ifdef Q_WS_WIN -# define _POSIX_ -# include -# undef _POSIX_ +#ifdef Q_OS_WIN +#define WIN32_LEAN_AND_MEAN + +// lib/Utils needs defines for Windows 8 +#ifdef Q_CC_MINGW +#define WINVER _WIN32_WINNT_WIN8 +#define _WIN32_WINNT _WIN32_WINNT_WIN8 +#endif // Q_CC_MINGW +#define NOHELP +#include + +#undef DELETE +#undef IN +#undef OUT +#undef ERROR +#undef ABSOLUTE + +//QT_NO_FLOAT16_OPERATORS is used on Visual Studio 2017 (and earlier): +//when including and in the same translation unit, +//it would cause a compilation error due to a toolchain bug (see [QTBUG-72073]) +#if _MSC_VER <= 1920 +#define QT_NO_FLOAT16_OPERATORS #endif +#define _POSIX_ +#include +#undef _POSIX_ +#endif // Q_OS_WIN + #include #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) @@ -48,7 +71,7 @@ using Qt::dec; using Qt::showbase; using Qt::hex; using Qt::noforcesign; -#endif +#endif //QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) #include -#endif +#endif //defined __cplusplus