diff options
Diffstat (limited to 'mkspecs')
-rw-r--r-- | mkspecs/common/gcc-base.conf | 2 | ||||
-rw-r--r-- | mkspecs/common/linux.conf | 1 | ||||
-rw-r--r-- | mkspecs/common/mac.conf | 1 | ||||
-rw-r--r-- | mkspecs/features/qt_app.prf | 3 | ||||
-rw-r--r-- | mkspecs/features/qt_build_config.prf | 8 | ||||
-rw-r--r-- | mkspecs/features/qt_docs.prf | 5 | ||||
-rw-r--r-- | mkspecs/features/qt_helper_lib.prf | 6 | ||||
-rw-r--r-- | mkspecs/features/qt_module.prf | 2 | ||||
-rw-r--r-- | mkspecs/linux-icc/qmake.conf | 2 | ||||
-rw-r--r-- | mkspecs/macx-icc/qmake.conf | 2 | ||||
-rw-r--r-- | mkspecs/win32-g++/qmake.conf | 3 |
11 files changed, 28 insertions, 7 deletions
diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf index 4326f91925..fcff502af6 100644 --- a/mkspecs/common/gcc-base.conf +++ b/mkspecs/common/gcc-base.conf @@ -47,6 +47,7 @@ QMAKE_CFLAGS_ISYSTEM = -isystem QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions +QMAKE_CFLAGS_SPLIT_SECTIONS += -ffunction-sections QMAKE_CXXFLAGS += $$QMAKE_CFLAGS QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS @@ -60,6 +61,7 @@ QMAKE_CXXFLAGS_APP += $$QMAKE_CFLAGS_APP QMAKE_CXXFLAGS_YACC += $$QMAKE_CFLAGS_YACC QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden QMAKE_CXXFLAGS_EXCEPTIONS_OFF += $$QMAKE_CFLAGS_EXCEPTIONS_OFF +QMAKE_CXXFLAGS_SPLIT_SECTIONS += $$QMAKE_CFLAGS_SPLIT_SECTIONS QMAKE_LFLAGS += QMAKE_LFLAGS_DEBUG += diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf index 98e6cefabd..e10ab71cd6 100644 --- a/mkspecs/common/linux.conf +++ b/mkspecs/common/linux.conf @@ -6,6 +6,7 @@ QMAKE_PLATFORM += linux QMAKE_CFLAGS_THREAD += -D_REENTRANT QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD +QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections QMAKE_INCDIR = QMAKE_LIBDIR = diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf index 4421665370..5f60549c70 100644 --- a/mkspecs/common/mac.conf +++ b/mkspecs/common/mac.conf @@ -18,6 +18,7 @@ QMAKE_INCDIR_OPENGL = \ QMAKE_FIX_RPATH = install_name_tool -id QMAKE_LFLAGS_RPATH = +QMAKE_LFLAGS_GCSECTIONS = -Wl,-dead_strip QMAKE_LIBS_DYNLOAD = QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL diff --git a/mkspecs/features/qt_app.prf b/mkspecs/features/qt_app.prf index a4fcb7d484..0f83fd7270 100644 --- a/mkspecs/features/qt_app.prf +++ b/mkspecs/features/qt_app.prf @@ -16,6 +16,9 @@ DESTDIR = $$MODULE_BASE_OUTDIR/bin isEmpty(QMAKE_INFO_PLIST): CONFIG -= app_bundle +# This decreases the binary size for tools if statically linked +QMAKE_LFLAGS += $$QMAKE_LFLAGS_GCSECTIONS + host_build: QT -= gui # no host tool will ever use gui host_build:force_bootstrap { !build_pass: CONFIG += release diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf index b611e782f9..0bf90cc297 100644 --- a/mkspecs/features/qt_build_config.prf +++ b/mkspecs/features/qt_build_config.prf @@ -34,8 +34,12 @@ QMAKE_DIR_REPLACE_SANE = PRECOMPILED_DIR OBJECTS_DIR MOC_DIR RCC_DIR UI_DIR !build_pass:!isEmpty(_QMAKE_SUPER_CACHE_):force_independent { # When doing a -prefix build of top-level qt5/qt.pro, we need to announce - # this repo's module pris' location to the other repos. - isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$shadowed($$dirname(_QMAKE_CONF_)) + # this repo's output dir to the other repos. + MODULE_BASE_OUTDIR = $$shadowed($$dirname(_QMAKE_CONF_)) + !contains(QTREPOS, $$MODULE_BASE_OUTDIR): \ + cache(QTREPOS, add super, MODULE_BASE_OUTDIR) + # This repo's module pris' location needs to be made known to qmake. + isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$MODULE_BASE_OUTDIR modpath = $$MODULE_QMAKE_OUTDIR/mkspecs/modules !contains(QMAKEMODULES, $$modpath): \ cache(QMAKEMODULES, add super, modpath) diff --git a/mkspecs/features/qt_docs.prf b/mkspecs/features/qt_docs.prf index be3cd5273c..8e63fa61a7 100644 --- a/mkspecs/features/qt_docs.prf +++ b/mkspecs/features/qt_docs.prf @@ -23,8 +23,9 @@ QDOC += -outputdir $$QMAKE_DOCS_OUTPUTDIR !build_online_docs: \ QDOC += -installdir $$[QT_INSTALL_DOCS] DOC_INDEXES = -for(qmod, QMAKEMODULES): \ - DOC_INDEXES += -indexdir $$section(qmod, /, 0, -3)/doc +for(qrep, QTREPOS): \ + exists($$qrep/doc): \ + DOC_INDEXES += -indexdir $$qrep/doc qtver.name = QT_VERSION qtver.value = $$VERSION isEmpty(qtver.value): qtver.value = $$MODULE_VERSION diff --git a/mkspecs/features/qt_helper_lib.prf b/mkspecs/features/qt_helper_lib.prf index 4af5bcaabb..b2bb55bb1e 100644 --- a/mkspecs/features/qt_helper_lib.prf +++ b/mkspecs/features/qt_helper_lib.prf @@ -20,8 +20,8 @@ contains(QT_CONFIG, build_all): CONFIG += build_all DESTDIR = $$MODULE_BASE_OUTDIR/lib DLLDESTDIR = $$MODULE_BASE_OUTDIR/bin -# Static builds always need to be installed, as the convenience libraries -# are not linked to the final library in this case. -installed|static: load(qt_installs) +# In static builds of Qt, convenience libraries must be installed, +# as in this case they are not linked to the final library/plugin. +installed|contains(QT_CONFIG, static): load(qt_installs) TARGET = $$qtLibraryTarget($$TARGET) diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 5dac0250ea..8bf4c92cdd 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -29,6 +29,8 @@ host_build|staticlib: CONFIG += static host_build { QT -= gui # no host module will ever use gui + QMAKE_CFLAGS += $$QMAKE_CFLAGS_SPLIT_SECTIONS + QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_SPLIT_SECTIONS force_bootstrap { !build_pass: CONFIG += release contains(QT, core(-private)?|xml) { diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf index 1b71588b8c..c0caca09fa 100644 --- a/mkspecs/linux-icc/qmake.conf +++ b/mkspecs/linux-icc/qmake.conf @@ -23,6 +23,7 @@ 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_SSE2 += -xSSE2 QMAKE_CFLAGS_SSE3 += -xSSE3 @@ -44,6 +45,7 @@ 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 diff --git a/mkspecs/macx-icc/qmake.conf b/mkspecs/macx-icc/qmake.conf index 0bbb1be4ee..03dc58a65c 100644 --- a/mkspecs/macx-icc/qmake.conf +++ b/mkspecs/macx-icc/qmake.conf @@ -22,6 +22,7 @@ QMAKE_CFLAGS_SHLIB = -fPIC -fno-jump-tables QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses QMAKE_CFLAGS_THREAD = +QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections QMAKE_CFLAGS_SSE2 += -xSSE2 QMAKE_CFLAGS_SSE3 += -xSSE3 @@ -51,6 +52,7 @@ 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_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS QMAKE_LINK = icpc QMAKE_LINK_SHLIB = icpc diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf index 830dde97e9..d26ffb4e21 100644 --- a/mkspecs/win32-g++/qmake.conf +++ b/mkspecs/win32-g++/qmake.conf @@ -32,6 +32,7 @@ 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 @@ -56,6 +57,7 @@ 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 = @@ -75,6 +77,7 @@ 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_LINK_OBJECT_MAX = 10 QMAKE_LINK_OBJECT_SCRIPT = object_script QMAKE_PREFIX_STATICLIB = lib |