2014-11-20 01:43:21 +00:00
|
|
|
#
|
2017-11-24 20:35:17 +00:00
|
|
|
# This file is used as a basis for the following compilers:
|
2014-11-20 01:43:21 +00:00
|
|
|
#
|
2017-11-24 20:35:17 +00:00
|
|
|
# - Microsoft C/C++ Optimizing Compiler (all desktop versions)
|
|
|
|
# - Intel C++ Compiler on Windows
|
|
|
|
# - Clang-cl
|
|
|
|
#
|
|
|
|
# Baseline:
|
|
|
|
#
|
|
|
|
# - Visual Studio 2005 (8.0), VC++ 14.0
|
2014-11-20 01:43:21 +00:00
|
|
|
#
|
2016-11-16 13:18:42 +00:00
|
|
|
# Version-specific settings go in msvc-version.conf (loaded by default_pre)
|
2014-11-20 01:43:21 +00:00
|
|
|
#
|
|
|
|
|
|
|
|
MAKEFILE_GENERATOR = MSVC.NET
|
|
|
|
QMAKE_PLATFORM = win32
|
|
|
|
QMAKE_COMPILER = msvc
|
unify windows mkspecs: update definitions
mingw-w64 toolchain:
- add missing compiler definitions, similar to
'msvc-desktop.conf' toolchain,
- describe the reasons of missing compiler definitions, available in
'msvc-desktop.conf' toolchain,
- add missing 'QMAKE_CXXFLAGS' and 'QMAKE_CXXFLAGS_WARN_ON' variables,
similar to 'msvc-desktop.conf' toolchain.
ICC on Windows toolchain:
- add 'QMAKE_CFLAGS_OPTIMIZE_FULL' variable, similar to 'gcc-base.conf'
toolchain, though left it unused for now,
- add missing flags to 'QMAKE_CFLAGS' variable, similar to
'msvc-desktop.conf' toolchain,
- update deprecated 'Qwd' flag with 'Qdiag-disable',
- use 'QMAKE_CFLAGS_OPTIMIZE_DEBUG' variable instead of '-Od' flag,
similar to 'gcc-base.conf' toolchain (ICC implies '-O2' optimization
level by default, while MSVC implies '-Od'),
- add 'QMAKE_CFLAGS_UTF8_SOURCE' variable, similar to
'msvc-version.conf' toolchain; use a workaround to initialize it,
until '-utf-8' flag would be supported by ICC on Windows,
- update deprecated '-Qstd=c++1z' flag with '-Qstd=c++17',
MSVC toolchain:
- remove 'incremental' from MSVC 'CONFIG' variable, since it has
relevance only for the Unix generator,
- add 'QMAKE_CFLAGS_OPTIMIZE_DEBUG' variable, used in ICC for Windows
toolchain,
- add empty 'QMAKE_LIBS' variable, similar to 'win32-g++' toolchain,
- add 'uuid.lib' library to 'QMAKE_LIBS_GUI' variable, similar to
'win32-g++' toolchain,
- add C++14 and C++17 language support flags, though left them disabled
for now, similar to 'win32-icc' toolchain.
Change-Id: Ideef62d0422674184836faa655bfc5d09a5f612f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-01-10 15:51:54 +00:00
|
|
|
CONFIG += flat debug_and_release debug_and_release_target precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe
|
2018-08-23 11:16:15 +00:00
|
|
|
# MSVC 2017 15.8+ fixed std::aligned_storage but compilation fails without
|
|
|
|
# _ENABLE_EXTENDED_ALIGNED_STORAGE flag since the fix breaks binary compatibility.
|
|
|
|
DEFINES += UNICODE _UNICODE WIN32 _ENABLE_EXTENDED_ALIGNED_STORAGE
|
2019-09-12 08:27:16 +00:00
|
|
|
DEFINES_RELEASE += NDEBUG
|
2016-12-15 15:20:27 +00:00
|
|
|
QMAKE_COMPILER_DEFINES += _WIN32
|
2014-11-20 01:43:21 +00:00
|
|
|
contains(QMAKE_TARGET.arch, x86_64) {
|
|
|
|
DEFINES += WIN64
|
|
|
|
QMAKE_COMPILER_DEFINES += _WIN64
|
|
|
|
}
|
|
|
|
|
unify windows mkspecs: update definitions
mingw-w64 toolchain:
- add missing compiler definitions, similar to
'msvc-desktop.conf' toolchain,
- describe the reasons of missing compiler definitions, available in
'msvc-desktop.conf' toolchain,
- add missing 'QMAKE_CXXFLAGS' and 'QMAKE_CXXFLAGS_WARN_ON' variables,
similar to 'msvc-desktop.conf' toolchain.
ICC on Windows toolchain:
- add 'QMAKE_CFLAGS_OPTIMIZE_FULL' variable, similar to 'gcc-base.conf'
toolchain, though left it unused for now,
- add missing flags to 'QMAKE_CFLAGS' variable, similar to
'msvc-desktop.conf' toolchain,
- update deprecated 'Qwd' flag with 'Qdiag-disable',
- use 'QMAKE_CFLAGS_OPTIMIZE_DEBUG' variable instead of '-Od' flag,
similar to 'gcc-base.conf' toolchain (ICC implies '-O2' optimization
level by default, while MSVC implies '-Od'),
- add 'QMAKE_CFLAGS_UTF8_SOURCE' variable, similar to
'msvc-version.conf' toolchain; use a workaround to initialize it,
until '-utf-8' flag would be supported by ICC on Windows,
- update deprecated '-Qstd=c++1z' flag with '-Qstd=c++17',
MSVC toolchain:
- remove 'incremental' from MSVC 'CONFIG' variable, since it has
relevance only for the Unix generator,
- add 'QMAKE_CFLAGS_OPTIMIZE_DEBUG' variable, used in ICC for Windows
toolchain,
- add empty 'QMAKE_LIBS' variable, similar to 'win32-g++' toolchain,
- add 'uuid.lib' library to 'QMAKE_LIBS_GUI' variable, similar to
'win32-g++' toolchain,
- add C++14 and C++17 language support flags, though left them disabled
for now, similar to 'win32-icc' toolchain.
Change-Id: Ideef62d0422674184836faa655bfc5d09a5f612f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-01-10 15:51:54 +00:00
|
|
|
QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Od
|
2017-04-07 13:49:10 +00:00
|
|
|
QMAKE_CFLAGS_OPTIMIZE = -O2
|
|
|
|
QMAKE_CFLAGS_OPTIMIZE_SIZE = -O1
|
|
|
|
|
2014-11-20 01:43:21 +00:00
|
|
|
QMAKE_CC = cl
|
|
|
|
QMAKE_LEX = flex
|
|
|
|
QMAKE_LEXFLAGS =
|
2015-06-24 20:18:48 +00:00
|
|
|
QMAKE_YACC = bison -y
|
2014-11-20 01:43:21 +00:00
|
|
|
QMAKE_YACCFLAGS = -d
|
2015-01-12 15:05:00 +00:00
|
|
|
QMAKE_CFLAGS = -nologo -Zc:wchar_t
|
2014-11-20 01:43:21 +00:00
|
|
|
QMAKE_CFLAGS_WARN_ON = -W3
|
|
|
|
QMAKE_CFLAGS_WARN_OFF = -W0
|
2017-04-07 13:49:10 +00:00
|
|
|
QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MD
|
2017-12-19 22:48:59 +00:00
|
|
|
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MD
|
2014-11-20 01:43:21 +00:00
|
|
|
QMAKE_CFLAGS_DEBUG = -Zi -MDd
|
|
|
|
QMAKE_CFLAGS_YACC =
|
|
|
|
QMAKE_CFLAGS_LTCG = -GL
|
2015-11-16 22:56:07 +00:00
|
|
|
|
|
|
|
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
|
2017-01-27 21:09:55 +00:00
|
|
|
QMAKE_CFLAGS_AESNI = $$QMAKE_CFLAGS_SSE2
|
|
|
|
QMAKE_CFLAGS_SHANI = $$QMAKE_CFLAGS_SSE2
|
2014-11-20 01:43:21 +00:00
|
|
|
|
|
|
|
QMAKE_CXX = $$QMAKE_CC
|
|
|
|
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
|
2015-01-07 12:21:03 +00:00
|
|
|
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189 -w44996
|
2014-11-20 01:43:21 +00:00
|
|
|
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
|
|
|
|
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
|
|
|
|
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
|
|
|
|
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
|
|
|
|
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
|
|
|
|
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
|
|
|
|
QMAKE_CXXFLAGS_STL_ON = -EHsc
|
|
|
|
QMAKE_CXXFLAGS_STL_OFF =
|
|
|
|
QMAKE_CXXFLAGS_RTTI_ON = -GR
|
|
|
|
QMAKE_CXXFLAGS_RTTI_OFF =
|
|
|
|
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc
|
2015-03-26 03:48:58 +00:00
|
|
|
QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
|
2014-11-20 01:43:21 +00:00
|
|
|
|
|
|
|
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 = link
|
|
|
|
QMAKE_LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT
|
2020-11-03 03:57:55 +00:00
|
|
|
QMAKE_LFLAGS_RELEASE = /OPT:REF /OPT:ICF /INCREMENTAL:NO
|
|
|
|
QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = $$QMAKE_LFLAGS_RELEASE /DEBUG
|
2014-11-20 01:43:21 +00:00
|
|
|
QMAKE_LFLAGS_DEBUG = /DEBUG
|
|
|
|
QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE
|
|
|
|
QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS
|
|
|
|
QMAKE_LFLAGS_EXE = \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
|
|
|
|
QMAKE_LFLAGS_DLL = /DLL
|
|
|
|
QMAKE_LFLAGS_LTCG = /LTCG
|
2015-09-29 10:44:30 +00:00
|
|
|
QMAKE_PREFIX_SHLIB =
|
|
|
|
QMAKE_EXTENSION_SHLIB = dll
|
|
|
|
QMAKE_PREFIX_STATICLIB =
|
2014-11-20 01:43:21 +00:00
|
|
|
QMAKE_EXTENSION_STATICLIB = lib
|
|
|
|
|
unify windows mkspecs: update definitions
mingw-w64 toolchain:
- add missing compiler definitions, similar to
'msvc-desktop.conf' toolchain,
- describe the reasons of missing compiler definitions, available in
'msvc-desktop.conf' toolchain,
- add missing 'QMAKE_CXXFLAGS' and 'QMAKE_CXXFLAGS_WARN_ON' variables,
similar to 'msvc-desktop.conf' toolchain.
ICC on Windows toolchain:
- add 'QMAKE_CFLAGS_OPTIMIZE_FULL' variable, similar to 'gcc-base.conf'
toolchain, though left it unused for now,
- add missing flags to 'QMAKE_CFLAGS' variable, similar to
'msvc-desktop.conf' toolchain,
- update deprecated 'Qwd' flag with 'Qdiag-disable',
- use 'QMAKE_CFLAGS_OPTIMIZE_DEBUG' variable instead of '-Od' flag,
similar to 'gcc-base.conf' toolchain (ICC implies '-O2' optimization
level by default, while MSVC implies '-Od'),
- add 'QMAKE_CFLAGS_UTF8_SOURCE' variable, similar to
'msvc-version.conf' toolchain; use a workaround to initialize it,
until '-utf-8' flag would be supported by ICC on Windows,
- update deprecated '-Qstd=c++1z' flag with '-Qstd=c++17',
MSVC toolchain:
- remove 'incremental' from MSVC 'CONFIG' variable, since it has
relevance only for the Unix generator,
- add 'QMAKE_CFLAGS_OPTIMIZE_DEBUG' variable, used in ICC for Windows
toolchain,
- add empty 'QMAKE_LIBS' variable, similar to 'win32-g++' toolchain,
- add 'uuid.lib' library to 'QMAKE_LIBS_GUI' variable, similar to
'win32-g++' toolchain,
- add C++14 and C++17 language support flags, though left them disabled
for now, similar to 'win32-icc' toolchain.
Change-Id: Ideef62d0422674184836faa655bfc5d09a5f612f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-01-10 15:51:54 +00:00
|
|
|
QMAKE_LIBS =
|
|
|
|
QMAKE_LIBS_GUI = gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib uuid.lib user32.lib advapi32.lib
|
2014-11-20 01:43:21 +00:00
|
|
|
QMAKE_LIBS_NETWORK = ws2_32.lib
|
|
|
|
QMAKE_LIBS_OPENGL = glu32.lib opengl32.lib gdi32.lib user32.lib
|
Merge ANGLE's libEGL and libGLESv2 into QtANGLE
This is needed in order to be able to specify a custom location of
the ANGLE libs, and enables us to perform a LoadLibrary of ANGLE libs
by just having the absolute path to QtANGLE.dll as the argument to
LoadLibrary().
Previously, we had two ANGLE libraries: libEGL and libGLESv2. libEGL hard
linked against libGLESv2. If we wanted to load libEGL from a custom
location, we couldn't load libEGL by calling LoadLibrary with the absolute
path to libEGL, because libEGL had problems finding libGLESv2. One
solution to that could have been to call SetDllDirectory() with the path
to the ANGLE libs before calling LoadLibrary("libEGL.dll"). Since the DLL
directory would point to both ANGLE libs, this would ensure that the libGLESv2
was also found. Unfortunately, this approach is not thread safe
(SetDllDirectory will affect all subsequent LoadLibrary(Ex) from the same
process). Therefore, we chose to merge the two libraries into one to
circumvent the whole problem.
At the same time, this patch also enables loading of two different ANGLE
libraries into the same process at once without renaming them: This was
not possible before because libEGL hard linked to libGLESv2.dll. When
libGLESv2.dll was already loaded, the second instance of libEGL would
simply link against the already loaded version of libGLESv2.dll.
This behavior is documented in the LoadLibraryEx documentation on MSDN:
"If the string specifies a module name without a path and more than one
loaded module has the same base name and extension, the function returns a
handle to the module that was loaded first."
Change-Id: Ic1d886ba802be72ddcf01235bafaedcef662762e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
2016-10-25 14:56:02 +00:00
|
|
|
QMAKE_LIBS_OPENGL_ES2 = gdi32.lib user32.lib
|
|
|
|
QMAKE_LIBS_OPENGL_ES2_DEBUG = gdi32.lib user32.lib
|
2014-11-20 01:43:21 +00:00
|
|
|
QMAKE_LIBS_COMPAT = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib ws2_32.lib
|
|
|
|
|
2018-11-27 07:26:40 +00:00
|
|
|
QMAKE_IDL = midl
|
2014-11-20 01:43:21 +00:00
|
|
|
QMAKE_LIB = lib /NOLOGO
|
2017-06-09 12:31:22 +00:00
|
|
|
QMAKE_RC = rc /NOLOGO
|
2014-11-20 01:43:21 +00:00
|
|
|
|
|
|
|
VCPROJ_EXTENSION = .vcproj
|
|
|
|
VCSOLUTION_EXTENSION = .sln
|
|
|
|
VCPROJ_KEYWORD = Qt4VSv1.0
|
|
|
|
|
2018-07-20 07:21:08 +00:00
|
|
|
include(windows-desktop.conf)
|
2017-01-31 14:04:33 +00:00
|
|
|
include(windows-vulkan.conf)
|