1bd27f24fb
GCC currently requires fat object files for static libraries, since the linker would otherwise not load the .o file from the archive at all and the linking would fail with a lot of undefined references. Clang on Linux also needs this, but it has no equivalent flag, so enabling LTCG for Clang on static libraries will result in linker error. This commit does not add support for enabling it in configure. It can be enabled on a per-project basis by doing CONFIG += ltcg or by passing -config ltcg to qmake's command-line. Change-Id: I52cf99f1ed9f1701e23a3b457ba3502fd28126ce Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
107 lines
3.5 KiB
Plaintext
107 lines
3.5 KiB
Plaintext
#
|
|
# qmake configuration for linux-icc
|
|
#
|
|
|
|
MAKEFILE_GENERATOR = UNIX
|
|
|
|
QMAKE_COMPILER = gcc intel_icc # icc pretends to be gcc
|
|
|
|
QMAKE_CC = icc
|
|
QMAKE_LEX = flex
|
|
QMAKE_LEXFLAGS =
|
|
QMAKE_YACC = yacc
|
|
QMAKE_YACCFLAGS = -d
|
|
QMAKE_CFLAGS =
|
|
QMAKE_CFLAGS_APP = -fPIE
|
|
QMAKE_CFLAGS_DEPS = -M
|
|
QMAKE_CFLAGS_WARN_ON = -w1 -Wall -Wcheck -wd1572,873,2259,2261
|
|
QMAKE_CFLAGS_WARN_OFF = -w
|
|
QMAKE_CFLAGS_RELEASE = -O2 -falign-functions=16 -ansi-alias -fstrict-aliasing
|
|
QMAKE_CFLAGS_DEBUG = -O0 -g
|
|
QMAKE_CFLAGS_SHLIB = -fPIC -fno-jump-tables
|
|
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
|
|
QMAKE_CFLAGS_LTCG = -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_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++0x
|
|
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_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_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_LTCG = $$QMAKE_CFLAGS_LTCG
|
|
|
|
QMAKE_LIBS =
|
|
QMAKE_LIBS_DYNLOAD = -ldl
|
|
QMAKE_LIBS_X11 = -lXext -lX11 -lm
|
|
QMAKE_LIBS_NIS = -lnsl
|
|
QMAKE_LIBS_OPENGL = -lGL
|
|
QMAKE_LIBS_THREAD = -lpthread
|
|
|
|
QMAKE_AR = xiar cqs
|
|
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,
|
|
|
|
# Symbol visibility control
|
|
QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
|
|
QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden
|
|
|
|
include(../common/linux.conf)
|
|
load(qt_config)
|