summaryrefslogtreecommitdiffstats
path: root/mkspecs/win32-clang-msvc/qmake.conf
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/win32-clang-msvc/qmake.conf')
-rw-r--r--mkspecs/win32-clang-msvc/qmake.conf37
1 files changed, 35 insertions, 2 deletions
diff --git a/mkspecs/win32-clang-msvc/qmake.conf b/mkspecs/win32-clang-msvc/qmake.conf
index ba9704e069..5da7e2d1b2 100644
--- a/mkspecs/win32-clang-msvc/qmake.conf
+++ b/mkspecs/win32-clang-msvc/qmake.conf
@@ -6,6 +6,27 @@
include(../common/msvc-desktop.conf)
+# clang-cl does not use anything above SSE2 without extra arguments
+QMAKE_CFLAGS_SSE3 = -msse3
+QMAKE_CFLAGS_SSSE3 = -mssse3
+QMAKE_CFLAGS_SSE4_1 = -msse4.1
+QMAKE_CFLAGS_SSE4_2 = -msse4.2
+QMAKE_CFLAGS_AVX = -mavx
+QMAKE_CFLAGS_AVX2 = -mavx2
+QMAKE_CFLAGS_F16C = -mf16c
+QMAKE_CFLAGS_RDRND = -mrdrnd
+QMAKE_CFLAGS_AVX512F = -mavx512f
+QMAKE_CFLAGS_AVX512ER = -mavx512er
+QMAKE_CFLAGS_AVX512CD = -mavx512cd
+QMAKE_CFLAGS_AVX512PF = -mavx512pf
+QMAKE_CFLAGS_AVX512DQ = -mavx512dq
+QMAKE_CFLAGS_AVX512BW = -mavx512bw
+QMAKE_CFLAGS_AVX512VL = -mavx512vl
+QMAKE_CFLAGS_AVX512IFMA = -mavx512ifma
+QMAKE_CFLAGS_AVX512VBMI = -mavx512vbmi
+QMAKE_CFLAGS_AESNI = -maes
+QMAKE_CFLAGS_SHANI = -msha
+
QMAKE_COMPILER += clang_cl llvm
QMAKE_CC = clang-cl
@@ -15,7 +36,19 @@ QMAKE_CFLAGS += -Wno-microsoft-enum-value
QMAKE_CXXFLAGS += -Wno-microsoft-enum-value
-# Precompiled headers are not supported yet by clang
-CONFIG -= precompile_header
+QMAKE_LINK = lld-link
+QMAKE_LIB = llvm-lib /NOLOGO
+
+QMAKE_CFLAGS_LTCG = -flto=thin
+QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
+QMAKE_CFLAGS_LTCG_FATOBJECTS = -flto
+QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS
+# Leave QMAKE_LFLAGS_LTCG empty because lld-link doesn't need any additional parameters
+QMAKE_LFLAGS_LTCG =
+
+QMAKE_CFLAGS_OPTIMIZE_SIZE = /clang:-Oz
+QMAKE_CFLAGS_OPTIMIZE_FULL = /clang:-O3
+
+QMAKE_LFLAGS_RELEASE += /OPT:REF,ICF,LBR
load(qt_config)