diff --git a/config.tests/common/avx/avx.pro b/config.tests/common/avx/avx.pro index 8d1b9702bcc..bf84089883e 100644 --- a/config.tests/common/avx/avx.pro +++ b/config.tests/common/avx/avx.pro @@ -1,5 +1,5 @@ SOURCES = avx.cpp CONFIG -= qt dylib release debug_and_release CONFIG += debug console -isEmpty(QMAKE_CFLAGS_AVX):error("This compiler does not support AVX") +!defined(QMAKE_CFLAGS_AVX, "var"):error("This compiler does not support AVX") else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_AVX diff --git a/config.tests/common/avx2/avx2.pro b/config.tests/common/avx2/avx2.pro index 927f64efc8c..7ccf66ca28b 100644 --- a/config.tests/common/avx2/avx2.pro +++ b/config.tests/common/avx2/avx2.pro @@ -1,5 +1,5 @@ SOURCES = avx2.cpp CONFIG -= qt dylib release debug_and_release CONFIG += debug console -isEmpty(QMAKE_CFLAGS_AVX2):error("This compiler does not support AVX2") +!defined(QMAKE_CFLAGS_AVX2, "var"):error("This compiler does not support AVX2") else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_AVX2 diff --git a/config.tests/common/avx512/avx512.pro b/config.tests/common/avx512/avx512.pro index 37cfb2ea541..96dddb14fd6 100644 --- a/config.tests/common/avx512/avx512.pro +++ b/config.tests/common/avx512/avx512.pro @@ -2,11 +2,11 @@ SOURCES = avx512.cpp CONFIG -= qt dylib release debug_and_release CONFIG += debug console -isEmpty(AVX512): error("You must set the AVX512 variable!") +!defined(AVX512, "var"): error("You must set the AVX512 variable!") varname = QMAKE_CFLAGS_AVX512$$AVX512 value = $$eval($$varname) -isEmpty($$varname): error("This compiler does not support AVX512") +!defined($$varname, "var"): error("This compiler does not support AVX512") QMAKE_CXXFLAGS += $$value DEFINES += AVX512WANT=$$AVX512 diff --git a/config.tests/common/sse2/sse2.pro b/config.tests/common/sse2/sse2.pro index b4031f13fa4..0567eba19d0 100644 --- a/config.tests/common/sse2/sse2.pro +++ b/config.tests/common/sse2/sse2.pro @@ -1,5 +1,5 @@ SOURCES = sse2.cpp CONFIG -= qt dylib release debug_and_release CONFIG += debug console -isEmpty(QMAKE_CFLAGS_SSE2):error("This compiler does not support SSE2") +!defined(QMAKE_CFLAGS_SSE2, var): error("This compiler does not support SSE2") else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE2 diff --git a/config.tests/common/sse3/sse3.pro b/config.tests/common/sse3/sse3.pro index f704c40c759..e2e09bac91d 100644 --- a/config.tests/common/sse3/sse3.pro +++ b/config.tests/common/sse3/sse3.pro @@ -1,5 +1,5 @@ SOURCES = sse3.cpp CONFIG -= qt dylib release debug_and_release CONFIG += debug console -isEmpty(QMAKE_CFLAGS_SSE3):error("This compiler does not support SSE3") +!defined(QMAKE_CFLAGS_SSE3, "var"):error("This compiler does not support SSE3") else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE3 diff --git a/config.tests/common/sse4_1/sse4_1.pro b/config.tests/common/sse4_1/sse4_1.pro index 5cc04e7c5cf..273c705efc1 100644 --- a/config.tests/common/sse4_1/sse4_1.pro +++ b/config.tests/common/sse4_1/sse4_1.pro @@ -1,5 +1,5 @@ SOURCES = sse4_1.cpp CONFIG -= qt dylib release debug_and_release CONFIG += debug console -isEmpty(QMAKE_CFLAGS_SSE4_1):error("This compiler does not support SSE4.1") +!defined(QMAKE_CFLAGS_SSE4_1, "var"):error("This compiler does not support SSE4.1") else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE4_1 diff --git a/config.tests/common/sse4_2/sse4_2.pro b/config.tests/common/sse4_2/sse4_2.pro index 6a04b1f9a59..3816fdeae97 100644 --- a/config.tests/common/sse4_2/sse4_2.pro +++ b/config.tests/common/sse4_2/sse4_2.pro @@ -1,5 +1,5 @@ SOURCES = sse4_2.cpp CONFIG -= qt dylib release debug_and_release CONFIG += debug console -isEmpty(QMAKE_CFLAGS_SSE4_2):error("This compiler does not support SSE4.2") +!defined(QMAKE_CFLAGS_SSE4_2, "var"):error("This compiler does not support SSE4.2") else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE4_2 diff --git a/config.tests/common/ssse3/ssse3.pro b/config.tests/common/ssse3/ssse3.pro index 5b207e78ce1..597b1691402 100644 --- a/config.tests/common/ssse3/ssse3.pro +++ b/config.tests/common/ssse3/ssse3.pro @@ -1,5 +1,5 @@ SOURCES = ssse3.cpp CONFIG -= qt dylib release debug_and_release CONFIG += debug console -isEmpty(QMAKE_CFLAGS_SSSE3):error("This compiler does not support SSSE3") +!defined(QMAKE_CFLAGS_SSSE3, "var"):error("This compiler does not support SSSE3") else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSSE3 diff --git a/mkspecs/common/msvc-desktop.conf b/mkspecs/common/msvc-desktop.conf index eec9e1f688a..1b9d57bff05 100644 --- a/mkspecs/common/msvc-desktop.conf +++ b/mkspecs/common/msvc-desktop.conf @@ -35,11 +35,18 @@ QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi QMAKE_CFLAGS_DEBUG = -Zi -MDd QMAKE_CFLAGS_YACC = QMAKE_CFLAGS_LTCG = -GL -QMAKE_CFLAGS_SSE2 = -arch:SSE2 -QMAKE_CFLAGS_SSE3 = -arch:SSE2 -QMAKE_CFLAGS_SSSE3 = -arch:SSE2 -QMAKE_CFLAGS_SSE4_1 = -arch:SSE2 -QMAKE_CFLAGS_SSE4_2 = -arch:SSE2 + +contains(QMAKE_TARGET.arch, x86_64) { + # SSE2 is mandatory on 64-bit mode, so skip the option. It triggers: + # cl : Command line warning D9002 : ignoring unknown option '-arch:SSE2' + QMAKE_CFLAGS_SSE2 = +} else { + QMAKE_CFLAGS_SSE2 = -arch:SSE2 +} +QMAKE_CFLAGS_SSE3 = $$QMAKE_CFLAGS_SSE2 +QMAKE_CFLAGS_SSSE3 = $$QMAKE_CFLAGS_SSE2 +QMAKE_CFLAGS_SSE4_1 = $$QMAKE_CFLAGS_SSE2 +QMAKE_CFLAGS_SSE4_2 = $$QMAKE_CFLAGS_SSE2 QMAKE_CXX = $$QMAKE_CC QMAKE_CXXFLAGS = $$QMAKE_CFLAGS