summaryrefslogtreecommitdiffstats
path: root/mkspecs/features
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 /mkspecs/features
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>
Diffstat (limited to 'mkspecs/features')
-rw-r--r--mkspecs/features/qt_module_headers.prf16
1 files changed, 11 insertions, 5 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