#
# qmake configuration for linux-icc
#
# Written for Intel C++ Compiler for Linux version 17.0 or higher
#

include(../common/icc-base-unix.conf)

# modifications to icc-base-unix.conf

QMAKE_CFLAGS_YACC       =
QMAKE_CFLAGS_ISYSTEM    = -isystem
QMAKE_CFLAGS_THREAD     = -D_REENTRANT

QMAKE_CXXFLAGS_YACC     = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD   = $$QMAKE_CFLAGS_THREAD

QMAKE_LFLAGS_APP        = -pie
QMAKE_LFLAGS_SHLIB      = -shared -shared-intel
QMAKE_LFLAGS_PLUGIN     = $$QMAKE_LFLAGS_SHLIB
QMAKE_LFLAGS_SONAME     = -Wl,-soname,
QMAKE_LFLAGS_NOUNDEF    = -Wl,-z,defs
QMAKE_LFLAGS_RPATHLINK  = -Wl,-rpath-link,

# -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
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            =

include(../common/linux.conf)
load(qt_config)
