diff options
Diffstat (limited to 'mkspecs/common/msvc-version.conf')
-rw-r--r-- | mkspecs/common/msvc-version.conf | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/mkspecs/common/msvc-version.conf b/mkspecs/common/msvc-version.conf new file mode 100644 index 0000000000..664e48b042 --- /dev/null +++ b/mkspecs/common/msvc-version.conf @@ -0,0 +1,82 @@ +# +# 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 +# + +# +# Version-specific changes +# + +isEmpty(QMAKE_MSC_VER): error("msvc-version.conf loaded but QMAKE_MSC_VER isn't set") + +MSVC_VER = 8.0 +COMPAT_MKSPEC = win32-msvc2005 + +greaterThan(QMAKE_MSC_VER, 1499) { + # Visual Studio 2008 (9.0) / Visual C++ 15.0 and up + MSVC_VER = 9.0 + COMPAT_MKSPEC = win32-msvc2008 + QMAKE_CFLAGS_MP = -MP + QMAKE_CXXFLAGS_MP = $$QMAKE_CFLAGS_MP +} + +greaterThan(QMAKE_MSC_VER, 1599) { + # Visual Studio 2010 (10.0) / Visual C++ 16.0 and up + MSVC_VER = 10.0 + COMPAT_MKSPEC = win32-msvc2010 + MAKEFILE_GENERATOR = MSBUILD + + QMAKE_CFLAGS_AVX = -arch:AVX + QMAKE_CFLAGS_AVX2 = -arch:AVX + + VCPROJ_EXTENSION = .vcxproj +} + +greaterThan(QMAKE_MSC_VER, 1699) { + # Visual Studio 2012 (11.0) / Visual C++ 17.0 and up + MSVC_VER = 11.0 + COMPAT_MKSPEC = win32-msvc2012 + QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -D_HAS_EXCEPTIONS=0 + QT_CONFIG += c++11 + CONFIG += c++11 +} + +greaterThan(QMAKE_MSC_VER, 1799) { + # Visual Studio 2013 (12.0) / Visual C++ 18.0 and up + MSVC_VER = 12.0 + COMPAT_MKSPEC = win32-msvc2013 + QMAKE_CFLAGS += -FS + QMAKE_CXXFLAGS += -FS + + equals(QMAKE_MSC_VER, 1800) { + QMAKE_CFLAGS_RELEASE += -Zc:strictStrings + QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -Zc:strictStrings + QMAKE_CXXFLAGS_RELEASE += -Zc:strictStrings + QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -Zc:strictStrings + } +} + +greaterThan(QMAKE_MSC_VER, 1899) { + # Visual Studio 2015 (14.0) / Visual C++ 19.0 and up + MSVC_VER = 14.0 + COMPAT_MKSPEC = win32-msvc2015 + QMAKE_CFLAGS += -Zc:strictStrings + QMAKE_CFLAGS_WARN_ON += -w44456 -w44457 -w44458 + QMAKE_CFLAGS_AVX2 = -arch:AVX2 + QMAKE_CXXFLAGS += -Zc:strictStrings -Zc:throwingNew + QMAKE_CXXFLAGS_WARN_ON += -w44456 -w44457 -w44458 -wd4577 -wd4467 +} + +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 |