forked from qt/qtbase
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 <[email protected]>
- Loading branch information
Showing
3 changed files
with
130 additions
and
176 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
# | ||
# Base qmake configuration for ICC on *nix-systems | ||
# | ||
# Before making changes to this file, please read the comment in | ||
# icc-base.conf, to make sure the change goes in the right place. | ||
# | ||
# To verify that your change has the desired effect on the final configuration | ||
# you can use the manual test in tests/manual/mkspecs. | ||
# | ||
|
||
MAKEFILE_GENERATOR = UNIX | ||
QMAKE_COMPILER_DEFINES += __GNUC__ | ||
|
||
QMAKE_COMPILER = gcc intel_icc # icc pretends to be gcc | ||
|
||
QMAKE_CFLAGS_OPTIMIZE = -O2 | ||
QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os | ||
|
||
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 -Wcheck -wd654,1572,411,873,1125,2259,2261,3280,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_SPLIT_SECTIONS = -ffunction-sections -fdata-sections | ||
QMAKE_CFLAGS_LTCG = -ipo | ||
QMAKE_CFLAGS_DISABLE_LTCG = -no-ipo | ||
|
||
QMAKE_CFLAGS_SSE2 += -msse2 | ||
QMAKE_CFLAGS_SSE3 += -msse3 | ||
QMAKE_CFLAGS_SSSE3 += -mssse3 | ||
QMAKE_CFLAGS_SSE4_1 += -msse4.1 | ||
QMAKE_CFLAGS_SSE4_2 += -msse4.2 | ||
QMAKE_CFLAGS_AVX += -mavx | ||
QMAKE_CFLAGS_AVX2 += -march=core-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_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS | ||
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_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG | ||
|
||
# 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_LINK = icpc | ||
QMAKE_LINK_SHLIB = icpc | ||
QMAKE_LFLAGS = | ||
QMAKE_LFLAGS_RELEASE = | ||
QMAKE_LFLAGS_DEBUG = | ||
QMAKE_LFLAGS_THREAD = | ||
QMAKE_LFLAGS_RPATH = -Wl,-rpath, | ||
QMAKE_LFLAGS_CXX11 = | ||
QMAKE_LFLAGS_CXX14 = | ||
QMAKE_LFLAGS_CXX1Z = | ||
QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG | ||
|
||
QMAKE_INCDIR = | ||
QMAKE_LIBDIR = | ||
QMAKE_INCDIR_X11 = | ||
QMAKE_LIBDIR_X11 = | ||
QMAKE_INCDIR_OPENGL = | ||
QMAKE_LIBDIR_OPENGL = | ||
|
||
QMAKE_CLEAN = -r $(OBJECTS_DIR)/ti_files |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,107 +1,37 @@ | ||
# | ||
# qmake configuration for macx-icc | ||
# | ||
# Written for Intel C++ Compiler version 14.0 for OS X | ||
# Written for Intel C++ Compiler for macOS version 17.0 or higher | ||
# | ||
|
||
MAKEFILE_GENERATOR = UNIX | ||
include(../common/icc-base-unix.conf) | ||
|
||
# modifications to icc-base-unix.conf | ||
|
||
CONFIG += app_bundle | ||
QMAKE_INCREMENTAL_STYLE = sublibs | ||
QMAKE_COMPILER_DEFINES += __APPLE__ __GNUC__ | ||
QMAKE_COMPILER_DEFINES += __APPLE__ | ||
|
||
QMAKE_COMPILER = gcc clang intel_icc # icc pretends to be gcc and clang | ||
QMAKE_COMPILER += clang # icc pretends to be clang too | ||
|
||
QMAKE_CFLAGS_OPTIMIZE = -O2 | ||
QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os | ||
|
||
QMAKE_CC = icc | ||
QMAKE_CFLAGS = | ||
QMAKE_CFLAGS_DEPS = -M | ||
QMAKE_CFLAGS_WARN_ON = -w1 -Wcheck -wd654,1572,411,873,1125,2259,2261,3280,3373 | ||
QMAKE_CFLAGS_WARN_OFF = -w | ||
QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE | ||
QMAKE_CFLAGS_DEBUG = -g -O0 | ||
QMAKE_CFLAGS_SHLIB = -fPIC | ||
QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB | ||
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses | ||
QMAKE_CFLAGS_THREAD = | ||
QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections -fdata-sections | ||
QMAKE_CFLAGS_LTCG = -ipo | ||
QMAKE_CFLAGS_DISABLE_LTCG = -no-ipo | ||
|
||
QMAKE_CFLAGS_SSE2 += -msse2 | ||
QMAKE_CFLAGS_SSE3 += -msse3 | ||
QMAKE_CFLAGS_SSSE3 += -mssse3 | ||
QMAKE_CFLAGS_SSE4_1 += -msse4.1 | ||
QMAKE_CFLAGS_SSE4_2 += -msse4.2 | ||
QMAKE_CFLAGS_AVX += -mavx | ||
QMAKE_CFLAGS_AVX2 += -march=core-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_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_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_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS | ||
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG | ||
QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG | ||
|
||
QMAKE_LINK = icpc | ||
QMAKE_LINK_SHLIB = icpc | ||
QMAKE_LFLAGS = | ||
QMAKE_LFLAGS_RELEASE = | ||
QMAKE_LFLAGS_DEBUG = | ||
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} | ||
QMAKE_LFLAGS_HEADERPAD = -headerpad_max_install_names | ||
QMAKE_LFLAGS_THREAD = | ||
QMAKE_LFLAGS_RPATH = -Wl,-rpath, | ||
QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG | ||
|
||
QMAKE_LFLAGS_VERSION = -current_version$${LITERAL_WHITESPACE} | ||
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.11 | ||
|
||
QMAKE_APPLE_DEVICE_ARCHS = x86_64 | ||
|
||
include(../common/macx.conf) | ||
|
||
load(qt_config) |