summaryrefslogtreecommitdiffstats
path: root/mkspecs/linux-icc/qmake.conf
diff options
context:
space:
mode:
authorAlexander Shevchenko <sav_ix@ukr.net>2018-06-21 10:20:34 +0300
committerAlexander Shevchenko <sav_ix@ukr.net>2018-06-22 17:04:06 +0000
commit305f57411d450c9b19330cd56f64702163bdcb34 (patch)
treeab2825940238ffd078fa31345339ad540d4f843f /mkspecs/linux-icc/qmake.conf
parent6173e1d6f82b3bc205c1bebdc8481c1dbff4572f (diff)
centralize ICC flags for *nix-systems toolchains
linux-icc and macx-icc toolchains contain a significant amount of code which can be merged to a common configuration file. as a side effect, such merge resulted in reduction a parts of linux-icc and macx-icc toolchains to the common view. Change-Id: I37d110734eeeb9bd61ca0aa942de380ac8e75f1c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'mkspecs/linux-icc/qmake.conf')
-rw-r--r--mkspecs/linux-icc/qmake.conf116
1 files changed, 17 insertions, 99 deletions
diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf
index 57638326a0..75a601b1f1 100644
--- a/mkspecs/linux-icc/qmake.conf
+++ b/mkspecs/linux-icc/qmake.conf
@@ -1,104 +1,39 @@
#
# qmake configuration for linux-icc
#
+# Written for Intel C++ Compiler for Linux version 17.0 or higher
+#
-MAKEFILE_GENERATOR = UNIX
-
-QMAKE_COMPILER = gcc intel_icc # icc pretends to be gcc
+include(../common/icc-base-unix.conf)
-QMAKE_CFLAGS_OPTIMIZE = -O2
-QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os
+# modifications to icc-base-unix.conf
-QMAKE_CC = icc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_APP = -fPIC
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -w1 -Wall -Wcheck -wd1572,873,2259,2261,3373
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE
-QMAKE_CFLAGS_DEBUG = -O0 -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB
QMAKE_CFLAGS_YACC =
QMAKE_CFLAGS_ISYSTEM = -isystem
QMAKE_CFLAGS_THREAD = -D_REENTRANT
-QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections -fdata-sections
-QMAKE_CFLAGS_LTCG = -ipo -fno-fat-lto-objects
-QMAKE_CFLAGS_LTCG_FATOBJECTS = -ffat-lto-objects
-QMAKE_CFLAGS_DISABLE_LTCG = -no-ipo
-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_CFLAGS_AVX512F += -xCOMMON-AVX512
-QMAKE_CFLAGS_AVX512CD += -xCOMMON-AVX512
-QMAKE_CFLAGS_AVX512ER += -xMIC-AVX512
-QMAKE_CFLAGS_AVX512PF += -xMIC-AVX512
-QMAKE_CFLAGS_AVX512DQ += -xCORE-AVX512
-QMAKE_CFLAGS_AVX512BW += -xCORE-AVX512
-QMAKE_CFLAGS_AVX512VL += -xCORE-AVX512
-QMAKE_CFLAGS_AESNI += -maes
-QMAKE_CFLAGS_F16C += $$QMAKE_CFLAGS_AVX2
-QMAKE_CFLAGS_RDRND += -mrdrnd
-QMAKE_CFLAGS_SHANI += -msha
-
-QMAKE_CXX = icpc
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_APP = $$QMAKE_CFLAGS_APP
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-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_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_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS
-# Disabling exceptions disabled - workaround for QTBUG-36577
-#QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
-QMAKE_CXXFLAGS_CXX11 = -std=c++11
-QMAKE_CXXFLAGS_CXX14 = -std=c++1y
-QMAKE_CXXFLAGS_CXX1Z = -std=c++1z
-QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++11
-QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y
-QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z
-QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
-QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS
-QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-QMAKE_LINK = icpc
-QMAKE_LINK_SHLIB = icpc
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
QMAKE_LFLAGS_APP = -pie
-QMAKE_LFLAGS_DEBUG =
QMAKE_LFLAGS_SHLIB = -shared -shared-intel
QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
QMAKE_LFLAGS_NOUNDEF = -Wl,-z,defs
-QMAKE_LFLAGS_RPATH = -Wl,-rpath,
QMAKE_LFLAGS_RPATHLINK = -Wl,-rpath-link,
-QMAKE_LFLAGS_CXX11 =
-QMAKE_LFLAGS_CXX14 =
-QMAKE_LFLAGS_CXX1Z =
-QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
+
+# -Bsymbolic-functions (ld) support
+QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions
+QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list,
+QMAKE_LFLAGS_VERSION_SCRIPT = -Wl,--version-script,
+
+# fat LTO support for Linux ICC; not available for macOS ICC, see
+# https://software.intel.com/en-us/cpp-compiler-18.0-developer-guide-and-reference-ffat-lto-objects
+QMAKE_CFLAGS_LTCG += -fno-fat-lto-objects
+QMAKE_CXXFLAGS_LTCG += -fno-fat-lto-objects
+QMAKE_LFLAGS_LTCG += -fno-fat-lto-objects
+QMAKE_CFLAGS_LTCG_FATOBJECTS = -ffat-lto-objects
+QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS
QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD = -ldl
@@ -111,22 +46,5 @@ QMAKE_OBJCOPY = objcopy
QMAKE_NM = nm -P
QMAKE_RANLIB =
-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}
-
-# -Bsymbolic-functions (ld) support
-QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions
-QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list,
-QMAKE_LFLAGS_VERSION_SCRIPT = -Wl,--version-script,
-
-# Symbol visibility control
-QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
-QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden
-
include(../common/linux.conf)
load(qt_config)