194a404490
Add qmake feature and configure option, which optimze the size of static exectuable. Use for static build. Enabled via configure --gc-binaries, or CONFIG += gc-binaries in 3rd party projects. Change-Id: I3c25b02caaef6a4afc6019afc9c67122dd11696d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
133 lines
4.5 KiB
Plaintext
133 lines
4.5 KiB
Plaintext
#
|
|
# qmake configuration for linux-icc
|
|
#
|
|
|
|
MAKEFILE_GENERATOR = UNIX
|
|
|
|
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 -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
|
|
|
|
QMAKE_LIBS =
|
|
QMAKE_LIBS_DYNLOAD = -ldl
|
|
QMAKE_LIBS_X11 = -lXext -lX11 -lm
|
|
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,
|
|
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)
|