diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2017-04-16 10:51:15 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2017-04-20 05:39:47 +0000 |
commit | 47c9b66a8b4cf95983e7bca772a40983d52fc6d6 (patch) | |
tree | 35a38addfeec89006ceca1366b9f130fc40bf33f | |
parent | 255d291efd5ed3e193a6340055c35887f687f0ca (diff) |
Disable precompiled headers for small modules
Creating a precompiled header exclusively for a one- or two-file module
is wasteful. The time that it takes to build the precompiled source is
on the same order as a regular compilation, so enabling precompiled
headers for those modules just makes the build slower.
Also make it possible to override the precompiled header by just setting
PRECOMPILED_HEADER to empty.
Change-Id: I0e1a09998253489388abfffd14b5f221288c4826
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
10 files changed, 11 insertions, 14 deletions
diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf index 648723d6ff..c77db2193b 100644 --- a/mkspecs/features/qt_module_headers.prf +++ b/mkspecs/features/qt_module_headers.prf @@ -157,12 +157,18 @@ MODULE_MASTER_DEPS_HEADER = $$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/$${MOD } SYNCQT.HEADER_FILES += $$MODULE_MASTER_DEPS_HEADER -# Automatically enable precompiled headers for Qt modules, -# except for Gcc/Windows: Larger precompiled headers crash cc1plus.exe -# (e.g. with i686-4.8.2-release-posix-dwarf-rt_v3-rev3) -!if(gcc:equals(QMAKE_HOST.os, Windows)):!equals(TEMPLATE, aux) { - isEmpty(PRECOMPILED_HEADER): PRECOMPILED_HEADER = $$MODULE_MASTER_DEPS_HEADER +# Automatically enable precompiled headers for Qt modules with more than 2 sources +combined_SOURCES = $$SOURCES $$OBJECTIVE_SOURCES +count(combined_SOURCES, 2, >) { + # except for Gcc/Windows: Larger precompiled headers crash cc1plus.exe + # (e.g. with i686-4.8.2-release-posix-dwarf-rt_v3-rev3) + !if(gcc:equals(QMAKE_HOST.os, Windows)):!equals(TEMPLATE, aux) { + !defined(PRECOMPILED_HEADER, "var"): PRECOMPILED_HEADER = $$MODULE_MASTER_DEPS_HEADER + } +} else { + CONFIG -= precompile_header } +unset(combined_SOURCES) headersclean:!internal_module { # Make sure that the header compiles with our strict options diff --git a/src/platformsupport/accessibility/accessibility.pro b/src/platformsupport/accessibility/accessibility.pro index 5004dc8cbe..1806d75630 100644 --- a/src/platformsupport/accessibility/accessibility.pro +++ b/src/platformsupport/accessibility/accessibility.pro @@ -5,7 +5,6 @@ QT = core-private gui-private CONFIG += static internal_module DEFINES += QT_NO_CAST_FROM_ASCII -PRECOMPILED_HEADER = ../../corelib/global/qt_pch.h HEADERS += \ qaccessiblebridgeutils_p.h diff --git a/src/platformsupport/cglconvenience/cglconvenience.pro b/src/platformsupport/cglconvenience/cglconvenience.pro index 0422a844aa..89d1fc4643 100644 --- a/src/platformsupport/cglconvenience/cglconvenience.pro +++ b/src/platformsupport/cglconvenience/cglconvenience.pro @@ -5,7 +5,6 @@ QT = core-private gui CONFIG += static internal_module DEFINES += QT_NO_CAST_FROM_ASCII -PRECOMPILED_HEADER = ../../corelib/global/qt_pch.h HEADERS += \ cglconvenience_p.h diff --git a/src/platformsupport/clipboard/clipboard.pro b/src/platformsupport/clipboard/clipboard.pro index 336d81fe46..def2a061a0 100644 --- a/src/platformsupport/clipboard/clipboard.pro +++ b/src/platformsupport/clipboard/clipboard.pro @@ -5,7 +5,6 @@ QT = core-private gui CONFIG += static internal_module DEFINES += QT_NO_CAST_FROM_ASCII -PRECOMPILED_HEADER = ../../corelib/global/qt_pch.h HEADERS += qmacmime_p.h SOURCES += qmacmime.mm diff --git a/src/platformsupport/devicediscovery/devicediscovery.pro b/src/platformsupport/devicediscovery/devicediscovery.pro index b429b8b97e..881ec4d41e 100644 --- a/src/platformsupport/devicediscovery/devicediscovery.pro +++ b/src/platformsupport/devicediscovery/devicediscovery.pro @@ -6,7 +6,6 @@ QT_FOR_CONFIG += gui-private CONFIG += static internal_module DEFINES += QT_NO_CAST_FROM_ASCII -PRECOMPILED_HEADER = ../../corelib/global/qt_pch.h HEADERS += qdevicediscovery_p.h diff --git a/src/platformsupport/glxconvenience/glxconvenience.pro b/src/platformsupport/glxconvenience/glxconvenience.pro index 41c96d8f0d..58fa9fc479 100644 --- a/src/platformsupport/glxconvenience/glxconvenience.pro +++ b/src/platformsupport/glxconvenience/glxconvenience.pro @@ -5,7 +5,6 @@ QT = core-private gui-private CONFIG += static internal_module DEFINES += QT_NO_CAST_FROM_ASCII -PRECOMPILED_HEADER = ../../corelib/global/qt_pch.h LIBS_PRIVATE += $$QMAKE_LIBS_X11 diff --git a/src/platformsupport/graphics/graphics.pro b/src/platformsupport/graphics/graphics.pro index 878fca7f49..9886ee0332 100644 --- a/src/platformsupport/graphics/graphics.pro +++ b/src/platformsupport/graphics/graphics.pro @@ -5,7 +5,6 @@ QT = core-private gui-private CONFIG += static internal_module DEFINES += QT_NO_CAST_FROM_ASCII -PRECOMPILED_HEADER = ../../corelib/global/qt_pch.h HEADERS += $$PWD/qrasterbackingstore_p.h SOURCES += $$PWD/qrasterbackingstore.cpp diff --git a/src/platformsupport/kmsconvenience/kmsconvenience.pro b/src/platformsupport/kmsconvenience/kmsconvenience.pro index d0ff0d4efb..5ea2e3f208 100644 --- a/src/platformsupport/kmsconvenience/kmsconvenience.pro +++ b/src/platformsupport/kmsconvenience/kmsconvenience.pro @@ -5,7 +5,6 @@ QT = core-private gui-private CONFIG += static internal_module DEFINES += QT_NO_CAST_FROM_ASCII -PRECOMPILED_HEADER = ../../corelib/global/qt_pch.h HEADERS += qkmsdevice_p.h diff --git a/src/platformsupport/platformcompositor/platformcompositor.pro b/src/platformsupport/platformcompositor/platformcompositor.pro index 633e71fb9d..81c31571d0 100644 --- a/src/platformsupport/platformcompositor/platformcompositor.pro +++ b/src/platformsupport/platformcompositor/platformcompositor.pro @@ -5,7 +5,6 @@ QT = core-private gui-private CONFIG += static internal_module DEFINES += QT_NO_CAST_FROM_ASCII -PRECOMPILED_HEADER = ../../corelib/global/qt_pch.h SOURCES += \ qopenglcompositor.cpp \ diff --git a/src/platformsupport/themes/themes.pro b/src/platformsupport/themes/themes.pro index 2aeb1f89ad..aeed4d2f47 100644 --- a/src/platformsupport/themes/themes.pro +++ b/src/platformsupport/themes/themes.pro @@ -5,7 +5,6 @@ QT = core-private gui-private CONFIG += static internal_module DEFINES += QT_NO_CAST_FROM_ASCII -PRECOMPILED_HEADER = ../../corelib/global/qt_pch.h unix:!darwin: \ include($$PWD/genericunix/genericunix.pri) |