diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index ee0fdfef48..dd2923f9be 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -82,5 +82,7 @@ breakpad { !isEmpty(QMAKE_STRIP):QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t)$$quote($$QMAKE_STRIP $$DEBUGFILENAME) } +!precompile_header: SOURCES += $$NO_PCH_SOURCES + QMAKE_INCDIR += $$QMAKE_INCDIR_POST QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST diff --git a/mkspecs/features/precompile_header.prf b/mkspecs/features/precompile_header.prf new file mode 100644 index 0000000000..ed7fcaa1b4 --- /dev/null +++ b/mkspecs/features/precompile_header.prf @@ -0,0 +1,24 @@ +# +# W A R N I N G +# ------------- +# +# This file is not part of the Qt API. It exists purely as an +# implementation detail. It may change from version to version +# without notice, or even be removed. +# +# We mean it. +# + +# +# Set up extra compiler for PCH disabled sources +# +no_pch_compiler.commands = ${QMAKE_VAR_QMAKE_CXX} -c $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} +msvc: no_pch_compiler.commands += -Fo${QMAKE_FILE_OUT} +else: no_pch_compiler.commands += -o ${QMAKE_FILE_OUT} +no_pch_compiler.dependency_type = TYPE_C +no_pch_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} +no_pch_compiler.input = NO_PCH_SOURCES +no_pch_compiler.variable_out = OBJECTS +no_pch_compiler.name = compiling[no_pch] ${QMAKE_FILE_IN} +silent: no_pch_compiler.commands = @echo compiling[no_pch] ${QMAKE_FILE_IN} && $$no_pch_compiler.commands +QMAKE_EXTRA_COMPILERS += no_pch_compiler diff --git a/src/corelib/tools/tools.pri b/src/corelib/tools/tools.pri index c69d270e33..ce3a6f9e8c 100644 --- a/src/corelib/tools/tools.pri +++ b/src/corelib/tools/tools.pri @@ -115,7 +115,7 @@ SOURCES += \ tools/qvsnprintf.cpp NO_PCH_SOURCES = tools/qstring_compat.cpp -false: SOURCES += $$NO_PCH_SOURCES +false: SOURCES += $$NO_PCH_SOURCES # Hack for QtCreator !nacl:mac: { SOURCES += tools/qelapsedtimer_mac.cpp @@ -198,14 +198,3 @@ INCLUDEPATH += ../3rdparty/md5 \ !macx-icc:!vxworks:unix:LIBS_PRIVATE += -lm TR_EXCLUDE += ../3rdparty/* - -no_pch_compiler.commands = $$QMAKE_CXX -c $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -win32:!gcc:no_pch_compiler.commands += -Fo${QMAKE_FILE_OUT} -else:no_pch_compiler.commands += -o ${QMAKE_FILE_OUT} -no_pch_compiler.dependency_type = TYPE_C -no_pch_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} -no_pch_compiler.input = NO_PCH_SOURCES -no_pch_compiler.variable_out = OBJECTS -no_pch_compiler.name = compiling[no_pch] ${QMAKE_FILE_IN} -silent:no_pch_compiler.commands = @echo compiling[no_pch] ${QMAKE_FILE_IN} && $$no_pch_compiler.commands -QMAKE_EXTRA_COMPILERS += no_pch_compiler