From 47c9b66a8b4cf95983e7bca772a40983d52fc6d6 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sun, 16 Apr 2017 10:51:15 -0700 Subject: 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 --- mkspecs/features/qt_module_headers.prf | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'mkspecs/features') 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 -- cgit v1.2.3