01c82b945d
This patch adds the feature use_gold_linker to use the gold linker that has been part of of GNU binutils since 2008. Gold links C++ libraries much faster and use less memory. The feature is autodetected when building Qt on Linux, but can be disabled in configure. On MingW builds it is default off but can be enabled for cross builds. Change-Id: Icdd6ba2e706b2c791bcf44b6e718c2b7a5eb2218 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
119 lines
4.2 KiB
Plaintext
119 lines
4.2 KiB
Plaintext
#
|
|
# qmake configuration for win32-g++
|
|
#
|
|
# Written for MinGW / gcc 4.6 or higher
|
|
#
|
|
# Cross compile example for i686-w64-mingw32-g++:
|
|
# configure -xplatform win32-g++ -device-option CROSS_COMPILE=i686-w64-mingw32-
|
|
#
|
|
|
|
load(device_config)
|
|
|
|
MAKEFILE_GENERATOR = MINGW
|
|
QMAKE_PLATFORM = win32 mingw
|
|
CONFIG += debug_and_release debug_and_release_target precompile_header
|
|
DEFINES += UNICODE
|
|
QMAKE_COMPILER_DEFINES += __GNUC__ WIN32
|
|
|
|
QMAKE_EXT_OBJ = .o
|
|
QMAKE_EXT_RES = _res.o
|
|
|
|
QMAKE_COMPILER = gcc
|
|
|
|
QMAKE_CC = $${CROSS_COMPILE}gcc
|
|
QMAKE_LEX = flex
|
|
QMAKE_LEXFLAGS =
|
|
QMAKE_YACC = byacc
|
|
QMAKE_YACCFLAGS = -d
|
|
QMAKE_CFLAGS = -pipe -fno-keep-inline-dllexport
|
|
QMAKE_CFLAGS_DEPS = -M
|
|
QMAKE_CFLAGS_WARN_ON = -Wall -Wextra
|
|
QMAKE_CFLAGS_WARN_OFF = -w
|
|
QMAKE_CFLAGS_RELEASE = -O2
|
|
QMAKE_CFLAGS_DEBUG = -g
|
|
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
|
|
QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections
|
|
QMAKE_CFLAGS_SSE2 = -msse2 -mstackrealign
|
|
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 = -mavx2
|
|
QMAKE_CFLAGS_IWMMXT = -mcpu=iwmmxt
|
|
QMAKE_CFLAGS_NEON = -mfpu=neon
|
|
|
|
QMAKE_CXX = $${CROSS_COMPILE}g++
|
|
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_YACC = $$QMAKE_CFLAGS_YACC
|
|
QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
|
|
QMAKE_CXXFLAGS_RTTI_ON = -frtti
|
|
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
|
|
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
|
|
QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
|
|
QMAKE_CXXFLAGS_CXX11 = -std=c++0x
|
|
QMAKE_CXXFLAGS_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS
|
|
|
|
QMAKE_INCDIR =
|
|
|
|
QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
|
|
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
|
|
QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
|
|
QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
|
|
|
|
QMAKE_LINK = $${CROSS_COMPILE}g++
|
|
QMAKE_LINK_C = $${CROSS_COMPILE}gcc
|
|
QMAKE_LFLAGS =
|
|
QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads
|
|
QMAKE_LFLAGS_EXCEPTIONS_OFF =
|
|
QMAKE_LFLAGS_RELEASE = -Wl,-s
|
|
QMAKE_LFLAGS_DEBUG =
|
|
QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console
|
|
QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows
|
|
QMAKE_LFLAGS_DLL = -shared
|
|
QMAKE_LFLAGS_CXX11 =
|
|
QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections
|
|
QMAKE_LFLAGS_USE_GOLD = -fuse-ld=gold
|
|
QMAKE_LINK_OBJECT_MAX = 10
|
|
QMAKE_LINK_OBJECT_SCRIPT = object_script
|
|
QMAKE_PREFIX_STATICLIB = lib
|
|
QMAKE_EXTENSION_STATICLIB = a
|
|
|
|
QMAKE_LIBS =
|
|
QMAKE_LIBS_CORE = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32
|
|
QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lws2_32 -lole32 -luuid -luser32 -ladvapi32
|
|
QMAKE_LIBS_NETWORK = -lws2_32
|
|
QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32
|
|
QMAKE_LIBS_OPENGL_ES2 = -llibEGL -llibGLESv2 -lgdi32 -luser32
|
|
QMAKE_LIBS_OPENGL_ES2_DEBUG = -llibEGLd -llibGLESv2d -lgdi32 -luser32
|
|
QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32
|
|
QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain
|
|
|
|
!isEmpty(QMAKE_SH) {
|
|
MINGW_IN_SHELL = 1
|
|
QMAKE_DIR_SEP = /
|
|
QMAKE_DIRLIST_SEP = :
|
|
include(../common/shell-unix.conf)
|
|
# Because install's ability to set permissions is not relevant on Windows,
|
|
# and git's msys does not provide it to start with.
|
|
QMAKE_INSTALL_FILE = cp -f
|
|
QMAKE_INSTALL_PROGRAM = cp -f
|
|
} else {
|
|
include(../common/shell-win32.conf)
|
|
}
|
|
|
|
QMAKE_IDL = midl
|
|
QMAKE_LIB = $${CROSS_COMPILE}ar -ru
|
|
QMAKE_RC = $${CROSS_COMPILE}windres
|
|
|
|
QMAKE_STRIP = $${CROSS_COMPILE}strip
|
|
QMAKE_STRIPFLAGS_LIB += --strip-unneeded
|
|
QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy
|
|
QMAKE_NM = $${CROSS_COMPILE}nm -P
|
|
load(qt_config)
|