diff options
-rw-r--r-- | mkspecs/features/simd.prf | 2 | ||||
-rw-r--r-- | mkspecs/macx-icc/qmake.conf | 43 | ||||
-rw-r--r-- | src/corelib/global/qcompilerdetection.h | 2 |
3 files changed, 30 insertions, 17 deletions
diff --git a/mkspecs/features/simd.prf b/mkspecs/features/simd.prf index a8ce097b64..84a5d16d77 100644 --- a/mkspecs/features/simd.prf +++ b/mkspecs/features/simd.prf @@ -18,7 +18,7 @@ QT_CPU_FEATURES = $$eval(QT_CPU_FEATURES.$$QT_ARCH) # # Set up compilers for SIMD (SSE/AVX, NEON etc) # -*-g++*|linux-icc*|*-clang*|*-qcc* { +*-g++*|intel_icc|*-clang*|*-qcc* { sse2 { HEADERS += $$SSE2_HEADERS diff --git a/mkspecs/macx-icc/qmake.conf b/mkspecs/macx-icc/qmake.conf index 69f0b4cc0c..0bbb1be4ee 100644 --- a/mkspecs/macx-icc/qmake.conf +++ b/mkspecs/macx-icc/qmake.conf @@ -1,15 +1,7 @@ # # qmake configuration for macx-icc # -# Written for Intel C++ Compiler versions 8.x and 9.x for OS X -# -# Note: Some of the remarks from the Intel compiler are disabled (even -# with 'warn_on' specified): -# -# remark #858: type qualifier on return type is meaningless -# warning #1572: floating-point equality and inequality comparisons are unreliable -# warning #279: controlling expression is constant -# warning #1569: potential redeclared typedef +# Written for Intel C++ Compiler version 14.0 for OS X # MAKEFILE_GENERATOR = UNIX @@ -17,21 +9,29 @@ CONFIG += app_bundle QMAKE_INCREMENTAL_STYLE = sublibs QMAKE_COMPILER_DEFINES += __APPLE__ __GNUC__ -QMAKE_COMPILER = gcc intel_icc # icc pretends to be gcc +QMAKE_COMPILER = gcc clang intel_icc # icc pretends to be gcc and clang QMAKE_CC = icc -QMAKE_CFLAGS = -wd858,1572,1569,279 +QMAKE_CFLAGS = QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = +QMAKE_CFLAGS_WARN_ON = -w1 -Wcheck -wd654,1572,411,873,1125,2259,2261,3280 QMAKE_CFLAGS_WARN_OFF = -w QMAKE_CFLAGS_RELEASE = QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -fpic +QMAKE_CFLAGS_SHLIB = -fPIC -fno-jump-tables QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses QMAKE_CFLAGS_THREAD = -QMAKE_OBJECTIVE_CC = gcc +QMAKE_CFLAGS_SSE2 += -xSSE2 +QMAKE_CFLAGS_SSE3 += -xSSE3 +QMAKE_CFLAGS_SSSE3 += -xSSSE3 +QMAKE_CFLAGS_SSE4_1 += -xSSE4.1 +QMAKE_CFLAGS_SSE4_2 += -xSSE4.2 +QMAKE_CFLAGS_AVX += -xAVX +QMAKE_CFLAGS_AVX2 += -xCORE-AVX2 + +QMAKE_OBJECTIVE_CC = clang QMAKE_OBJECTIVE_CFLAGS = -pipe QMAKE_OBJECTIVE_CFLAGS_WARN_ON = -Wall -W QMAKE_OBJECTIVE_CFLAGS_WARN_OFF = -w @@ -50,13 +50,14 @@ QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD +QMAKE_CXXFLAGS_CXX11 = -std=c++11 QMAKE_LINK = icpc QMAKE_LINK_SHLIB = icpc QMAKE_LFLAGS = -headerpad_max_install_names QMAKE_LFLAGS_RELEASE = QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -ingle_module -dynamiclib +QMAKE_LFLAGS_SHLIB = -single_module -dynamiclib QMAKE_LFLAGS_INCREMENTAL = -undefined suppress -flat_namespace QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB QMAKE_LFLAGS_SONAME = -install_name$${LITERAL_WHITESPACE} @@ -68,6 +69,18 @@ QMAKE_LFLAGS_COMPAT_VERSION = -compatibility_version$${LITERAL_WHITESPACE} QMAKE_CLEAN = -r $(OBJECTS_DIR)/ti_files +# pch support +CONFIG += icc_pch_style +QMAKE_PCH_OUTPUT_EXT = .pchi +QMAKE_CXXFLAGS_USE_PRECOMPILE = -pch-use ${QMAKE_PCH_OUTPUT} -include ${QMAKE_PCH_INPUT} +QMAKE_CXXFLAGS_PRECOMPILE = -c -pch-create ${QMAKE_PCH_OUTPUT} -include ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_TEMP_OBJECT} ${QMAKE_PCH_TEMP_SOURCE} + +# Symbol visibility control +QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden +QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden + +QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6 + include(../common/macx.conf) load(qt_config) diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h index 0513db1575..70f45345c6 100644 --- a/src/corelib/global/qcompilerdetection.h +++ b/src/corelib/global/qcompilerdetection.h @@ -539,7 +539,7 @@ # endif #endif -#ifdef Q_CC_CLANG +#if defined(Q_CC_CLANG) && !defined(Q_CC_INTEL) /* General C++ features */ # define Q_COMPILER_RESTRICTED_VLA # if !__has_feature(cxx_exceptions) |