diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-12-15 01:00:31 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-12-15 01:00:31 +0100 |
commit | 4b04e47be90ae809d6061403a9fb43da13d56902 (patch) | |
tree | c66b8d9d842a5213e6ba37a64d0baa669015bc20 /mkspecs | |
parent | d9004632839a8cdb36f9bc82b7a7a3ad7d64d419 (diff) | |
parent | e9c08f8287556742fbb927653b4c2d071923e5a7 (diff) |
Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: Iad06d8c07dfc288c9d1a9f7ee3520285cea60546
Diffstat (limited to 'mkspecs')
-rw-r--r-- | mkspecs/common/msvc-based-version.conf | 32 | ||||
-rw-r--r-- | mkspecs/common/msvc-version.conf | 10 | ||||
-rw-r--r-- | mkspecs/features/qt_common.prf | 7 | ||||
-rw-r--r-- | mkspecs/features/toolchain.prf | 15 |
4 files changed, 50 insertions, 14 deletions
diff --git a/mkspecs/common/msvc-based-version.conf b/mkspecs/common/msvc-based-version.conf new file mode 100644 index 0000000000..38aecbaf59 --- /dev/null +++ b/mkspecs/common/msvc-based-version.conf @@ -0,0 +1,32 @@ +# +# qmake configuration for Compilers based on the Microsoft Visual Studio +# C/C++ Compilers like win32-clang-msvc + +# +# Version-specific changes +# + +isEmpty(QMAKE_MSC_VER): error("msvc-based-version.conf loaded but QMAKE_MSC_VER isn't set") + +MSVC_VER = 14.0 +COMPAT_MKSPEC = win32-msvc2015 + +# -utf-8 compiler option for Visual Studio 2015 Update 2 +greaterThan(QMAKE_MSC_FULL_VER, 190023918):!intel_icl { + isEmpty(QT_CLANG_MAJOR_VERSION)|!lessThan(QT_CLANG_MAJOR_VERSION, 4) { + QMAKE_CFLAGS_UTF8_SOURCE = -utf-8 + } +} + +greaterThan(QMAKE_MSC_VER, 1909) { + # Visual Studio 2017 (15.0) / Visual C++ 19.10 and up + MSVC_VER = 15.0 + COMPAT_MKSPEC = win32-msvc2017 +} + +greaterThan(QMAKE_MSC_VER, 1910) { + # No compat spec past MSVC 2017 + COMPAT_MKSPEC = +} + +!isEmpty(COMPAT_MKSPEC):!$$COMPAT_MKSPEC: CONFIG += $$COMPAT_MKSPEC diff --git a/mkspecs/common/msvc-version.conf b/mkspecs/common/msvc-version.conf index 3fb55c9d81..de8ba56b7b 100644 --- a/mkspecs/common/msvc-version.conf +++ b/mkspecs/common/msvc-version.conf @@ -1,7 +1,6 @@ # # qmake configuration for Microsoft Visual Studio C/C++ Compiler -# This file is used by win32-msvc, win32-clang-msvc, and all -# winrt-XXX-msvcXXX specs +# This file is used by win32-msvc and all winrt-XXX-msvcXXX specs # # @@ -70,11 +69,8 @@ greaterThan(QMAKE_MSC_VER, 1899) { QMAKE_CXXFLAGS += -Zc:strictStrings -Zc:throwingNew QMAKE_CXXFLAGS_WARN_ON += -w44456 -w44457 -w44458 -wd4577 -wd4467 - greaterThan(QMAKE_MSC_FULL_VER, 190023918):!intel_icl { - isEmpty(QT_CLANG_MAJOR_VERSION)|!lessThan(QT_CLANG_MAJOR_VERSION, 4) { - QMAKE_CFLAGS_UTF8_SOURCE = -utf-8 - } - } + # -utf-8 compiler option for Visual Studio 2015 Update 2 + greaterThan(QMAKE_MSC_FULL_VER, 190023918): QMAKE_CFLAGS_UTF8_SOURCE = -utf-8 } greaterThan(QMAKE_MSC_VER, 1909) { diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf index 669ac902a8..ae859a81ff 100644 --- a/mkspecs/features/qt_common.prf +++ b/mkspecs/features/qt_common.prf @@ -112,16 +112,17 @@ warnings_are_errors:warning_clean { QMAKE_CXXFLAGS_WARN_ON += -Werror -Wno-error=\\$${LITERAL_HASH}warnings -Wno-error=deprecated-declarations $$WERROR } } else:intel_icc:linux { - # Intel CC 13.0 - 17.0, on Linux only + # Intel CC 13.0 - 18.0, on Linux only ver = $${QT_ICC_MAJOR_VERSION}.$${QT_ICC_MINOR_VERSION} - linux:contains(ver, "(1[3456]\\.|17\\.0)") { + linux:contains(ver, "(1[345678]\\.|19\\.0)") { # 177: function "entity" was declared but never referenced # (too aggressive; ICC reports even for functions created due to template instantiation) # 1224: #warning directive # 1478: function "entity" (declared at line N) was declared deprecated + # 1786: function "entity" (declared at line N of "file") was declared deprecated ("message") # 1881: argument must be a constant null pointer value # (NULL in C++ is usually a literal 0) - QMAKE_CXXFLAGS_WARN_ON += -Werror -ww177,1224,1478,1881 $$WERROR + QMAKE_CXXFLAGS_WARN_ON += -Werror -ww177,1224,1478,1786,1881 $$WERROR } } else:gcc:!clang:!intel_icc:!rim_qcc { # GCC 4.6-4.9, 5.x, ... diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf index 55295f271f..c7ea20e180 100644 --- a/mkspecs/features/toolchain.prf +++ b/mkspecs/features/toolchain.prf @@ -178,13 +178,16 @@ isEmpty($${target_prefix}.INCDIRS) { QMAKE_DEFAULT_INCDIRS = $$split(INCLUDE, $$QMAKE_DIRLIST_SEP) } - unix { + unix:if(!cross_compile|host_build) { isEmpty(QMAKE_DEFAULT_INCDIRS): QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include isEmpty(QMAKE_DEFAULT_LIBDIRS): QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib } - cache($${target_prefix}.INCDIRS, set stash, QMAKE_DEFAULT_INCDIRS) - cache($${target_prefix}.LIBDIRS, set stash, QMAKE_DEFAULT_LIBDIRS) + # cache() complains about undefined variables and doesn't persist empty ones. + !isEmpty(QMAKE_DEFAULT_INCDIRS): \ + cache($${target_prefix}.INCDIRS, set stash, QMAKE_DEFAULT_INCDIRS) + !isEmpty(QMAKE_DEFAULT_LIBDIRS): \ + cache($${target_prefix}.LIBDIRS, set stash, QMAKE_DEFAULT_LIBDIRS) } else { QMAKE_DEFAULT_INCDIRS = $$eval($${target_prefix}.INCDIRS) QMAKE_DEFAULT_LIBDIRS = $$eval($${target_prefix}.LIBDIRS) @@ -278,4 +281,8 @@ QMAKE_COMPILER_DEFINES += __cplusplus=$$QT_COMPILER_STDCXX QMAKE_CFLAGS += $$QMAKE_CFLAGS_MSVC_COMPAT QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_MSVC_COMPAT -msvc:!intel_icl:!clang_cl: include(../common/msvc-version.conf) +clang_cl|intel_icl { + include(../common/msvc-based-version.conf) +} else: msvc { + include(../common/msvc-version.conf) +} |