#
# qmake configuration for win32-icc
#
# Written for Intel C++
#

include(../common/angle.conf)

MAKEFILE_GENERATOR      = MSVC.NET
QMAKE_PLATFORM          = win32
CONFIG                 += incremental flat debug_and_release debug_and_release_target
DEFINES                += UNICODE
QMAKE_COMPILER_DEFINES += __INTEL_COMPILER WIN32

QMAKE_COMPILER          = msvc intel_icl  # icl pretends to be msvc

QMAKE_CC                = icl
QMAKE_LEX               = flex
QMAKE_LEXFLAGS          =
QMAKE_YACC              = bison -y
QMAKE_YACCFLAGS         = -d
QMAKE_CFLAGS            = -nologo -Zm200 /Qprec /Qwd1744,1738,809
QMAKE_CFLAGS_WARN_ON    = -W3 /Qwd673
QMAKE_CFLAGS_WARN_OFF   = -W0 /Qwd673
QMAKE_CFLAGS_RELEASE    = -O2 -MD
QMAKE_CFLAGS_DEBUG      = -Zi -MDd -Od
QMAKE_CFLAGS_YACC       =
QMAKE_CFLAGS_LTCG       = -Qipo
QMAKE_CFLAGS_DISABLE_LTCG = -Qno-ipo
QMAKE_CFLAGS_SSE2       = -QxSSE2
QMAKE_CFLAGS_SSE3       = -QxSSE3
QMAKE_CFLAGS_SSSE3      = -QxSSSE3
QMAKE_CFLAGS_SSE4_1     = -QxSSE4.1
QMAKE_CFLAGS_SSE4_2     = -QxSSE4.2
QMAKE_CFLAGS_AVX        = -QxAVX
QMAKE_CFLAGS_AVX2       = -QxCORE-AVX2
QMAKE_CFLAGS_AVX512F   += -QxCOMMON-AVX512
QMAKE_CFLAGS_AVX512CD  += -QxCOMMON-AVX512
QMAKE_CFLAGS_AVX512ER  += -QxMIC-AVX512
QMAKE_CFLAGS_AVX512PF  += -QxMIC-AVX512
QMAKE_CFLAGS_AVX512DQ  += -QxCORE-AVX512
QMAKE_CFLAGS_AVX512BW  += -QxCORE-AVX512
QMAKE_CFLAGS_AVX512VL  += -QxCORE-AVX512

QMAKE_CXX               = $$QMAKE_CC
QMAKE_CXXFLAGS          = $$QMAKE_CFLAGS /Zc:forScope
QMAKE_CXXFLAGS_WARN_ON  = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE  = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG    = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC     = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_STL_ON   = -GX
QMAKE_CXXFLAGS_STL_OFF  =
QMAKE_CXXFLAGS_RTTI_ON  = -GR
QMAKE_CXXFLAGS_RTTI_OFF =
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc
QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
QMAKE_CXXFLAGS_CXX11    = -Qstd=c++11
# ICC supports the following but Qt won't compile
#QMAKE_CXXFLAGS_CXX14    = -Qstd=c++14
#QMAKE_CXXFLAGS_CXX1Z    = -Qstd=c++1z
QMAKE_CXXFLAGS_LTCG     = $$QMAKE_CFLAGS_LTCG
QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG

QMAKE_INCDIR            =

QMAKE_RUN_CC            = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
QMAKE_RUN_CC_IMP        = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
QMAKE_RUN_CC_IMP_BATCH  = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
QMAKE_RUN_CXX           = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
QMAKE_RUN_CXX_IMP       = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<

QMAKE_LINK              = xilink
QMAKE_LFLAGS            = /NOLOGO
QMAKE_LFLAGS_RELEASE    =
QMAKE_LFLAGS_DEBUG      = /DEBUG
QMAKE_LFLAGS_CONSOLE    = /SUBSYSTEM:console
QMAKE_LFLAGS_WINDOWS    = /SUBSYSTEM:windows
QMAKE_LFLAGS_DLL        = /DLL
QMAKE_LFLAGS_LTCG       = $$QMAKE_CFLAGS_LTCG
QMAKE_PREFIX_SHLIB      =
QMAKE_EXTENSION_SHLIB   = dll
QMAKE_PREFIX_STATICLIB  =
QMAKE_EXTENSION_STATICLIB = lib

QMAKE_LIBS              =
QMAKE_LIBS_CORE         = kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib
QMAKE_LIBS_GUI          = gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib user32.lib advapi32.lib
QMAKE_LIBS_NETWORK      = ws2_32.lib
QMAKE_LIBS_OPENGL       = glu32.lib opengl32.lib gdi32.lib user32.lib delayimp.lib
QMAKE_LIBS_OPENGL_ES2   = $${LIBEGL_NAME}.lib $${LIBGLESV2_NAME}.lib gdi32.lib user32.lib
QMAKE_LIBS_OPENGL_ES2_DEBUG = $${LIBEGL_NAME}d.lib $${LIBGLESV2_NAME}d.lib gdi32.lib user32.lib
QMAKE_LIBS_COMPAT       = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib ws2_32.lib
QMAKE_LIBS_QT_ENTRY     = -lqtmain

QMAKE_IDL               = midl
QMAKE_LIB               = xilib /NOLOGO
QMAKE_RC                = rc

DSP_EXTENSION           = .dsp
load(qt_config)
