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 /mkspecs/features | |
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>
Diffstat (limited to 'mkspecs/features')
-rw-r--r-- | mkspecs/features/qt_module_headers.prf | 16 |
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 |