summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Shevchenko <sav_ix@ukr.net>2018-01-10 17:51:54 +0200
committerAlexander Shevchenko <sav_ix@ukr.net>2018-01-17 03:30:36 +0000
commit40e87491886957696486b87dc2dedec2adaf6e1a (patch)
tree8786d051019f665779228c72ed5eb8795c1f606f
parent9de2ef6f5ab3b21b4e1679e010ee488193cb41e4 (diff)
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>
-rw-r--r--mkspecs/common/msvc-desktop.conf6
-rw-r--r--mkspecs/common/msvc-version.conf5
-rw-r--r--mkspecs/win32-g++/qmake.conf9
-rw-r--r--mkspecs/win32-icc/qmake.conf15
4 files changed, 25 insertions, 10 deletions
diff --git a/mkspecs/common/msvc-desktop.conf b/mkspecs/common/msvc-desktop.conf
index 496ca1179d..546b9cf3cb 100644
--- a/mkspecs/common/msvc-desktop.conf
+++ b/mkspecs/common/msvc-desktop.conf
@@ -15,7 +15,7 @@
MAKEFILE_GENERATOR = MSVC.NET
QMAKE_PLATFORM = win32
QMAKE_COMPILER = msvc
-CONFIG += incremental flat debug_and_release debug_and_release_target precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe
+CONFIG += flat debug_and_release debug_and_release_target precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe
DEFINES += UNICODE _UNICODE WIN32
QMAKE_COMPILER_DEFINES += _WIN32
contains(QMAKE_TARGET.arch, x86_64) {
@@ -23,6 +23,7 @@ contains(QMAKE_TARGET.arch, x86_64) {
QMAKE_COMPILER_DEFINES += _WIN64
}
+QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Od
QMAKE_CFLAGS_OPTIMIZE = -O2
QMAKE_CFLAGS_OPTIMIZE_SIZE = -O1
@@ -92,7 +93,8 @@ QMAKE_EXTENSION_SHLIB = dll
QMAKE_PREFIX_STATICLIB =
QMAKE_EXTENSION_STATICLIB = 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 =
+QMAKE_LIBS_GUI = gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib uuid.lib user32.lib advapi32.lib
QMAKE_LIBS_NETWORK = ws2_32.lib
QMAKE_LIBS_OPENGL = glu32.lib opengl32.lib gdi32.lib user32.lib
QMAKE_LIBS_OPENGL_ES2 = gdi32.lib user32.lib
diff --git a/mkspecs/common/msvc-version.conf b/mkspecs/common/msvc-version.conf
index ba74c49f9c..cfafb06305 100644
--- a/mkspecs/common/msvc-version.conf
+++ b/mkspecs/common/msvc-version.conf
@@ -85,6 +85,11 @@ greaterThan(QMAKE_MSC_VER, 1909) {
# API is used in direct2d, but also in multimedia, positioning and sensors.
# We can try again with a later version of Visual Studio.
# QMAKE_CXXFLAGS_STRICTCXX = -permissive-
+ # MSVC partially supports the following, but '__cplusplus' definition is set
+ # as for C++98 until MSVC fully conforms with C++14, see
+ # https://developercommunity.visualstudio.com/content/problem/139261/msvc-incorrectly-defines-cplusplus.html
+ # QMAKE_CXXFLAGS_CXX14 = -std:c++14
+ # QMAKE_CXXFLAGS_CXX1Z = -std:c++latest
}
greaterThan(QMAKE_MSC_VER, 1910) {
diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf
index a4955e99f3..96c94e7021 100644
--- a/mkspecs/win32-g++/qmake.conf
+++ b/mkspecs/win32-g++/qmake.conf
@@ -16,8 +16,11 @@ include(../common/g++-base.conf)
MAKEFILE_GENERATOR = MINGW
QMAKE_PLATFORM = win32 mingw
CONFIG += debug_and_release debug_and_release_target precompile_header
-DEFINES += UNICODE _UNICODE
-QMAKE_COMPILER_DEFINES += __GNUC__ WIN32
+DEFINES += UNICODE _UNICODE WIN32
+QMAKE_COMPILER_DEFINES += __GNUC__ _WIN32
+# can't add 'DEFINES += WIN64' and 'QMAKE_COMPILER_DEFINES += _WIN64' defines for
+# x86_64 platform similar to 'msvc-desktop.conf' toolchain, because, unlike for MSVC,
+# 'QMAKE_TARGET.arch' is inherently unavailable.
QMAKE_CC = $${CROSS_COMPILE}gcc
QMAKE_LEX = flex
@@ -30,6 +33,8 @@ QMAKE_CFLAGS_WARN_ON += -Wextra
QMAKE_CFLAGS_SSE2 += -mstackrealign
QMAKE_CXX = $${CROSS_COMPILE}g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_RTTI_ON = -frtti
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
diff --git a/mkspecs/win32-icc/qmake.conf b/mkspecs/win32-icc/qmake.conf
index 4d18b1cc55..c66d73383a 100644
--- a/mkspecs/win32-icc/qmake.conf
+++ b/mkspecs/win32-icc/qmake.conf
@@ -4,7 +4,7 @@
# Written for Intel C++ Compiler on Windows / icl 16.0 or higher
#
-# Use the Microsoft (R) C/C++ Optimizing Compiler configuration,
+# Use the Microsoft C/C++ Optimizing Compiler configuration,
# since ICC on Windows pretends to be MSVC
include(../common/msvc-desktop.conf)
@@ -13,11 +13,14 @@ include(../common/msvc-desktop.conf)
QMAKE_COMPILER += intel_icl
+QMAKE_CFLAGS_OPTIMIZE_FULL = -O3
+
QMAKE_CC = icl
-QMAKE_CFLAGS = -nologo -Zm200 /Qprec /Qwd1744,1738,809,3373
-QMAKE_CFLAGS_WARN_ON = -W3 /Qwd673
-QMAKE_CFLAGS_WARN_OFF = -W0 /Qwd673
-QMAKE_CFLAGS_DEBUG = -Od -Zi -MDd
+QMAKE_CFLAGS = -nologo -Zc:wchar_t -Qprec -Zm200 -Qdiag-disable:1744,1738,809,3373
+QMAKE_CFLAGS_WARN_ON = -W3 -Qdiag-disable:673
+QMAKE_CFLAGS_WARN_OFF = -W0 -Qdiag-disable:673
+QMAKE_CFLAGS_DEBUG = $$QMAKE_CFLAGS_OPTIMIZE_DEBUG -Zi -MDd
+QMAKE_CFLAGS_UTF8_SOURCE = -Qoption,cpp,--unicode_source_kind,UTF-8
QMAKE_CFLAGS_LTCG = -Qipo
QMAKE_CFLAGS_DISABLE_LTCG = -Qno-ipo
@@ -44,7 +47,7 @@ QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_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_CXX1Z = -Qstd=c++17
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG