diff options
Diffstat (limited to 'mkspecs/features/qt_module_headers.prf')
-rw-r--r-- | mkspecs/features/qt_module_headers.prf | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf index 8837410b8d..6cc72bb5e3 100644 --- a/mkspecs/features/qt_module_headers.prf +++ b/mkspecs/features/qt_module_headers.prf @@ -121,18 +121,19 @@ exists($$OUT_PWD/qt$${MODULE}-config.h) { for (injection, SYNCQT.INJECTIONS) { injects = $$split(injection, :) dst_hdr = $$absolute_path($$member(injects, 0), $$MODULE_INC_OUTDIR) - fwd_hdr = $$member(injects, 1) + ofwd_hdr = $$member(injects, 1) + fwd_hdr = $$replace(ofwd_hdr, ^\\^, ) MAIN_FWD = $$MODULE_INC_OUTDIR/$$fwd_hdr MAIN_FWD_CONT = '$${LITERAL_HASH}include "$$relative_path($$dst_hdr, $$dirname(MAIN_FWD))"' write_file($$MAIN_FWD, MAIN_FWD_CONT)|error() - touch($$MAIN_FWD, $$dst_hdr) + equals(fwd_hdr, ofwd_hdr): touch($$MAIN_FWD, $$dst_hdr) !git_build: QMAKE_DISTCLEAN += $$MAIN_FWD injects = $$member(injects, 2, -1) for (inject, injects) { CLASS_FWD = $$MODULE_INC_OUTDIR/$$inject CLASS_FWD_CONT = '$${LITERAL_HASH}include "$$fwd_hdr"' write_file($$CLASS_FWD, CLASS_FWD_CONT)|error() - touch($$CLASS_FWD, $$dst_hdr) + touch($$CLASS_FWD, $$MAIN_FWD) !git_build: QMAKE_DISTCLEAN += $$CLASS_FWD } } @@ -213,20 +214,15 @@ headersclean:!internal_module { !contains(QT_ARCH, arm):!contains(QT_ARCH, mips): \ hcleanFLAGS += -Wcast-align - greaterThan(QT_CLANG_MAJOR_VERSION, 3) { - hcleanFLAGS += -Wdouble-promotion - } greaterThan(QT_CLANG_MAJOR_VERSION, 2):greaterThan(QT_CLANG_MINOR_VERSION, 7) { - hcleanFLAGS += -Wdouble-promotion - } + clang_ver = $${QT_CLANG_MAJOR_VERSION}.$${QT_CLANG_MINOR_VERSION} + versionAtLeast(clang_ver, 3.8): hcleanFLAGS += -Wdouble-promotion !clang { # options accepted only by GCC - greaterThan(QT_GCC_MAJOR_VERSION, 4) { - hcleanFLAGS += -Wdouble-promotion - } greaterThan(QT_GCC_MAJOR_VERSION, 3):greaterThan(QT_GCC_MINOR_VERSION, 4) { - hcleanFLAGS += -Wdouble-promotion - } + gcc_ver = $${QT_GCC_MAJOR_VERSION}.$${QT_GCC_MINOR_VERSION} + versionAtLeast(gcc_ver, 4.5): hcleanFLAGS += -Wdouble-promotion + c++11 { # only enabled for actual c++11 builds due to # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52806 @@ -252,12 +248,17 @@ headersclean:!internal_module { } hcleanCOMMAND = $$QMAKE_CXX -c $(CXXFLAGS) $$hcleanFLAGS $(INCPATH) $$hcleanDEFS -xc++ ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} - } else: win32-msvc2013 { + } else: msvc:!intel_icl { # 4180: qualifier applied to function type has no meaning; ignored # 4458: declaration of 'identifier' hides class member # -Za enables strict standards behavior, but we can't add it because # <windows.h> and <GL.h> violate the standards. hcleanFLAGS = -WX -W3 -wd4180 -wd4458 + + # MSVC 2015 (compiler version 19.0): + # 4577: 'noexcept' used with no exception handling mode specified; termination on exception is not guaranteed. Specify /EHsc + greaterThan(QMAKE_MSC_VER, 18): hcleanFLAGS += -wd4577 + hcleanCOMMAND = $$QMAKE_CXX -c $(CXXFLAGS) $$hcleanFLAGS $(INCPATH) $$hcleanDEFS -FI${QMAKE_FILE_IN} -Fo${QMAKE_FILE_OUT} \ $$[QT_INSTALL_DATA/src]/mkspecs/features/data/dummy.cpp } |