diff options
-rw-r--r-- | mkspecs/win32-clang-msvc/qmake.conf | 3 | ||||
-rw-r--r-- | qmake/generators/win32/msvc_nmake.cpp | 16 | ||||
-rw-r--r-- | src/corelib/global/qt_pch.h | 6 | ||||
-rw-r--r-- | src/gui/kernel/qt_gui_pch.h | 31 | ||||
-rw-r--r-- | src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.cpp | 5 | ||||
-rw-r--r-- | src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.h | 1 | ||||
-rw-r--r-- | src/widgets/kernel/qt_widgets_pch.h | 38 |
7 files changed, 38 insertions, 62 deletions
diff --git a/mkspecs/win32-clang-msvc/qmake.conf b/mkspecs/win32-clang-msvc/qmake.conf index 4b9cac3e22..9a7f70454d 100644 --- a/mkspecs/win32-clang-msvc/qmake.conf +++ b/mkspecs/win32-clang-msvc/qmake.conf @@ -44,7 +44,4 @@ QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG # Leave QMAKE_LFLAGS_LTCG empty because lld-link doesn't need any additional parameters QMAKE_LFLAGS_LTCG = -# Precompiled headers are not supported yet by clang -CONFIG -= precompile_header - load(qt_config) diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp index af6d3c5aff..63d89a5388 100644 --- a/qmake/generators/win32/msvc_nmake.cpp +++ b/qmake/generators/win32/msvc_nmake.cpp @@ -165,10 +165,14 @@ QString NmakeMakefileGenerator::var(const ProKey &value) const || value == "QMAKE_RUN_CXX_IMP" || value == "QMAKE_RUN_CXX"); if ((isRunCpp && usePCH) || (isRunC && usePCHC)) { - QFileInfo precompHInfo(fileInfo(precompH)); - QString precompH_f = escapeFilePath(precompHInfo.fileName()); + QString precompH_f = escapeFilePath(fileFixify(precompH, FileFixifyBackwards)); QString precompRule = QString("-c -FI%1 -Yu%2 -Fp%3") .arg(precompH_f, precompH_f, escapeFilePath(isRunC ? precompPchC : precompPch)); + // ### For clang_cl 8 we force inline methods to be compiled here instead + // linking them from a pch.o file. We do this by pretending we are also doing + // the pch.o generation step. + if (project->isActiveConfig("clang_cl")) + precompRule += QString(" -Xclang -building-pch-with-obj"); QString p = MakefileGenerator::var(value); p.replace(QLatin1String("-c"), precompRule); return p; @@ -230,7 +234,10 @@ void NmakeMakefileGenerator::init() precompObj = var("PRECOMPILED_DIR") + project->first("TARGET") + "_pch" + Option::obj_ext; precompPch = var("PRECOMPILED_DIR") + project->first("TARGET") + "_pch.pch"; // Add linking of precompObj (required for whole precompiled classes) - project->values("OBJECTS") += precompObj; + // ### For clang_cl we currently let inline methods be generated in the normal objects, + // since the PCH object is buggy (as of clang 8.0.0) + if (!project->isActiveConfig("clang_cl")) + project->values("OBJECTS") += precompObj; // Add pch file to cleanup project->values("QMAKE_CLEAN") += precompPch; // Return to variable pool @@ -240,7 +247,8 @@ void NmakeMakefileGenerator::init() if (usePCHC) { precompObjC = var("PRECOMPILED_DIR") + project->first("TARGET") + "_pch_c" + Option::obj_ext; precompPchC = var("PRECOMPILED_DIR") + project->first("TARGET") + "_pch_c.pch"; - project->values("OBJECTS") += precompObjC; + if (!project->isActiveConfig("clang_cl")) + project->values("OBJECTS") += precompObjC; project->values("QMAKE_CLEAN") += precompPchC; project->values("PRECOMPILED_OBJECT_C") = ProStringList(precompObjC); project->values("PRECOMPILED_PCH_C") = ProStringList(precompPchC); diff --git a/src/corelib/global/qt_pch.h b/src/corelib/global/qt_pch.h index 76e46374c3..3972991618 100644 --- a/src/corelib/global/qt_pch.h +++ b/src/corelib/global/qt_pch.h @@ -60,12 +60,18 @@ # undef _POSIX_ #endif #include <qcoreapplication.h> +#include <qcoreevent.h> +#include <qiodevice.h> #include <qlist.h> #include <qvariant.h> /* All moc genereated code has this include */ #include <qobject.h> #include <qregexp.h> +#include <qscopedpointer.h> +#include <qshareddata.h> #include <qstring.h> #include <qstringlist.h> +#include <qtimer.h> +#include <qvector.h> #if QT_CONFIG(textcodec) #include <qtextcodec.h> #endif diff --git a/src/gui/kernel/qt_gui_pch.h b/src/gui/kernel/qt_gui_pch.h index aa5d3f0572..5e07fa45e7 100644 --- a/src/gui/kernel/qt_gui_pch.h +++ b/src/gui/kernel/qt_gui_pch.h @@ -45,37 +45,20 @@ * UNSUPPORTED. */ -// from corelib/global/qt_pch.h +#include "../../corelib/global/qt_pch.h" + #if defined __cplusplus #include <qtguiglobal.h> - - -#ifdef Q_OS_WIN -# define _POSIX_ -# include <limits.h> -# undef _POSIX_ -#endif - -#include <qcoreapplication.h> -#include <qlist.h> -#include <qvariant.h> // All moc genereated code has this include -#include <qobject.h> -#include <qregexp.h> -#include <qstring.h> -#include <qstringlist.h> -#if QT_CONFIG(textcodec) -#include <qtextcodec.h> -#endif - #include <qguiapplication.h> #include <qbitmap.h> +#include <qclipboard.h> #include <qcursor.h> #include <qevent.h> +#include <qfont.h> #include <qimage.h> #include <qpainter.h> #include <qpixmap.h> -#include <qtimer.h> - -#include <stdlib.h> - +#include <qscreen.h> +#include <qsurface.h> +#include <qwindow.h> #endif diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.cpp index 3bdae239cd..296e301f07 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.cpp @@ -66,6 +66,11 @@ void QEglFSVivWaylandIntegration::platformInit() mScreenSize.setWidth(width); } +void QEglFSVivWaylandIntegration::platformDestroy() +{ + wl_display_destroy(mWaylandDisplay); +} + QSize QEglFSVivWaylandIntegration::screenSize() const { return mScreenSize; diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.h index 2c49eb6440..bee23dfb3e 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.h @@ -49,6 +49,7 @@ class QEglFSVivWaylandIntegration : public QEglFSDeviceIntegration { public: void platformInit() override; + void platformDestroy() override; QSize screenSize() const override; EGLNativeWindowType createNativeWindow(QPlatformWindow *window, const QSize &size, const QSurfaceFormat &format) override; void destroyNativeWindow(EGLNativeWindowType window) override; diff --git a/src/widgets/kernel/qt_widgets_pch.h b/src/widgets/kernel/qt_widgets_pch.h index bec6536637..b70941950b 100644 --- a/src/widgets/kernel/qt_widgets_pch.h +++ b/src/widgets/kernel/qt_widgets_pch.h @@ -45,41 +45,17 @@ * UNSUPPORTED. */ -// from corelib/global/qt_pch.h +#include "../../gui/kernel/qt_gui_pch.h" + #if defined __cplusplus #include <qtwidgetsglobal.h> - - -#if 0 // Used to be included in Qt4 for Q_WS_WIN -# define _POSIX_ -# include <limits.h> -# undef _POSIX_ -#endif - -#include <qcoreapplication.h> -#include <qlist.h> -#include <qvariant.h> // All moc genereated code has this include -#include <qobject.h> -#include <qregexp.h> -#include <qstring.h> -#include <qstringlist.h> -#if QT_CONFIG(textcodec) -#include <qtextcodec.h> -#endif - #include <qapplication.h> -#include <qbitmap.h> -#include <qcursor.h> -#include <qdesktopwidget.h> -#include <qevent.h> -#include <qimage.h> +#include <qabstractbutton.h> +#include <qabstractscrollarea.h> +#include <qabstractslider.h> +#include <qaction.h> +#include <qcommonstyle.h> #include <qlayout.h> -#include <qpainter.h> -#include <qpixmap.h> #include <qstyle.h> -#include <qtimer.h> #include <qwidget.h> - -#include <stdlib.h> - #endif |