summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2017-04-16 10:51:15 -0700
committerThiago Macieira <thiago.macieira@intel.com>2017-04-20 05:39:47 +0000
commit47c9b66a8b4cf95983e7bca772a40983d52fc6d6 (patch)
tree35a38addfeec89006ceca1366b9f130fc40bf33f
parent255d291efd5ed3e193a6340055c35887f687f0ca (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>
-rw-r--r--mkspecs/features/qt_module_headers.prf16
-rw-r--r--src/platformsupport/accessibility/accessibility.pro1
-rw-r--r--src/platformsupport/cglconvenience/cglconvenience.pro1
-rw-r--r--src/platformsupport/clipboard/clipboard.pro1
-rw-r--r--src/platformsupport/devicediscovery/devicediscovery.pro1
-rw-r--r--src/platformsupport/glxconvenience/glxconvenience.pro1
-rw-r--r--src/platformsupport/graphics/graphics.pro1
-rw-r--r--src/platformsupport/kmsconvenience/kmsconvenience.pro1
-rw-r--r--src/platformsupport/platformcompositor/platformcompositor.pro1
-rw-r--r--src/platformsupport/themes/themes.pro1
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)