diff --git a/.gitignore b/.gitignore index 06afdd6..3779da1 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ /qtbase-opensource-src-5.5.1.tar.xz /qtbase-opensource-src-5.6.0.tar.xz /qtbase-opensource-src-5.7.1.tar.xz +/qtbase-opensource-src-5.8.0.tar.xz diff --git a/0001-Add-profile-for-cross-compilation-with-mingw-w64.patch b/0001-Add-profile-for-cross-compilation-with-mingw-w64.patch new file mode 100644 index 0000000..1b36079 --- /dev/null +++ b/0001-Add-profile-for-cross-compilation-with-mingw-w64.patch @@ -0,0 +1,288 @@ +diff -rupN qtbase-opensource-src-5.8.0/mkspecs/mingw-w64-g++/qmake.conf qtbase-opensource-src-5.8.0-new/mkspecs/mingw-w64-g++/qmake.conf +--- qtbase-opensource-src-5.8.0/mkspecs/mingw-w64-g++/qmake.conf 1970-01-01 01:00:00.000000000 +0100 ++++ qtbase-opensource-src-5.8.0-new/mkspecs/mingw-w64-g++/qmake.conf 2017-05-03 14:19:49.551997348 +0200 +@@ -0,0 +1,125 @@ ++# ++# qmake configuration for i686-w64-mingw32-g++ and x86_64-w64-mingw32-g++ ++# ++# Written for cross compilation with mingw-w64 under GNU/Linux ++# ++# Cross compile example for i686-w64-mingw32-g++: ++# configure -xplatform mingw-w64-g++ -device-option CROSS_COMPILE=i686-w64-mingw32- ++# ++ ++load(device_config) ++include(../common/angle.conf) ++ ++MAKEFILE_GENERATOR = MINGW ++QMAKE_PLATFORM = win32 win32-g++ 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 = bison -y ++QMAKE_YACCFLAGS = -d ++QMAKE_CFLAGS = -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -fno-keep-inline-dllexport $${CROSS_COMPILE_CFLAGS} ++QMAKE_CFLAGS_DEPS = -M ++QMAKE_CFLAGS_WARN_ON = -Wall -Wextra ++QMAKE_CFLAGS_WARN_OFF = -w ++QMAKE_CFLAGS_RELEASE = -O2 ++QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO = -O2 -g ++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_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_RELEASE_WITH_DEBUGINFO = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO ++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++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_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 = -g ++QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads ++QMAKE_LFLAGS_EXCEPTIONS_OFF = ++QMAKE_LFLAGS_RELEASE = ++QMAKE_LFLAGS_DEBUG = ++QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console ++QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows ++QMAKE_LFLAGS_DLL = -shared ++QMAKE_LFLAGS_CXX11 = ++QMAKE_LFLAGS_CXX14 = ++QMAKE_LFLAGS_CXX1Z = ++QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections ++QMAKE_LINK_OBJECT_MAX = 10 ++QMAKE_LINK_OBJECT_SCRIPT = object_script ++QMAKE_PREFIX_SHLIB = ++QMAKE_EXTENSION_SHLIB = dll ++QMAKE_PREFIX_STATICLIB = lib ++QMAKE_EXTENSION_STATICLIB = a ++QMAKE_EXTENSION_IMPORTLIB = dll.a ++ ++QMAKE_IDL = $${CROSS_COMPILE}widl ++QMAKE_LIB = $${CROSS_COMPILE}ar -rc ++QMAKE_RC = $${CROSS_COMPILE}windres ++QMAKE_DLLTOOL = $${CROSS_COMPILE}dlltool ++QMAKE_LRELEASE = $${CROSS_COMPILE}lrelease-qt5 ++ ++QMAKE_STRIP = $${CROSS_COMPILE}strip ++QMAKE_STRIPFLAGS_LIB += --strip-unneeded ++QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy ++QMAKE_NM = $${CROSS_COMPILE}nm -P ++ ++PKG_CONFIG = $${CROSS_COMPILE}pkg-config ++QMAKE_PKG_CONFIG = $${CROSS_COMPILE}pkg-config ++ ++QMAKE_LIBS = ++QMAKE_LIBS_CORE = -lole32 -luuid -lwinmm -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 -lz -lpcre16 -liconv ++QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lws2_32 -luuid -luser32 -ladvapi32 -ljpeg -lpng \ ++ -lharfbuzz -lglib-2.0 -lws2_32 -lole32 -lwinmm -lshlwapi -lintl -lpcre \ ++ -lfreetype -lz -lbz2 -lpng16 -lz -luxtheme ++QMAKE_LIBS_NETWORK = -lws2_32 -lcrypt32 -ldnsapi -liphlpapi ++QMAKE_LIBS_DBUS = -ldbus-1 -lws2_32 -liphlpapi ++QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32 ++QMAKE_LIBS_OPENGL_ES2 = -l$${LIBEGL_NAME} -l$${LIBGLESV2_NAME} -ld3d9 -ldxguid -lgdi32 -luser32 ++QMAKE_LIBS_OPENGL_ES2_DEBUG = -l$${LIBEGL_NAME} -l$${LIBGLESV2_NAME} -ld3d9 -ldxguid -lgdi32 -luser32 ++QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32 ++QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqt5main ++ ++load(qt_config) +diff -rupN qtbase-opensource-src-5.8.0/mkspecs/mingw-w64-g++/qplatformdefs.h qtbase-opensource-src-5.8.0-new/mkspecs/mingw-w64-g++/qplatformdefs.h +--- qtbase-opensource-src-5.8.0/mkspecs/mingw-w64-g++/qplatformdefs.h 1970-01-01 01:00:00.000000000 +0100 ++++ qtbase-opensource-src-5.8.0-new/mkspecs/mingw-w64-g++/qplatformdefs.h 2017-05-03 14:19:04.577011511 +0200 +@@ -0,0 +1,155 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2016 The Qt Company Ltd. ++** Contact: https://www.qt.io/licensing/ ++** ++** This file is part of the qmake spec of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and The Qt Company. For licensing terms ++** and conditions see https://www.qt.io/terms-conditions. For further ++** information use the contact form at https://www.qt.io/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 3 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL3 included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 3 requirements ++** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 2.0 or (at your option) the GNU General ++** Public license version 3 or any later version approved by the KDE Free ++** Qt Foundation. The licenses are as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 ++** included in the packaging of this file. Please review the following ++** information to ensure the GNU General Public License requirements will ++** be met: https://www.gnu.org/licenses/gpl-2.0.html and ++** https://www.gnu.org/licenses/gpl-3.0.html. ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#ifndef QPLATFORMDEFS_H ++#define QPLATFORMDEFS_H ++ ++#ifdef UNICODE ++#ifndef _UNICODE ++#define _UNICODE ++#endif ++#endif ++ ++// Get Qt defines/settings ++ ++#include "qglobal.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#if !defined(_WIN32_WINNT) || (_WIN32_WINNT-0 < 0x0500) ++typedef enum { ++ NameUnknown = 0, ++ NameFullyQualifiedDN = 1, ++ NameSamCompatible = 2, ++ NameDisplay = 3, ++ NameUniqueId = 6, ++ NameCanonical = 7, ++ NameUserPrincipal = 8, ++ NameCanonicalEx = 9, ++ NameServicePrincipal = 10, ++ NameDnsDomain = 12 ++} EXTENDED_NAME_FORMAT, *PEXTENDED_NAME_FORMAT; ++#endif ++ ++#ifdef QT_LARGEFILE_SUPPORT ++#define QT_STATBUF struct _stati64 // non-ANSI defs ++#define QT_STATBUF4TSTAT struct _stati64 // non-ANSI defs ++#define QT_STAT ::_stati64 ++#define QT_FSTAT ::_fstati64 ++#else ++#define QT_STATBUF struct _stat // non-ANSI defs ++#define QT_STATBUF4TSTAT struct _stat // non-ANSI defs ++#define QT_STAT ::_stat ++#define QT_FSTAT ::_fstat ++#endif ++#define QT_STAT_REG _S_IFREG ++#define QT_STAT_DIR _S_IFDIR ++#define QT_STAT_MASK _S_IFMT ++#if defined(_S_IFLNK) ++# define QT_STAT_LNK _S_IFLNK ++#endif ++#define QT_FILENO _fileno ++#define QT_OPEN ::_open ++#define QT_CLOSE ::_close ++#ifdef QT_LARGEFILE_SUPPORT ++#define QT_LSEEK ::_lseeki64 ++#ifndef UNICODE ++#define QT_TSTAT ::_stati64 ++#else ++#define QT_TSTAT ::_wstati64 ++#endif ++#else ++#define QT_LSEEK ::_lseek ++#ifndef UNICODE ++#define QT_TSTAT ::_stat ++#else ++#define QT_TSTAT ::_wstat ++#endif ++#endif ++#define QT_READ ::_read ++#define QT_WRITE ::_write ++#define QT_ACCESS ::_access ++#define QT_GETCWD ::_getcwd ++#define QT_CHDIR ::_chdir ++#define QT_MKDIR ::_mkdir ++#define QT_RMDIR ::_rmdir ++#define QT_OPEN_LARGEFILE 0 ++#define QT_OPEN_RDONLY _O_RDONLY ++#define QT_OPEN_WRONLY _O_WRONLY ++#define QT_OPEN_RDWR _O_RDWR ++#define QT_OPEN_CREAT _O_CREAT ++#define QT_OPEN_TRUNC _O_TRUNC ++#define QT_OPEN_APPEND _O_APPEND ++#if defined(O_TEXT) ++# define QT_OPEN_TEXT _O_TEXT ++# define QT_OPEN_BINARY _O_BINARY ++#endif ++ ++#include "../common/c89/qplatformdefs.h" ++ ++#ifdef QT_LARGEFILE_SUPPORT ++#undef QT_FSEEK ++#undef QT_FTELL ++#undef QT_OFF_T ++ ++#define QT_FSEEK ::fseeko64 ++#define QT_FTELL ::ftello64 ++#define QT_OFF_T off64_t ++#endif ++ ++#define QT_SIGNAL_ARGS int ++ ++#define QT_VSNPRINTF ::_vsnprintf ++#define QT_SNPRINTF ::_snprintf ++ ++# define F_OK 0 ++# define X_OK 1 ++# define W_OK 2 ++# define R_OK 4 ++ ++ ++#endif // QPLATFORMDEFS_H diff --git a/0001-Support-ANGLE-switches-via-configure-shell-script.patch b/0001-Support-ANGLE-switches-via-configure-shell-script.patch deleted file mode 100644 index 627560e..0000000 --- a/0001-Support-ANGLE-switches-via-configure-shell-script.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 9dcde240bc97605b8267ccaf8d509e3912212a56 Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:21:37 +0100 -Subject: [PATCH 01/19] Support ANGLE switches via configure shell script - -Change-Id: I163cc1c9cda982cd0e823b062bb67e32ffd44dd5 ---- - configure | 26 ++++++++++++++++++++++++-- - 1 file changed, 24 insertions(+), 2 deletions(-) - -diff --git a/configure b/configure -index ba94d08714..29a9abe259 100755 ---- a/configure -+++ b/configure -@@ -1287,6 +1287,7 @@ while [ "$#" -gt 0 ]; do - ;; - opengl) - if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] || -+ [ "$VAL" = "angle" ] || [ "$VAL" = "dynamic" ] || - [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || - [ "$VAL" = "es2" ]; then - CFG_OPENGL="$VAL" -@@ -5320,7 +5321,7 @@ if [ "$XPLATFORM_MINGW" = "yes" ]; then - fi - if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then - if compileTest x11/opengl "OpenGL"; then -- CFG_OPENGL=desktop -+ CFG_OPENGL=angle - elif compileTest unix/opengles2 "OpenGL ES 2.0"; then - CFG_OPENGL=es2 - else -@@ -5356,6 +5357,17 @@ if [ "$XPLATFORM_MINGW" = "yes" ]; then - echo " ${XQMAKESPEC}." - exit 1 - fi -+ elif [ "$CFG_OPENGL" = "angle" ]; then -+ compileTest x11/opengl "OpenGL" -+ if [ $? != "0" ]; then -+ echo "The OpenGL functionality test failed!" -+ echo " You might need to modify the include and library search paths by editing" -+ echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in" -+ echo " ${XQMAKESPEC}." -+ exit 1 -+ fi -+ elif [ "$CFG_OPENGL" = "dynamic" ]; then -+ true # FIXME: not sure whether/which test required - elif [ "$CFG_OPENGL" = "desktop" ]; then - # Desktop OpenGL support - compileTest x11/opengl "OpenGL" -@@ -6431,6 +6443,16 @@ if [ "$CFG_OPENGL" = "es2" ]; then - QT_CONFIG="$QT_CONFIG opengles2" - fi - -+if [ "$CFG_OPENGL" = "angle" ]; then -+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES QT_OPENGL_ES_2" -+ QT_CONFIG="$QT_CONFIG opengles2 egl angle" -+fi -+ -+if [ "$CFG_OPENGL" = "dynamic" ]; then -+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_DYNAMIC" -+ QT_CONFIG="$QT_CONFIG dynamicgl" -+fi -+ - if [ "$CFG_SHARED" = "yes" ]; then - QT_CONFIG="$QT_CONFIG shared" - QTCONFIG_CONFIG="$QTCONFIG_CONFIG shared" -@@ -7479,7 +7501,7 @@ report_support " OpenSSL .............." "$CFG_OPENSSL" yes "loading librarie - report_support " SecureTransport ......" "$CFG_SECURETRANSPORT" - report_support " OpenGL / OpenVG:" - report_support " EGL .................." "$CFG_EGL" --report_support " OpenGL ..............." "$CFG_OPENGL" yes "Desktop OpenGL" es2 "OpenGL ES 2.0+" -+report_support " OpenGL ..............." "$CFG_OPENGL" yes "Desktop OpenGL" es2 "OpenGL ES 2.0+" angle "ANGLE" dynamic "Dynamic OpenGL" - report_support " OpenVG ..............." "$CFG_OPENVG-$CFG_OPENVG_SHIVA" yes-yes "ShivaVG" yes-no "native" - report_support " PCRE ..................." "$CFG_PCRE" yes "system library" qt "bundled copy" - if [ -n "$PKG_CONFIG" ]; then --- -2.11.0 - diff --git a/0002-Use-external-ANGLE-library.patch b/0002-Use-external-ANGLE-library.patch deleted file mode 100644 index d4eb827..0000000 --- a/0002-Use-external-ANGLE-library.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 23989c4480e79c80267e1a95cbf05682699d1d07 Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:24:19 +0100 -Subject: [PATCH 02/19] Use external ANGLE library - -Change-Id: I419f3ae46941f8b782f942b4adf09fa546caa0e4 ---- - src/gui/Qt5GuiConfigExtras.cmake.in | 4 ++-- - src/gui/gui.pro | 9 ++++----- - src/opengl/opengl.pro | 1 + - src/plugins/platforms/windows/windows.pri | 1 + - src/src.pro | 4 ---- - 5 files changed, 8 insertions(+), 11 deletions(-) - -diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in -index 07869efd7d..2e32911a64 100644 ---- a/src/gui/Qt5GuiConfigExtras.cmake.in -+++ b/src/gui/Qt5GuiConfigExtras.cmake.in -@@ -2,9 +2,9 @@ - !!IF !isEmpty(CMAKE_ANGLE_EGL_DLL_RELEASE) - - !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE) --set(Qt5Gui_EGL_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR/QtANGLE\") -+set(Qt5Gui_EGL_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\") - !!ELSE --set(Qt5Gui_EGL_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR/QtANGLE\") -+set(Qt5Gui_EGL_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR\") - !!ENDIF - - _qt5_Gui_check_file_exists(${Qt5Gui_EGL_INCLUDE_DIRS}) -diff --git a/src/gui/gui.pro b/src/gui/gui.pro -index 462f133ff8..db30dd3440 100644 ---- a/src/gui/gui.pro -+++ b/src/gui/gui.pro -@@ -17,11 +17,6 @@ MODULE_PLUGIN_TYPES = \ - imageformats \ - egldeviceintegrations - --# This is here only because the platform plugin is no module, obviously. --win32:contains(QT_CONFIG, angle)|contains(QT_CONFIG, dynamicgl) { -- MODULE_AUX_INCLUDES = \ -- \$\$QT_MODULE_INCLUDE_BASE/QtANGLE --} - - # Code coverage with TestCocoon - # The following is required as extra compilers use $$QMAKE_CXX instead of $(CXX). -@@ -33,6 +28,10 @@ testcocoon { - - osx: LIBS_PRIVATE += -framework AppKit - -+win32:contains(QT_CONFIG, angle) { -+ LIBS_PRIVATE += -lGLESv2 -+} -+ - CONFIG += simd optimize_full - - include(accessible/accessible.pri) -diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro -index 2386ef5d19..fe3b327f13 100644 ---- a/src/opengl/opengl.pro -+++ b/src/opengl/opengl.pro -@@ -11,6 +11,7 @@ QMAKE_DOCS = $$PWD/doc/qtopengl.qdocconf - - contains(QT_CONFIG, opengl):CONFIG += opengl - contains(QT_CONFIG, opengles2):CONFIG += opengles2 -+win32:contains(QT_CONFIG, angle): LIBS_PRIVATE += -lGLESv2 - - HEADERS += qgl.h \ - qgl_p.h \ -diff --git a/src/plugins/platforms/windows/windows.pri b/src/plugins/platforms/windows/windows.pri -index 48c53592d6..3498dbeaa8 100644 ---- a/src/plugins/platforms/windows/windows.pri -+++ b/src/plugins/platforms/windows/windows.pri -@@ -3,6 +3,7 @@ LIBS *= -lole32 - !wince: LIBS *= -luser32 -lwinspool -limm32 -lwinmm -loleaut32 - - contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles2):!contains(QT_CONFIG, dynamicgl): LIBS *= -lopengl32 -+contains(QT_CONFIG, angle):LIBS += -lGLESv2 -lEGL - - mingw: LIBS *= -luuid - # For the dialog helpers: -diff --git a/src/src.pro b/src/src.pro -index 3d185408f8..1e4f93d17d 100644 ---- a/src/src.pro -+++ b/src/src.pro -@@ -163,10 +163,6 @@ contains(QT_CONFIG, concurrent):SUBDIRS += src_concurrent - SUBDIRS += src_3rdparty_harfbuzzng - src_gui.depends += src_3rdparty_harfbuzzng - } -- win32:contains(QT_CONFIG, angle)|contains(QT_CONFIG, dynamicgl) { -- SUBDIRS += src_angle -- src_gui.depends += src_angle -- } - contains(QT_CONFIG, png) { - SUBDIRS += src_3rdparty_libpng - src_3rdparty_freetype.depends += src_3rdparty_libpng --- -2.11.0 - diff --git a/0003-Make-sure-.pc-files-are-installed-correctly.patch b/0003-Make-sure-.pc-files-are-installed-correctly.patch deleted file mode 100644 index 107d48d..0000000 --- a/0003-Make-sure-.pc-files-are-installed-correctly.patch +++ /dev/null @@ -1,67 +0,0 @@ -From b65d80194ed142b8d6e4240a6d9fcb4824a2b371 Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:25:40 +0100 -Subject: [PATCH 03/19] Make sure *.pc files are installed correctly - -Change-Id: Icaecea2095432fac5ee7ca9e0283f810d732381a ---- - qmake/generators/makefile.cpp | 8 ++++++-- - qmake/generators/makefile.h | 2 +- - qmake/generators/win32/winmakefile.cpp | 2 +- - 3 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp -index d356adada5..fa5c796387 100644 ---- a/qmake/generators/makefile.cpp -+++ b/qmake/generators/makefile.cpp -@@ -3149,7 +3149,7 @@ MakefileGenerator::openOutput(QFile &file, const QString &build) const - } - - QString --MakefileGenerator::pkgConfigFileName(bool fixify) -+MakefileGenerator::pkgConfigFileName(bool fixify, bool onlyPrependDestdir) - { - QString ret = project->first("QMAKE_PKGCONFIG_FILE").toQString(); - if (ret.isEmpty()) { -@@ -3174,7 +3174,11 @@ MakefileGenerator::pkgConfigFileName(bool fixify) - if(fixify) { - if(QDir::isRelativePath(ret) && !project->isEmpty("DESTDIR")) - ret.prepend(project->first("DESTDIR").toQString()); -- ret = fileFixify(ret, FileFixifyBackwards); -+ if (onlyPrependDestdir) { -+ ret = Option::fixPathToLocalOS(ret); -+ } else { -+ ret = fileFixify(ret, FileFixifyBackwards); -+ } - } - return ret; - } -diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h -index a67a0ec0fc..9ec1abfaa8 100644 ---- a/qmake/generators/makefile.h -+++ b/qmake/generators/makefile.h -@@ -89,7 +89,7 @@ protected: - virtual void writeDefaultVariables(QTextStream &t); - - QString pkgConfigPrefix() const; -- QString pkgConfigFileName(bool fixify=true); -+ QString pkgConfigFileName(bool fixify=true, bool onlyPrependDestdir = false); - QString pkgConfigFixPath(QString) const; - void writePkgConfigFile(); // for pkg-config - -diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp -index 0846cb2d8f..543e905051 100644 ---- a/qmake/generators/win32/winmakefile.cpp -+++ b/qmake/generators/win32/winmakefile.cpp -@@ -718,7 +718,7 @@ QString Win32MakefileGenerator::defaultInstall(const QString &t) - } - if(!ret.isEmpty()) - ret += "\n\t"; -- ret += installMetaFile(ProKey("QMAKE_PKGCONFIG_INSTALL_REPLACE"), pkgConfigFileName(true), dst_pc); -+ ret += installMetaFile(ProKey("QMAKE_PKGCONFIG_INSTALL_REPLACE"), pkgConfigFileName(true, true), dst_pc); - if(!uninst.isEmpty()) - uninst.append("\n\t"); - uninst.append("-$(DEL_FILE) " + escapeFilePath(dst_pc)); --- -2.11.0 - diff --git a/0003-Use-external-ANGLE-library.patch b/0003-Use-external-ANGLE-library.patch new file mode 100644 index 0000000..bd80d9b --- /dev/null +++ b/0003-Use-external-ANGLE-library.patch @@ -0,0 +1,97 @@ +From 1ffc87d8805a92fb7666084c656bac46cd276599 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 13:41:38 +0200 +Subject: [PATCH 03/30] Use external ANGLE library + +--- + src/gui/Qt5GuiConfigExtras.cmake.in | 4 ++-- + src/gui/gui.pro | 8 ++------ + src/opengl/opengl.pro | 1 + + src/plugins/platforms/windows/windows.pri | 1 + + src/src.pro | 4 ---- + 5 files changed, 6 insertions(+), 12 deletions(-) + +diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in +index 07869efd7d..2e32911a64 100644 +--- a/src/gui/Qt5GuiConfigExtras.cmake.in ++++ b/src/gui/Qt5GuiConfigExtras.cmake.in +@@ -2,9 +2,9 @@ + !!IF !isEmpty(CMAKE_ANGLE_EGL_DLL_RELEASE) + + !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE) +-set(Qt5Gui_EGL_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR/QtANGLE\") ++set(Qt5Gui_EGL_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\") + !!ELSE +-set(Qt5Gui_EGL_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR/QtANGLE\") ++set(Qt5Gui_EGL_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR\") + !!ENDIF + + _qt5_Gui_check_file_exists(${Qt5Gui_EGL_INCLUDE_DIRS}) +diff --git a/src/gui/gui.pro b/src/gui/gui.pro +index 5f8cbe2cbe..0ebf6b7281 100644 +--- a/src/gui/gui.pro ++++ b/src/gui/gui.pro +@@ -18,12 +18,6 @@ MODULE_PLUGIN_TYPES = \ + imageformats \ + egldeviceintegrations + +-# This is here only because the platform plugin is no module, obviously. +-qtConfig(angle) { +- MODULE_AUX_INCLUDES = \ +- \$\$QT_MODULE_INCLUDE_BASE/QtANGLE +-} +- + # Code coverage with TestCocoon + # The following is required as extra compilers use $$QMAKE_CXX instead of $(CXX). + # Without this, testcocoon.prf is read only after $$QMAKE_CXX is used by the +@@ -34,6 +28,8 @@ testcocoon { + + osx: LIBS_PRIVATE += -framework AppKit + ++win32:qtConfig(angle): LIBS_PRIVATE += -lGLESv2 ++ + CONFIG += simd optimize_full + + include(accessible/accessible.pri) +diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro +index 718a886809..89965709ed 100644 +--- a/src/opengl/opengl.pro ++++ b/src/opengl/opengl.pro +@@ -11,6 +11,7 @@ QMAKE_DOCS = $$PWD/doc/qtopengl.qdocconf + + qtConfig(opengl): CONFIG += opengl + qtConfig(opengles2): CONFIG += opengles2 ++win32:qtConfig(angle): LIBS_PRIVATE += -lGLESv2 + + HEADERS += qgl.h \ + qgl_p.h \ +diff --git a/src/plugins/platforms/windows/windows.pri b/src/plugins/platforms/windows/windows.pri +index 20e0b81da9..b55847fc69 100644 +--- a/src/plugins/platforms/windows/windows.pri ++++ b/src/plugins/platforms/windows/windows.pri +@@ -2,6 +2,7 @@ + LIBS += -lole32 -luser32 -lwinspool -limm32 -lwinmm -loleaut32 + + qtConfig(opengl):!qtConfig(opengles2):!qtConfig(dynamicgl): LIBS *= -lopengl32 ++qtConfig(angle):LIBS += -lGLESv2 -lEGL + + mingw: LIBS *= -luuid + # For the dialog helpers: +diff --git a/src/src.pro b/src/src.pro +index 90d7e2b76c..92e89ea39f 100644 +--- a/src/src.pro ++++ b/src/src.pro +@@ -160,10 +160,6 @@ qtConfig(gui) { + SUBDIRS += src_3rdparty_harfbuzzng + src_gui.depends += src_3rdparty_harfbuzzng + } +- qtConfig(angle) { +- SUBDIRS += src_angle +- src_gui.depends += src_angle +- } + qtConfig(png):!qtConfig(system-png) { + SUBDIRS += src_3rdparty_libpng + src_3rdparty_freetype.depends += src_3rdparty_libpng +-- +2.12.2 + diff --git a/0004-Don-t-add-resource-files-to-LIBS-parameter.patch b/0004-Don-t-add-resource-files-to-LIBS-parameter.patch deleted file mode 100644 index e61c74d..0000000 --- a/0004-Don-t-add-resource-files-to-LIBS-parameter.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 15b897295a7f1543ff0d3f68c1b8cd4eb66c29b4 Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:26:23 +0100 -Subject: [PATCH 04/19] Don't add resource files to LIBS parameter - -Change-Id: Ib10e83b4f9de1e4545d03f88102da9a0c852349e ---- - qmake/generators/win32/mingw_make.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp -index 382b10c37b..3caad900a8 100644 ---- a/qmake/generators/win32/mingw_make.cpp -+++ b/qmake/generators/win32/mingw_make.cpp -@@ -196,7 +196,7 @@ void MingwMakefileGenerator::init() - - processVars(); - -- project->values("QMAKE_LIBS") += project->values("RES_FILE"); -+ project->values("OBJECTS") += project->values("RES_FILE"); - - if (project->isActiveConfig("dll")) { - QString destDir = ""; --- -2.11.0 - diff --git a/0005-Make-sure-.pc-files-are-installed-correctly.patch b/0005-Make-sure-.pc-files-are-installed-correctly.patch new file mode 100644 index 0000000..59de23d --- /dev/null +++ b/0005-Make-sure-.pc-files-are-installed-correctly.patch @@ -0,0 +1,66 @@ +From 74be1cdb27c34b149b4b227a8c3107ca49cc254a Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 13:54:12 +0200 +Subject: [PATCH 05/30] Make sure *.pc files are installed correctly + +--- + qmake/generators/makefile.cpp | 8 ++++++-- + qmake/generators/makefile.h | 2 +- + qmake/generators/win32/winmakefile.cpp | 2 +- + 3 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp +index 4450e619b9..182fe79238 100644 +--- a/qmake/generators/makefile.cpp ++++ b/qmake/generators/makefile.cpp +@@ -3150,7 +3150,7 @@ MakefileGenerator::openOutput(QFile &file, const QString &build) const + } + + QString +-MakefileGenerator::pkgConfigFileName(bool fixify) ++MakefileGenerator::pkgConfigFileName(bool fixify, bool onlyPrependDestdir) + { + QString ret = project->first("QMAKE_PKGCONFIG_FILE").toQString(); + if (ret.isEmpty()) { +@@ -3175,7 +3175,11 @@ MakefileGenerator::pkgConfigFileName(bool fixify) + if(fixify) { + if(QDir::isRelativePath(ret) && !project->isEmpty("DESTDIR")) + ret.prepend(project->first("DESTDIR").toQString()); +- ret = fileFixify(ret, FileFixifyBackwards); ++ if (onlyPrependDestdir) { ++ ret = Option::fixPathToLocalOS(ret); ++ } else { ++ ret = fileFixify(ret, FileFixifyBackwards); ++ } + } + return ret; + } +diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h +index 86fec748eb..cbe23d7e3a 100644 +--- a/qmake/generators/makefile.h ++++ b/qmake/generators/makefile.h +@@ -89,7 +89,7 @@ protected: + virtual void writeDefaultVariables(QTextStream &t); + + QString pkgConfigPrefix() const; +- QString pkgConfigFileName(bool fixify=true); ++ QString pkgConfigFileName(bool fixify=true, bool onlyPrependDestdir = false); + QString pkgConfigFixPath(QString) const; + void writePkgConfigFile(); // for pkg-config + +diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp +index 3c029c8004..caa000ea53 100644 +--- a/qmake/generators/win32/winmakefile.cpp ++++ b/qmake/generators/win32/winmakefile.cpp +@@ -721,7 +721,7 @@ QString Win32MakefileGenerator::defaultInstall(const QString &t) + } + if(!ret.isEmpty()) + ret += "\n\t"; +- ret += installMetaFile(ProKey("QMAKE_PKGCONFIG_INSTALL_REPLACE"), pkgConfigFileName(true), dst_pc); ++ ret += installMetaFile(ProKey("QMAKE_PKGCONFIG_INSTALL_REPLACE"), pkgConfigFileName(true, true), dst_pc); + if(!uninst.isEmpty()) + uninst.append("\n\t"); + uninst.append("-$(DEL_FILE) " + escapeFilePath(dst_pc)); +-- +2.12.2 + diff --git a/0005-Prevent-debug-library-names-in-pkg-config-files.patch b/0005-Prevent-debug-library-names-in-pkg-config-files.patch deleted file mode 100644 index 4ebeb60..0000000 --- a/0005-Prevent-debug-library-names-in-pkg-config-files.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 676fd6fa42b0a4c15f9f6cf9d79ee7c1bc8e644f Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:27:35 +0100 -Subject: [PATCH 05/19] Prevent debug library names in pkg-config files - -Change-Id: Ib8422264c4ae266f9b3569617e9e13d2ac77288c ---- - qmake/generators/makefile.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp -index fa5c796387..04c0210eb9 100644 ---- a/qmake/generators/makefile.cpp -+++ b/qmake/generators/makefile.cpp -@@ -3163,6 +3163,9 @@ MakefileGenerator::pkgConfigFileName(bool fixify, bool onlyPrependDestdir) - if (dot != -1) - ret = ret.left(dot); - } -+ if (project->isActiveConfig("debug")) { -+ ret += "d"; -+ } - ret += Option::pkgcfg_ext; - QString subdir = project->first("QMAKE_PKGCONFIG_DESTDIR").toQString(); - if(!subdir.isEmpty()) { --- -2.11.0 - diff --git a/0006-Don-t-add-resource-files-to-LIBS-parameter.patch b/0006-Don-t-add-resource-files-to-LIBS-parameter.patch new file mode 100644 index 0000000..401d504 --- /dev/null +++ b/0006-Don-t-add-resource-files-to-LIBS-parameter.patch @@ -0,0 +1,28 @@ +From fee4dff74c2483c2f4a4d7299e062c366431fc53 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 13:58:28 +0200 +Subject: [PATCH 06/30] Don't add resource files to LIBS parameter + +Solves an issue where the generated pkg-config +files contained invalid Libs.private references +like .obj/debug/Qt5Cored_resource_res.o +--- + qmake/generators/win32/mingw_make.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp +index 8d5a9a7d0f..d2cf8d9afc 100644 +--- a/qmake/generators/win32/mingw_make.cpp ++++ b/qmake/generators/win32/mingw_make.cpp +@@ -196,7 +196,7 @@ void MingwMakefileGenerator::init() + + processVars(); + +- project->values("QMAKE_LIBS") += project->values("RES_FILE"); ++ project->values("OBJECTS") += project->values("RES_FILE"); + + if (project->isActiveConfig("dll")) { + QString destDir = ""; +-- +2.12.2 + diff --git a/0006-Fix-linking-against-static-D-Bus.patch b/0006-Fix-linking-against-static-D-Bus.patch deleted file mode 100644 index 9be76be..0000000 --- a/0006-Fix-linking-against-static-D-Bus.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 88d19966feed291178ef78b9a19dbfe555e3702b Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:28:41 +0100 -Subject: [PATCH 06/19] Fix linking against static D-Bus - -Change-Id: Ibdeb861c134f6142151dc4448f95192af7b6154c ---- - config.tests/unix/dbus/dbus.cpp | 4 ++++ - src/dbus/qdbus_symbols_p.h | 4 ++++ - 2 files changed, 8 insertions(+) - -diff --git a/config.tests/unix/dbus/dbus.cpp b/config.tests/unix/dbus/dbus.cpp -index 295c904400..80d3e9c044 100644 ---- a/config.tests/unix/dbus/dbus.cpp -+++ b/config.tests/unix/dbus/dbus.cpp -@@ -37,6 +37,10 @@ - ** - ****************************************************************************/ - -+#ifdef QT_STATIC -+# define DBUS_STATIC_BUILD -+#endif -+ - #define DBUS_API_SUBJECT_TO_CHANGE - #include - -diff --git a/src/dbus/qdbus_symbols_p.h b/src/dbus/qdbus_symbols_p.h -index fbeea61c95..8e73e9eec8 100644 ---- a/src/dbus/qdbus_symbols_p.h -+++ b/src/dbus/qdbus_symbols_p.h -@@ -57,6 +57,10 @@ - - #ifndef QT_NO_DBUS - -+#ifdef QT_STATIC -+# define DBUS_STATIC_BUILD -+#endif -+ - #ifdef QT_LINKED_LIBDBUS - # include - #else --- -2.11.0 - diff --git a/0007-Adjust-win32-g-mkspecs-profile.patch b/0007-Adjust-win32-g-mkspecs-profile.patch deleted file mode 100644 index c9d3adc..0000000 --- a/0007-Adjust-win32-g-mkspecs-profile.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 66b18e87cc662081d9fcfa5bffc14532ca9d1754 Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:31:33 +0100 -Subject: [PATCH 07/19] Adjust win32-g++ mkspecs profile - -Change-Id: Ia833bf6997f8f15d3fb200bb961f67b4d174fb87 ---- - mkspecs/win32-g++/qmake.conf | 25 +++++++++++++++---------- - 1 file changed, 15 insertions(+), 10 deletions(-) - -diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf -index 6ed39745ae..c4e15ae18b 100644 ---- a/mkspecs/win32-g++/qmake.conf -+++ b/mkspecs/win32-g++/qmake.conf -@@ -26,7 +26,7 @@ QMAKE_LEX = flex - QMAKE_LEXFLAGS = - QMAKE_YACC = bison -y - QMAKE_YACCFLAGS = -d --QMAKE_CFLAGS = -pipe -fno-keep-inline-dllexport -+QMAKE_CFLAGS = -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 --param=ssp-buffer-size=4 -fno-keep-inline-dllexport - QMAKE_CFLAGS_DEPS = -M - QMAKE_CFLAGS_WARN_ON = -Wall -Wextra - QMAKE_CFLAGS_WARN_OFF = -w -@@ -75,10 +75,10 @@ QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< - - QMAKE_LINK = $${CROSS_COMPILE}g++ - QMAKE_LINK_C = $${CROSS_COMPILE}gcc --QMAKE_LFLAGS = -+QMAKE_LFLAGS = -g - QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads - QMAKE_LFLAGS_EXCEPTIONS_OFF = --QMAKE_LFLAGS_RELEASE = -Wl,-s -+QMAKE_LFLAGS_RELEASE = - QMAKE_LFLAGS_DEBUG = - QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console - QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows -@@ -96,21 +96,26 @@ QMAKE_EXTENSION_STATICLIB = a - QMAKE_LIB_EXTENSIONS = a dll.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_CORE = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 -lz -lpcre16 -+QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lws2_32 -lole32 -luuid -luser32 -ladvapi32 -ljpeg -lpng -lharfbuzz -lglib-2.0 -lintl -lwinmm -lopengl32 -+QMAKE_LIBS_NETWORK = -lws2_32 -lcrypt32 -ldnsapi -liphlpapi - QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32 --QMAKE_LIBS_OPENGL_ES2 = -l$${LIBEGL_NAME} -l$${LIBGLESV2_NAME} -lgdi32 -luser32 --QMAKE_LIBS_OPENGL_ES2_DEBUG = -l$${LIBEGL_NAME}d -l$${LIBGLESV2_NAME}d -lgdi32 -luser32 -+QMAKE_LIBS_OPENGL_ES2 = -lEGL -lGLESv2 -ld3d9 -ldxguid -lgdi32 -luser32 -+QMAKE_LIBS_OPENGL_ES2_DEBUG = $(QMAKE_LIBS_OPENGL_ES2) - QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32 --QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain -+QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqt5main - --QMAKE_IDL = midl -+QMAKE_IDL = $${CROSS_COMPILE}widl - QMAKE_LIB = $${CROSS_COMPILE}ar -rc - QMAKE_RC = $${CROSS_COMPILE}windres -+QMAKE_DLLTOOL = $${CROSS_COMPILE}dlltool -+QMAKE_LRELEASE = $${CROSS_COMPILE}lrelease-qt5 - - QMAKE_STRIP = $${CROSS_COMPILE}strip - QMAKE_STRIPFLAGS_LIB += --strip-unneeded - QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy - QMAKE_NM = $${CROSS_COMPILE}nm -P -+ -+PKG_CONFIG = $${CROSS_COMPILE}pkg-config -+ - load(qt_config) --- -2.11.0 - diff --git a/0007-Prevent-debug-library-names-in-pkg-config-files.patch b/0007-Prevent-debug-library-names-in-pkg-config-files.patch new file mode 100644 index 0000000..a4266ba --- /dev/null +++ b/0007-Prevent-debug-library-names-in-pkg-config-files.patch @@ -0,0 +1,33 @@ +From 995313e0795df5500fd84350e80a3f88202b473d Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 14:01:14 +0200 +Subject: [PATCH 07/30] Prevent debug library names in pkg-config files + +qmake generates the pkgconfig .pc files two times, once for the +release build and once for the debug build (which we're not actually +building in this package). For both generations the exact same +pkgconfig file name is used. This causes references to the debug +build ending up in the .pc files which are unwanted +Prevent this from happening by giving the pkgconfig .pc +files for the debug build an unique file name. +--- + qmake/generators/makefile.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp +index 182fe79238..a762443fe2 100644 +--- a/qmake/generators/makefile.cpp ++++ b/qmake/generators/makefile.cpp +@@ -3164,6 +3164,9 @@ MakefileGenerator::pkgConfigFileName(bool fixify, bool onlyPrependDestdir) + if (dot != -1) + ret = ret.left(dot); + } ++ if (project->isActiveConfig("debug")) { ++ ret += "d"; ++ } + ret += Option::pkgcfg_ext; + QString subdir = project->first("QMAKE_PKGCONFIG_DESTDIR").toQString(); + if(!subdir.isEmpty()) { +-- +2.12.2 + diff --git a/0008-Fix-linking-against-external-harfbuzz.patch b/0008-Fix-linking-against-external-harfbuzz.patch deleted file mode 100644 index 5abd252..0000000 --- a/0008-Fix-linking-against-external-harfbuzz.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 178ee31ccfbfc0c05a1ecfeba2d780dfe4c70b2d Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:34:14 +0100 -Subject: [PATCH 08/19] Fix linking against external harfbuzz - -Change-Id: I1be0c2bd1bf4ae5c981afca84af53a5f3ac7cffe ---- - config.tests/unix/harfbuzz/harfbuzz.pro | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/config.tests/unix/harfbuzz/harfbuzz.pro b/config.tests/unix/harfbuzz/harfbuzz.pro -index 32edd6e358..554f0b1252 100644 ---- a/config.tests/unix/harfbuzz/harfbuzz.pro -+++ b/config.tests/unix/harfbuzz/harfbuzz.pro -@@ -1,3 +1,3 @@ - SOURCES = harfbuzz.cpp - CONFIG -= qt dylib --LIBS += -lharfbuzz -+LIBS += -lharfbuzz -lglib-2.0 -lws2_32 -lole32 -lwinmm -lshlwapi -lintl --- -2.11.0 - diff --git a/0008-Fix-linking-against-shared-static-libpng.patch b/0008-Fix-linking-against-shared-static-libpng.patch new file mode 100644 index 0000000..048bcd4 --- /dev/null +++ b/0008-Fix-linking-against-shared-static-libpng.patch @@ -0,0 +1,26 @@ +From f3a39738bcf7560f023bd280017aedaeb756e5c2 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Thu, 26 Jan 2017 17:51:31 +0100 +Subject: [PATCH 08/30] Fix linking against shared/static libpng + +--- + src/gui/configure.json | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/gui/configure.json b/src/gui/configure.json +index 1f5011617c..5006ff5a3a 100644 +--- a/src/gui/configure.json ++++ b/src/gui/configure.json +@@ -161,7 +161,8 @@ + "sources": [ + { "type": "pkgConfig", "args": "libpng" }, + { "libs": "-llibpng", "condition": "config.msvc" }, +- { "libs": "-lpng", "condition": "!config.msvc" } ++ { "libs": "-lpng -lz", "condition": "!config.msvc && !features.shared" }, ++ { "libs": "-lpng", "condition": "!config.msvc && features.shared" } + ] + }, + "mirclient": { +-- +2.12.2 + diff --git a/0009-Fix-linking-against-static-D-Bus.patch b/0009-Fix-linking-against-static-D-Bus.patch new file mode 100644 index 0000000..db59848 --- /dev/null +++ b/0009-Fix-linking-against-static-D-Bus.patch @@ -0,0 +1,66 @@ +From 3379bc4d4d65124ec08aa8dade1b6b2a7b25f61e Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Fri, 3 Feb 2017 19:36:25 +0100 +Subject: [PATCH 09/30] Fix linking against static D-Bus + +--- + config.tests/unix/dbus/dbus.cpp | 4 ++++ + configure.json | 6 +++++- + src/dbus/qdbus_symbols_p.h | 4 ++++ + 3 files changed, 13 insertions(+), 1 deletion(-) + +diff --git a/config.tests/unix/dbus/dbus.cpp b/config.tests/unix/dbus/dbus.cpp +index 295c904400..80d3e9c044 100644 +--- a/config.tests/unix/dbus/dbus.cpp ++++ b/config.tests/unix/dbus/dbus.cpp +@@ -37,6 +37,10 @@ + ** + ****************************************************************************/ + ++#ifdef QT_STATIC ++# define DBUS_STATIC_BUILD ++#endif ++ + #define DBUS_API_SUBJECT_TO_CHANGE + #include + +diff --git a/configure.json b/configure.json +index f774291d22..12714da714 100644 +--- a/configure.json ++++ b/configure.json +@@ -158,12 +158,16 @@ + "sources": [ + { "type": "pkgConfig", "args": "dbus-1 >= 1.2" }, + { ++ "libs": "-ldbus-1 -lws2_32 -liphlpapi", ++ "condition": "config.win32 && !features.shared" ++ }, ++ { + "libs": "", + "builds": { + "debug": "-ldbus-1d", + "release": "-ldbus-1" + }, +- "condition": "config.win32" ++ "condition": "config.win32 && features.shared" + }, + { "libs": "-ldbus-1", "condition": "!config.win32" } + ] +diff --git a/src/dbus/qdbus_symbols_p.h b/src/dbus/qdbus_symbols_p.h +index cfc0e12046..65f1397cd6 100644 +--- a/src/dbus/qdbus_symbols_p.h ++++ b/src/dbus/qdbus_symbols_p.h +@@ -57,6 +57,10 @@ + + #ifndef QT_NO_DBUS + ++#ifdef QT_STATIC ++# define DBUS_STATIC_BUILD ++#endif ++ + #ifdef QT_LINKED_LIBDBUS + # include + #else +-- +2.11.1 + diff --git a/0009-Fix-linking-against-static-pcre.patch b/0009-Fix-linking-against-static-pcre.patch deleted file mode 100644 index 7ebbf8e..0000000 --- a/0009-Fix-linking-against-static-pcre.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 7f5e24913d7c4bfac15487c1b6b9ea7516fd5242 Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:34:58 +0100 -Subject: [PATCH 09/19] Fix linking against static pcre - -Change-Id: I05f3cd65a17c373360455a3d6d4b2493344e26b2 ---- - src/corelib/tools/qregularexpression.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/corelib/tools/qregularexpression.cpp b/src/corelib/tools/qregularexpression.cpp -index e7f86ddf6b..63fc683c68 100644 ---- a/src/corelib/tools/qregularexpression.cpp -+++ b/src/corelib/tools/qregularexpression.cpp -@@ -54,6 +54,10 @@ - #include - #include - -+#ifdef QT_STATIC -+#define PCRE_STATIC -+#endif -+ - #include - - QT_BEGIN_NAMESPACE --- -2.11.0 - diff --git a/0010-Fix-linking-against-static-freetype2.patch b/0010-Fix-linking-against-static-freetype2.patch new file mode 100644 index 0000000..bc76d2c --- /dev/null +++ b/0010-Fix-linking-against-static-freetype2.patch @@ -0,0 +1,30 @@ +From 24c3bda7db1733545350436d8c2f489be5395650 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Fri, 3 Feb 2017 20:51:19 +0100 +Subject: [PATCH 10/30] Fix linking against static freetype2 + +--- + src/gui/configure.json | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/gui/configure.json b/src/gui/configure.json +index 5006ff5a3a..6530357be9 100644 +--- a/src/gui/configure.json ++++ b/src/gui/configure.json +@@ -99,8 +99,11 @@ + "label": "FreeType", + "test": "unix/freetype", + "sources": [ +- { "type": "pkgConfig", "args": "freetype2" }, +- { "type": "freetype", "libs": "-lfreetype" } ++ { "type": "pkgConfig", "args": "--static --libs freetype2", "condition": "!features.shared" }, ++ { "type": "pkgConfig", "args": "--libs freetype2", "condition": "features.shared" }, ++ { "libs": "-lfreetype -lharfbuzz -lfreetype -lglib-2.0 -lintl -lws2_32 -lole32 -lwinmm -lshlwapi -lpcre -lintl -lpcre -lintl -liconv -lgraphite2 -lbz2", "condition": "!features.shared" }, ++ { "libs": "-Wl,-Bdynamic -lfreetype -Wl,-Bstatic", "condition": "!features.shared" }, ++ { "libs": "-lfreetype", "condition": "features.shared" } + ] + }, + "fontconfig": { +-- +2.12.2 + diff --git a/0010-Rename-qtmain-to-qt5main.patch b/0010-Rename-qtmain-to-qt5main.patch deleted file mode 100644 index 16d1d43..0000000 --- a/0010-Rename-qtmain-to-qt5main.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 5e1f74c12e156aad044a22f076e4ffa62272dd7c Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:36:08 +0100 -Subject: [PATCH 10/19] Rename qtmain to qt5main - -Change-Id: I9372230d9733b9d977219f4b125e2fc1d99c440f ---- - mkspecs/features/create_cmake.prf | 4 ++-- - mkspecs/features/win32/windows.prf | 2 +- - src/winmain/winmain.pro | 2 +- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf -index 11fb52a0b1..4adacf6762 100644 ---- a/mkspecs/features/create_cmake.prf -+++ b/mkspecs/features/create_cmake.prf -@@ -225,8 +225,8 @@ mac { - CMAKE_LIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.dll - - mingw { -- CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqtmain$${QT_LIBINFIX}d.a -- CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqtmain$${QT_LIBINFIX}.a -+ CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqt5main$${QT_LIBINFIX}.a -+ CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqt5main$${QT_LIBINFIX}.a - - !isEmpty(CMAKE_STATIC_TYPE) { - CMAKE_STATIC_WINDOWS_BUILD = "true" -diff --git a/mkspecs/features/win32/windows.prf b/mkspecs/features/win32/windows.prf -index 986067fc8c..339ac15efe 100644 ---- a/mkspecs/features/win32/windows.prf -+++ b/mkspecs/features/win32/windows.prf -@@ -5,7 +5,7 @@ contains(TEMPLATE, ".*app") { - mingw:DEFINES += QT_NEEDS_QMAIN - - qt:for(entryLib, $$list($$unique(QMAKE_LIBS_QT_ENTRY))) { -- isEqual(entryLib, -lqtmain) { -+ isEqual(entryLib, -lqt5main): { - !contains(QMAKE_DEFAULT_LIBDIRS, $$QT.core.libs): \ - QMAKE_LIBS += -L$$QT.core.libs - CONFIG(debug, debug|release): QMAKE_LIBS += $${entryLib}$${QT_LIBINFIX}d -diff --git a/src/winmain/winmain.pro b/src/winmain/winmain.pro -index b4977653ce..d63a684a18 100644 ---- a/src/winmain/winmain.pro -+++ b/src/winmain/winmain.pro -@@ -2,7 +2,7 @@ - !win32:error("$$_FILE_ is intended only for Windows!") - - TEMPLATE = lib --TARGET = qtmain -+TARGET = qt5main - DESTDIR = $$QT.core.libs - - CONFIG += static --- -2.11.0 - diff --git a/0011-Build-dynamic-host-libraries.patch b/0011-Build-dynamic-host-libraries.patch deleted file mode 100644 index 72f0b4d..0000000 --- a/0011-Build-dynamic-host-libraries.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 5ae8178b8e1b65cfdf885e5fc5485a1bb98ab70d Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:37:07 +0100 -Subject: [PATCH 11/19] Build dynamic host libraries - -Change-Id: Idc849d1dcc1cea512488a9b6da444b1dd9ad7b95 ---- - mkspecs/features/qt_module.prf | 2 +- - src/tools/bootstrap-dbus/bootstrap-dbus.pro | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf -index d9011f5482..cb29009970 100644 ---- a/mkspecs/features/qt_module.prf -+++ b/mkspecs/features/qt_module.prf -@@ -25,7 +25,7 @@ isEmpty(VERSION): error("Module does not define version.") - - # Compile as shared/DLL or static according to the option given to configure - # unless overridden. Host builds are always static --host_build|staticlib: CONFIG += static -+staticlib: CONFIG += static - - host_build { - QT -= gui # no host module will ever use gui -diff --git a/src/tools/bootstrap-dbus/bootstrap-dbus.pro b/src/tools/bootstrap-dbus/bootstrap-dbus.pro -index c3ed27d979..30d2114aa1 100644 ---- a/src/tools/bootstrap-dbus/bootstrap-dbus.pro -+++ b/src/tools/bootstrap-dbus/bootstrap-dbus.pro -@@ -27,4 +27,4 @@ SOURCES = \ - load(qt_module) - - lib.CONFIG = dummy_install --INSTALLS = lib -+INSTALLS += lib --- -2.11.0 - diff --git a/0011-Fix-linking-against-static-harfbuzz.patch b/0011-Fix-linking-against-static-harfbuzz.patch new file mode 100644 index 0000000..cc8dfe7 --- /dev/null +++ b/0011-Fix-linking-against-static-harfbuzz.patch @@ -0,0 +1,29 @@ +From 52c34159dec8c829d1f2928d2c9a56bb7299fbff Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 14:22:56 +0200 +Subject: [PATCH 11/30] Fix linking against static harfbuzz + +--- + src/gui/configure.json | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/gui/configure.json b/src/gui/configure.json +index 6530357be9..c5b9b1542a 100644 +--- a/src/gui/configure.json ++++ b/src/gui/configure.json +@@ -125,7 +125,11 @@ + "label": "HarfBuzz", + "test": "unix/harfbuzz", + "sources": [ +- "-lharfbuzz" ++ { "type": "pkgConfig", "args": "--static --libs harfbuzz", "condition": "!features.shared" }, ++ { "type": "pkgConfig", "args": "--libs harfbuzz", "condition": "features.shared" }, ++ { "libs": "-lharfbuzz -lfreetype -lharfbuzz -lglib-2.0 -lintl -lws2_32 -lole32 -lwinmm -lshlwapi -lpcre -lintl -lpcre -lintl -liconv -lgraphite2 -lbz2", "condition": "!features.shared" }, ++ { "libs": "-Wl,-Bdynamic -lharfbuzz -Wl,-Bstatic", "condition": "!features.shared" }, ++ { "libs": "-lharfbuzz", "condition": "features.shared" } + ] + }, + "imf": { +-- +2.12.2 + diff --git a/0012-Enable-rpath-for-build-tools.patch b/0012-Enable-rpath-for-build-tools.patch deleted file mode 100644 index 93d707e..0000000 --- a/0012-Enable-rpath-for-build-tools.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 707be5fdc28ac2fd1acaec581f871f42e454bd23 Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:41:13 +0100 -Subject: [PATCH 12/19] Enable rpath for build tools - -Change-Id: I9a9dbfe2191296158e30af44fc6dbe2655e267ac ---- - mkspecs/features/qt.prf | 10 +++++++--- - mkspecs/features/qt_app.prf | 1 + - 2 files changed, 8 insertions(+), 3 deletions(-) - -diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf -index bb52f23378..08d99c1276 100644 ---- a/mkspecs/features/qt.prf -+++ b/mkspecs/features/qt.prf -@@ -165,14 +165,18 @@ for(ever) { - qt_module_deps = $$CLEAN_QT $$CLEAN_QT_PRIVATE - qt_module_deps = $$resolve_depends(qt_module_deps, "QT.") - --!no_qt_rpath:!static:contains(QT_CONFIG, rpath):!contains(QT_CONFIG, static):\ -- contains(qt_module_deps, core) { -+!static:contains(QT_CONFIG, rpath):!contains(QT_CONFIG, static):\ -+ contains(qt_module_deps, bootstrap_private) { - relative_qt_rpath:!isEmpty(QMAKE_REL_RPATH_BASE):contains(INSTALLS, target):\ - isEmpty(target.files):isEmpty(target.commands):isEmpty(target.extra) { - # NOT the /dev property, as INSTALLS use host paths - QMAKE_RPATHDIR += $$relative_path($$[QT_INSTALL_LIBS], $$qtRelativeRPathBase()) - } else { -- QMAKE_RPATHDIR += $$[QT_INSTALL_LIBS/dev] -+ host_build { -+ QMAKE_RPATHDIR += $$[QT_HOST_LIBS] -+ } else { -+ QMAKE_RPATHDIR += $$[QT_INSTALL_LIBS/dev] -+ } - } - } - -diff --git a/mkspecs/features/qt_app.prf b/mkspecs/features/qt_app.prf -index 46aca50cc2..01f92954f2 100644 ---- a/mkspecs/features/qt_app.prf -+++ b/mkspecs/features/qt_app.prf -@@ -20,6 +20,7 @@ isEmpty(QMAKE_INFO_PLIST): CONFIG -= app_bundle - QMAKE_LFLAGS += $$QMAKE_LFLAGS_GCSECTIONS - - host_build: QT -= gui # no host tool will ever use gui -+host_build: QT_CONFIG += rpath - host_build:force_bootstrap { - !build_pass:contains(QT_CONFIG, release_tools): CONFIG += release - contains(QT, core(-private)?|xml) { --- -2.11.0 - diff --git a/0012-Fix-linking-against-static-pcre.patch b/0012-Fix-linking-against-static-pcre.patch new file mode 100644 index 0000000..3bdc9e1 --- /dev/null +++ b/0012-Fix-linking-against-static-pcre.patch @@ -0,0 +1,27 @@ +From e2c35b81ed48f46c2260ad9e59ff7f50b073e9d4 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 14:24:01 +0200 +Subject: [PATCH 12/30] Fix linking against static pcre + +--- + src/corelib/tools/qregularexpression.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/corelib/tools/qregularexpression.cpp b/src/corelib/tools/qregularexpression.cpp +index 4a30daa72c..3d7c811124 100644 +--- a/src/corelib/tools/qregularexpression.cpp ++++ b/src/corelib/tools/qregularexpression.cpp +@@ -54,6 +54,10 @@ + #include + #include + ++#ifdef QT_STATIC ++#define PCRE_STATIC ++#endif ++ + #include + + QT_BEGIN_NAMESPACE +-- +2.12.2 + diff --git a/0013-Fix-linking-against-shared-static-MariaDB.patch b/0013-Fix-linking-against-shared-static-MariaDB.patch new file mode 100644 index 0000000..867f5a1 --- /dev/null +++ b/0013-Fix-linking-against-shared-static-MariaDB.patch @@ -0,0 +1,26 @@ +From 889ea99f62dd010c168cce6b18f0d49fb2a48203 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 18:56:55 +0200 +Subject: [PATCH 13/30] Fix linking against shared/static MariaDB + +--- + src/sql/configure.json | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/sql/configure.json b/src/sql/configure.json +index 96c82e84f9..fce948026f 100644 +--- a/src/sql/configure.json ++++ b/src/sql/configure.json +@@ -58,6 +58,9 @@ + "label": "MySQL", + "test": "unix/mysql", + "sources": [ ++ { "libs": "-lmariadbclient -lssl -lcrypto -lgdi32 -lws2_32 -lpthread -lz -lm", "condition": "config.win32 && !features.shared" }, ++ { "libs": "-Wl,-Bdynamic -lmariadb -Wl,-Bstatic", "condition": "config.win32 && !features.shared" }, ++ { "libs": "-lmariadb", "condition": "config.win32 && features.shared" }, + { "type": "mysqlConfig", "query": "--libs_r" }, + { "type": "mysqlConfig", "query": "--libs" }, + { "libs": "-lmysqlclient_r", "condition": "!config.win32" }, +-- +2.12.2 + diff --git a/0013-Use-system-zlib-for-build-tools.patch b/0013-Use-system-zlib-for-build-tools.patch deleted file mode 100644 index bf41774..0000000 --- a/0013-Use-system-zlib-for-build-tools.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 3b785d4768b4906ea637f705d18d751ed450078b Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:41:52 +0100 -Subject: [PATCH 13/19] Use system zlib for build tools - -Change-Id: I275442f0562b09811722665313f07270b9c1ac23 ---- - src/tools/bootstrap/bootstrap.pro | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro -index a43105297f..b97ff0aa31 100644 ---- a/src/tools/bootstrap/bootstrap.pro -+++ b/src/tools/bootstrap/bootstrap.pro -@@ -134,7 +134,7 @@ macx { - ../../corelib/io/qstandardpaths_win.cpp - } - --contains(QT_CONFIG, zlib)|cross_compile { -+contains(QT_CONFIG, zlib) { - include(../../3rdparty/zlib.pri) - } else { - CONFIG += no_core_dep --- -2.11.0 - diff --git a/0014-Fix-linking-against-shared-static-PostgreSQL.patch b/0014-Fix-linking-against-shared-static-PostgreSQL.patch new file mode 100644 index 0000000..9b23c4f --- /dev/null +++ b/0014-Fix-linking-against-shared-static-PostgreSQL.patch @@ -0,0 +1,29 @@ +From 953ca26efa1cb2e86a958c52ce737ada0078e1a3 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 18:58:25 +0200 +Subject: [PATCH 14/30] Fix linking against shared/static PostgreSQL + +--- + src/sql/configure.json | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/sql/configure.json b/src/sql/configure.json +index fce948026f..f560c191fd 100644 +--- a/src/sql/configure.json ++++ b/src/sql/configure.json +@@ -72,9 +72,10 @@ + "label": "PostgreSQL", + "test": "unix/psql", + "sources": [ +- { "type": "pkgConfig", "args": "libpq" }, + { "type": "psqlConfig" }, +- { "type": "psqlEnv", "libs": "-llibpq -lws2_32 -ladvapi32", "condition": "config.win32" }, ++ { "type": "psqlEnv", "libs": "-lpq -lintl -lssl -lcrypto -lshell32 -lws2_32 -lsecur32", "condition": "config.win32 && !features.shared" }, ++ { "type": "psqlEnv", "libs": "-Wl,-Bdynamic -lpq -Wl,-Bstatic", "condition": "config.win32 && !features.shared" }, ++ { "type": "psqlEnv", "libs": "-lpq", "condition": "config.win32 && features.shared" }, + { "type": "psqlEnv", "libs": "-lpq", "condition": "!config.win32" } + ] + }, +-- +2.12.2 + diff --git a/0014-Use-.dll.a-as-import-lib-extension.patch b/0014-Use-.dll.a-as-import-lib-extension.patch deleted file mode 100644 index 3b06e86..0000000 --- a/0014-Use-.dll.a-as-import-lib-extension.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 48556ed9337349ff404de27172b6a71ae80d348d Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:44:36 +0100 -Subject: [PATCH 14/19] Use *.dll.a as import lib extension - -Change-Id: I4fe440c7b64ee2f23aec82c6f082749aa608fac6 ---- - mkspecs/features/create_cmake.prf | 4 ++-- - qmake/generators/win32/winmakefile.cpp | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf -index 4adacf6762..c6a4731cba 100644 ---- a/mkspecs/features/create_cmake.prf -+++ b/mkspecs/features/create_cmake.prf -@@ -236,8 +236,8 @@ mac { - CMAKE_PRL_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.prl - CMAKE_PRL_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.prl - } else { -- CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.a -- CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a -+ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.dll.a -+ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.dll.a - } - } else { - CMAKE_WINMAIN_FILE_LOCATION_DEBUG = qtmain$${QT_LIBINFIX}d.lib -diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp -index 543e905051..50ef0da31a 100644 ---- a/qmake/generators/win32/winmakefile.cpp -+++ b/qmake/generators/win32/winmakefile.cpp -@@ -230,7 +230,7 @@ void Win32MakefileGenerator::fixTargetExt() - } else if (project->isActiveConfig("shared")) { - project->values("LIB_TARGET").prepend(project->first("QMAKE_PREFIX_STATICLIB") - + project->first("TARGET") + project->first("TARGET_VERSION_EXT") -- + '.' + project->first("QMAKE_EXTENSION_STATICLIB")); -+ + ".dll." + project->first("QMAKE_EXTENSION_STATICLIB")); - project->values("TARGET_EXT").append(project->first("TARGET_VERSION_EXT") + "." - + project->first("QMAKE_EXTENSION_SHLIB")); - project->values("TARGET").first() = project->first("QMAKE_PREFIX_SHLIB") + project->first("TARGET"); --- -2.11.0 - diff --git a/0015-Merge-shared-and-static-library-trees.patch b/0015-Merge-shared-and-static-library-trees.patch deleted file mode 100644 index 01c0059..0000000 --- a/0015-Merge-shared-and-static-library-trees.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 1c26014d1c46fd874ab4d009555dfa50aa551b51 Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 16:56:23 +0100 -Subject: [PATCH 15/19] Merge shared and static library trees - -Change-Id: Ic44d496f0e703750488e672e8121f5261f8a7767 ---- - configure | 6 ++++++ - mkspecs/features/default_post.prf | 5 +++++ - mkspecs/features/qt.prf | 12 ++++++++++++ - 3 files changed, 23 insertions(+) - -diff --git a/configure b/configure -index 29a9abe259..8a65d7ee5c 100755 ---- a/configure -+++ b/configure -@@ -7187,6 +7187,12 @@ host_build { - } - QT_CONFIG += $QT_CONFIG - -+contains(CONFIG, static) { -+ CONFIG -= shared -+ QT_CONFIG += static jpeg gif -+ QT_CONFIG -= shared -+} -+ - #versioning - QT_VERSION = $QT_VERSION - QT_MAJOR_VERSION = $QT_MAJOR_VERSION -diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf -index e7e9a5bd87..a8289ce1fc 100644 ---- a/mkspecs/features/default_post.prf -+++ b/mkspecs/features/default_post.prf -@@ -120,3 +120,8 @@ c++11|c++14|c++1z { - - QMAKE_INCDIR += $$QMAKE_INCDIR_POST - QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST -+ -+win32:contains(CONFIG, static) { -+ DEFINES += QT_STATIC -+ QMAKE_LFLAGS += -static -+} -diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf -index 08d99c1276..8fc95035a1 100644 ---- a/mkspecs/features/qt.prf -+++ b/mkspecs/features/qt.prf -@@ -150,6 +150,18 @@ for(ever) { - !isEmpty(MODULE_WINRT_CAPABILITIES_DEVICE): \ - WINRT_MANIFEST.capabilities_device_default += $$MODULE_WINRT_CAPABILITIES_DEVICE - } -+ -+ win32:CONFIG(static) { -+ isEqual(MODULE_NAME, QtCore) { -+ LIBS$$var_sfx += $$QMAKE_LIBS_CORE -+ } else:isEqual(MODULE_NAME, QtGui) { -+ LIBS$$var_sfx += $$QMAKE_LIBS_GUI -+ } else:isEqual(MODULE_NAME, QtNetwork) { -+ LIBS$$var_sfx += $$QMAKE_LIBS_NETWORK -+ } else:isEqual(MODULE_NAME, QtOpenGL) { -+ LIBS$$var_sfx += $$QMAKE_LIBS_OPENGL -+ } -+ } - } - !isEmpty(BAD_QT):error("Unknown module(s) in QT$$var_sfx: $$replace(BAD_QT, _private$, -private)") - --- -2.11.0 - diff --git a/0015-Rename-qtmain-to-qt5main.patch b/0015-Rename-qtmain-to-qt5main.patch new file mode 100644 index 0000000..1c56e39 --- /dev/null +++ b/0015-Rename-qtmain-to-qt5main.patch @@ -0,0 +1,56 @@ +From e81d865a144c5c12ea1b93922a8c27f676aad531 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 14:25:40 +0200 +Subject: [PATCH 15/30] Rename qtmain to qt5main + +Prevents conflict with mingw-w64-qt4 package +--- + mkspecs/features/create_cmake.prf | 4 ++-- + mkspecs/features/win32/windows.prf | 2 +- + src/winmain/winmain.pro | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf +index 1099e14b17..ed9b82fba9 100644 +--- a/mkspecs/features/create_cmake.prf ++++ b/mkspecs/features/create_cmake.prf +@@ -225,8 +225,8 @@ mac { + CMAKE_LIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.dll + + mingw { +- CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqtmain$${QT_LIBINFIX}d.a +- CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqtmain$${QT_LIBINFIX}.a ++ CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqt5main$${QT_LIBINFIX}.a ++ CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqt5main$${QT_LIBINFIX}.a + + !isEmpty(CMAKE_STATIC_TYPE) { + CMAKE_STATIC_WINDOWS_BUILD = "true" +diff --git a/mkspecs/features/win32/windows.prf b/mkspecs/features/win32/windows.prf +index ecb167bf18..7c9368c3b3 100644 +--- a/mkspecs/features/win32/windows.prf ++++ b/mkspecs/features/win32/windows.prf +@@ -5,7 +5,7 @@ contains(TEMPLATE, ".*app") { + mingw:DEFINES += QT_NEEDS_QMAIN + + qt:for(entryLib, $$list($$unique(QMAKE_LIBS_QT_ENTRY))) { +- isEqual(entryLib, -lqtmain) { ++ isEqual(entryLib, -lqt5main): { + !contains(QMAKE_DEFAULT_LIBDIRS, $$QT.core.libs): \ + QMAKE_LIBS += -L$$QT.core.libs + CONFIG(debug, debug|release): QMAKE_LIBS += $${entryLib}$${QT_LIBINFIX}d +diff --git a/src/winmain/winmain.pro b/src/winmain/winmain.pro +index 4140ae48de..9ae73db74b 100644 +--- a/src/winmain/winmain.pro ++++ b/src/winmain/winmain.pro +@@ -2,7 +2,7 @@ + !win32:error("$$_FILE_ is intended only for Windows!") + + TEMPLATE = lib +-TARGET = qtmain ++TARGET = qt5main + DESTDIR = $$QT.core.libs + + CONFIG += static +-- +2.12.2 + diff --git a/0016-Allow-usage-of-static-version-with-CMake.patch b/0016-Allow-usage-of-static-version-with-CMake.patch deleted file mode 100644 index d5714fc..0000000 --- a/0016-Allow-usage-of-static-version-with-CMake.patch +++ /dev/null @@ -1,966 +0,0 @@ -From a55cc3fc3677589e423722afa28237ca9379f7f5 Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 17:00:27 +0100 -Subject: [PATCH 16/19] Allow usage of static version with CMake - -Change-Id: I321720e4e62eaa4305347667ea090feae2c82196 ---- - mkspecs/features/create_cmake.prf | 83 +++-- - .../features/data/cmake/Qt5BasicConfig.cmake.in | 338 +++++++++++++++------ - .../features/data/cmake/Qt5PluginTarget.cmake.in | 30 +- - qmake/generators/makefile.cpp | 7 + - src/corelib/Qt5CoreConfigExtras.cmake.in | 37 ++- - src/gui/Qt5GuiConfigExtras.cmake.in | 12 +- - 6 files changed, 357 insertions(+), 150 deletions(-) - -diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf -index c6a4731cba..21fb83a395 100644 ---- a/mkspecs/features/create_cmake.prf -+++ b/mkspecs/features/create_cmake.prf -@@ -38,7 +38,8 @@ split_incpath { - $$QT_MODULE_INCLUDE_BASE/Qt$${CMAKE_MODULE_NAME}/$$eval(QT.$${MODULE}.VERSION)/Qt$${CMAKE_MODULE_NAME}) - - cmake_extra_source_includes.input = $$PWD/data/cmake/ExtraSourceIncludes.cmake.in -- cmake_extra_source_includes.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/ExtraSourceIncludes.cmake -+ isEmpty(CMAKE_STATIC_TYPE): cmake_extra_source_includes.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/ExtraSourceIncludes.cmake -+ else: cmake_extra_source_includes.output = $$CMAKE_OUT_DIR/StaticQt5$${CMAKE_MODULE_NAME}/ExtraSourceIncludes.cmake - - !build_pass:QMAKE_SUBSTITUTES += \ - cmake_extra_source_includes -@@ -90,6 +91,8 @@ win32:!wince:!static:!staticlib { - } - - static|staticlib:CMAKE_STATIC_TYPE = true -+static|staticlib:VAR_PREFIX = "Static" -+else:VAR_PREFIX = "" - - CMAKE_DEBUG_TYPE = - CMAKE_RELEASE_TYPE = -@@ -135,17 +138,19 @@ contains(CONFIG, plugin) { - CMAKE_PLUGIN_NAME = $$PLUGIN_CLASS_NAME - - win32 { -- isEmpty(CMAKE_STATIC_TYPE) { -+ mingw { - CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.dll - CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.dll -- } else:mingw { -- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}.a -- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}d.a -+ CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/lib$${TARGET}.a -+ CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/lib$${TARGET}d.a - } else { # MSVC static - CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.lib - CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.lib -+ CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/$${TARGET}.lib -+ CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/$${TARGET}d.lib - } - } else { -+ # this branch is broken by the patch, only apply when building for Windows - mac { - isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .dylib - else: CMAKE_PlUGIN_EXT = .a -@@ -161,13 +166,15 @@ contains(CONFIG, plugin) { - } - } - cmake_target_file.input = $$PWD/data/cmake/Qt5PluginTarget.cmake.in -- cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake -+ isEmpty(CMAKE_STATIC_TYPE): cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake -+ else: cmake_target_file.output = $$CMAKE_OUT_DIR/StaticQt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake - - !build_pass:QMAKE_SUBSTITUTES += \ - cmake_target_file - - cmake_qt5_plugin_file.files = $$cmake_target_file.output -- cmake_qt5_plugin_file.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME} -+ isEmpty(CMAKE_STATIC_TYPE): cmake_qt5_plugin_file.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME} -+ else: cmake_qt5_plugin_file.path = $$[QT_INSTALL_LIBS]/cmake/StaticQt5$${CMAKE_MODULE_NAME} - INSTALLS += cmake_qt5_plugin_file - - return() -@@ -180,6 +187,8 @@ mod_deps = - lib_deps = - aux_mod_deps = - aux_lib_deps = -+aux_compile_defs_static = QT_STATIC QT_DESIGNER_STATIC -+contains(QT_CONFIG, angle): aux_compile_defs += QT_OPENGL_ES_2_ANGLE_STATIC - # Until CMake 3.0 is the minimum requirement of Qt 5, we need to filter - # out header-only modules from dependencies. CMake 3.0 provides INTERFACE - # libraries which are equivalent to header-only modules. -@@ -188,19 +197,26 @@ for (dep, sorted_deps) { - !contains(QT.$${dep}.module_config, no_link) { - mod_deps += $$cdep - lib_deps += Qt5::$$cdep -+ lib_deps_static += StaticQt5::$$cdep - } else { - aux_mod_deps += $$cdep - aux_lib_deps += Qt5::$$cdep -+ aux_lib_deps_static += StaticQt5::$$cdep - } - } - CMAKE_MODULE_DEPS = $$join(mod_deps, ";") - CMAKE_QT5_MODULE_DEPS = $$join(lib_deps, ";") -+CMAKE_QT5_MODULE_DEPS_STATIC = $$join(lib_deps_static, ";") - CMAKE_INTERFACE_MODULE_DEPS = $$join(aux_mod_deps, ";") - CMAKE_INTERFACE_QT5_MODULE_DEPS = $$join(aux_lib_deps, ";") -+CMAKE_INTERFACE_QT5_MODULE_DEPS_STATIC = $$join(aux_lib_deps_static, ";") -+CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC = $$join(aux_compile_defs_static, ";") -+ - - CMAKE_QT_STEM = Qt$$QT_MAJOR_VERSION$${CMAKE_MODULE_NAME}$${QT_LIBINFIX} - - mac { -+ # this branch is broken by the patch, only apply when building for Windows - !isEmpty(CMAKE_STATIC_TYPE) { - CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}_debug.a - CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a -@@ -228,34 +244,32 @@ mac { - CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqt5main$${QT_LIBINFIX}.a - CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqt5main$${QT_LIBINFIX}.a - -- !isEmpty(CMAKE_STATIC_TYPE) { -- CMAKE_STATIC_WINDOWS_BUILD = "true" -- CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.a -- CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a -+ isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = dll.a -+ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.$${QMAKE_EXTENSION_IMPORTLIB} -+ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.$${QMAKE_EXTENSION_IMPORTLIB} -+ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl -+ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl - -- CMAKE_PRL_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.prl -- CMAKE_PRL_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.prl -- } else { -- CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.dll.a -- CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.dll.a -- } -+ CMAKE_IMPLIB_FILE_LOCATION_DEBUG_STATIC = lib$${CMAKE_QT_STEM}d.a -+ CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC = lib$${CMAKE_QT_STEM}.a -+ CMAKE_PRL_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d.static.prl -+ CMAKE_PRL_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}.static.prl - } else { - CMAKE_WINMAIN_FILE_LOCATION_DEBUG = qtmain$${QT_LIBINFIX}d.lib - CMAKE_WINMAIN_FILE_LOCATION_RELEASE = qtmain$${QT_LIBINFIX}.lib - -- !isEmpty(CMAKE_STATIC_TYPE) { -- CMAKE_STATIC_WINDOWS_BUILD = "true" -- CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib -- CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib -+ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib -+ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib -+ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl -+ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl - -- CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl -- CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl -- } else { -- CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib -- CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib -- } -+ CMAKE_IMPLIB_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d.lib -+ CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}.lib -+ CMAKE_PRL_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d.static.prl -+ CMAKE_PRL_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}.static.prl - } - } else { -+ # this branch is broken by the patch, only apply when building for Windows - !isEmpty(CMAKE_STATIC_TYPE) { - CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.a - CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a -@@ -275,12 +289,14 @@ mac { - INSTALLS += cmake_qt5_module_files - - cmake_config_file.input = $$PWD/data/cmake/Qt5BasicConfig.cmake.in --cmake_config_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}Config.cmake -+isEmpty(CMAKE_STATIC_TYPE): cmake_config_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}Config.cmake -+else: cmake_config_file.output = $$CMAKE_OUT_DIR/StaticQt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}Config.cmake - - CMAKE_PACKAGE_VERSION = $$eval(QT.$${MODULE}.VERSION) - - cmake_config_version_file.input = $$PWD/data/cmake/Qt5ConfigVersion.cmake.in --cmake_config_version_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}ConfigVersion.cmake -+isEmpty(CMAKE_STATIC_TYPE): cmake_config_version_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}ConfigVersion.cmake -+else: cmake_config_version_file.output = $$CMAKE_OUT_DIR/StaticQt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}ConfigVersion.cmake - - !build_pass:QMAKE_SUBSTITUTES += \ - cmake_config_file \ -@@ -294,7 +310,8 @@ cmake_extras_file.input = $$_PRO_FILE_PWD_/Qt5$${CMAKE_MODULE_NAME}ConfigExtras. - exists($$cmake_extras_file.input) { - - CMAKE_MODULE_EXTRAS = "true" -- cmake_extras_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake -+ isEmpty(CMAKE_STATIC_TYPE): cmake_extras_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake -+ else: cmake_extras_file.output = $$CMAKE_OUT_DIR/StaticQt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake - - !build_pass:QMAKE_SUBSTITUTES += cmake_extras_file - -@@ -306,7 +323,8 @@ cmake_macros_file.input = $$_PRO_FILE_PWD_/Qt5$${CMAKE_MODULE_NAME}Macros.cmake - exists($$cmake_macros_file.input) { - CMAKE_MODULE_MACROS = "true" - -- cmake_macros_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}Macros.cmake -+ isEmpty(CMAKE_STATIC_TYPE): cmake_macros_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}Macros.cmake -+ else: cmake_macros_file.output = $$CMAKE_OUT_DIR/StaticQt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}Macros.cmake - cmake_macros_file.CONFIG = verbatim - - !build_pass:QMAKE_SUBSTITUTES += cmake_macros_file -@@ -314,7 +332,8 @@ exists($$cmake_macros_file.input) { - cmake_qt5_module_files.files += $$cmake_macros_file.output - } - --cmake_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME} -+isEmpty(CMAKE_STATIC_TYPE): cmake_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME} -+else: cmake_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/StaticQt5$${CMAKE_MODULE_NAME} - - # We are generating cmake files. Most developers of Qt are not aware of cmake, - # so we require automatic tests to be available. The only module which should -diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in -index d2358cae4b..89575efd6f 100644 ---- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in -+++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in -@@ -35,15 +35,18 @@ set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\") - - !!IF !equals(TEMPLATE, aux) - # For backwards compatibility only. Use Qt5$${CMAKE_MODULE_NAME}_VERSION instead. --set(Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING "$$eval(QT.$${MODULE}.MAJOR_VERSION).$$eval(QT.$${MODULE}.MINOR_VERSION).$$eval(QT.$${MODULE}.PATCH_VERSION)") -- --set(Qt5$${CMAKE_MODULE_NAME}_LIBRARIES Qt5::$${CMAKE_MODULE_NAME}) -+set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING "$$eval(QT.$${MODULE}.MAJOR_VERSION).$$eval(QT.$${MODULE}.MINOR_VERSION).$$eval(QT.$${MODULE}.PATCH_VERSION)") -+set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_LIBRARIES $${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME}) - !!ENDIF // TEMPLATE != aux - --macro(_qt5_$${CMAKE_MODULE_NAME}_check_file_exists file) -- if(NOT EXISTS \"${file}\" ) -- message(FATAL_ERROR \"The imported target \\\"Qt5::$${CMAKE_MODULE_NAME}\\\" references the file -- \\\"${file}\\\" -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+macro(_qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static FILE) -+!!ELSE -+macro(_qt5_$${CMAKE_MODULE_NAME}_check_file_exists FILE) -+!!ENDIF -+ if(NOT EXISTS \"${FILE}\") -+ message(FATAL_ERROR \"The imported target \\\"$${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME}\\\" references the file -+ \\\"${FILE}\\\" - but this file does not exist. Possible reasons include: - * The file was deleted, renamed, or moved to another location. - * An install or uninstall procedure did not complete successfully. -@@ -54,44 +57,91 @@ but not all the files it references. - endif() - endmacro() - -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+# ensure also regular/dynamic macro exists because it might be used in some extra config -+if(NOT COMMAND _qt5_$${CMAKE_MODULE_NAME}_check_file_exists) -+ macro(_qt5_$${CMAKE_MODULE_NAME}_check_file_exists FILE) -+ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static("${FILE}") -+ endmacro() -+endif() -+!!ENDIF -+ - !!IF !equals(TEMPLATE, aux) --macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATION IMPLIB_LOCATION) -- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+macro(_populate_$${CMAKE_MODULE_NAME}_target_properties_static TARGET_NAME TARGET_CONFIG LIB_LOCATION IMPLIB_LOCATION) -+!!ELSE -+macro(_populate_$${CMAKE_MODULE_NAME}_target_properties TARGET_NAME TARGET_CONFIG LIB_LOCATION IMPLIB_LOCATION) -+!!ENDIF -+ set_property(TARGET ${TARGET_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${TARGET_CONFIG}) - - !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE) -+ -+!!IF !isEmpty(CMAKE_WINDOWS_BUILD) -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib/${LIB_LOCATION}\") -+!!ELSE -+ set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/bin/${LIB_LOCATION}\") -+!!ENDIF -+!!ELSE - set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\") -+!!ENDIF -+ -+!!ELSE -+ -+!!IF !isEmpty(CMAKE_WINDOWS_BUILD) -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ set(imported_location \"lib/${LIB_LOCATION}\") -+!!ELSE -+ set(imported_location \"bin/${LIB_LOCATION}\") -+!!ENDIF - !!ELSE - set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\") - !!ENDIF -+ -+!!ENDIF -+ -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static(${imported_location}) -+!!ELSE - _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) -- set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES -- \"INTERFACE_LINK_LIBRARIES\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\" -- \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} -+!!ENDIF -+ -+ if (_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES) -+ set(_list_sep \";\") -+ endif() -+ set_target_properties(${TARGET_NAME} PROPERTIES -+ \"INTERFACE_LINK_LIBRARIES_${TARGET_CONFIG}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_list_sep}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${TARGET_CONFIG}_LIB_DEPENDENCIES}\" -+ \"IMPORTED_LOCATION_${TARGET_CONFIG}\" ${imported_location} - !!IF !isEmpty(CMAKE_LIB_SONAME) -- \"IMPORTED_SONAME_${Configuration}\" \"$${CMAKE_LIB_SONAME}\" -+ \"IMPORTED_SONAME_${TARGET_CONFIG}\" \"$${CMAKE_LIB_SONAME}\" - !!ENDIF - # For backward compatibility with CMake < 2.8.12 -- \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\" -+ \"IMPORTED_LINK_INTERFACE_LIBRARIES_${TARGET_CONFIG}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_list_sep}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${TARGET_CONFIG}_LIB_DEPENDENCIES}\" - ) - - !!IF !isEmpty(CMAKE_WINDOWS_BUILD) - !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - set(imported_implib \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") - !!ELSE -- set(imported_implib \"IMPORTED_IMPLIB_${Configuration}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") -+ set(imported_implib \"IMPORTED_IMPLIB_${TARGET_CONFIG}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") - !!ENDIF -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static(${imported_implib}) -+!!ELSE - _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_implib}) -+!!ENDIF - if(NOT \"${IMPLIB_LOCATION}\" STREQUAL \"\") -- set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES -- \"IMPORTED_IMPLIB_${Configuration}\" ${imported_implib} -+ set_target_properties($${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME} PROPERTIES -+ \"IMPORTED_IMPLIB_${TARGET_CONFIG}\" ${imported_implib} - ) - endif() - !!ENDIF - endmacro() - !!ENDIF - --if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) -+set(TARGET_NAME $${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME}) - -+if(NOT TARGET ${TARGET_NAME}) - !!IF !no_module_headers - !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) - set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS -@@ -99,33 +149,33 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Headers\" - ) - !!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES) -- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS -+ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/\" - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\" - ) - !!ELSE -- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") -+ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") - !!ENDIF - !!ELSE - !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE) - set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\") - !!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES) -- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS -+ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\" - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\" - ) - !!ELSE -- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") -+ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") - !!ENDIF - !!ELSE - set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR\" \"$${CMAKE_INCLUDE_DIR}Qt$${CMAKE_MODULE_NAME}\") - !!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES) -- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS -+ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS - \"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\" - \"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\" - ) - !!ELSE -- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") -+ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") - !!ENDIF - !!ENDIF - !!ENDIF -@@ -134,11 +184,15 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) - !!ENDIF - !!ELSE - set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"\") -- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") -+ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") - !!ENDIF - - foreach(_dir ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static(${_dir}) -+!!ELSE - _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${_dir}) -+!!ENDIF - endforeach() - - !!IF isEmpty(CMAKE_BUILD_IS_FRAMEWORK) -@@ -147,16 +201,20 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) - list(FIND Qt5$${CMAKE_MODULE_NAME}_FIND_COMPONENTS Private _check_private) - if (NOT _check_private STREQUAL -1) - foreach(_dir ${Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS}) -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static(${_dir}) -+!!ELSE - _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${_dir}) -+!!ENDIF - endforeach() - endif() - !!ENDIF - - !!IF !equals(TEMPLATE, aux) -- set(Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) -+ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) - -- set(Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS -D$${MODULE_DEFINE}) -- set(Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS $${MODULE_DEFINE}) -+ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS -D$${MODULE_DEFINE}) -+ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS $${MODULE_DEFINE}) - !!ENDIF // TEMPLATE != aux - set(_Qt5$${CMAKE_MODULE_NAME}_MODULE_DEPENDENCIES \"$${CMAKE_MODULE_DEPS}\") - -@@ -167,7 +225,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) - !!ENDIF - - set(_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED) -- if (Qt5$${CMAKE_MODULE_NAME}_FIND_REQUIRED) -+ if ($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_FIND_REQUIRED) - set(_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED REQUIRED) - endif() - set(_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_QUIET) -@@ -175,17 +233,17 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) - set(_Qt5$${CMAKE_MODULE_NAME}_DEPENDENCIES_FIND_QUIET QUIET) - endif() - set(_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT) -- if (Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT) -+ if ($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT) - set(_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT EXACT) - endif() - - !!IF !equals(TEMPLATE, aux) -- set(Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS \"\") -+ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS \"\") - !!ENDIF // TEMPLATE != aux - - foreach(_module_dep ${_Qt5$${CMAKE_MODULE_NAME}_MODULE_DEPENDENCIES}) -- if (NOT Qt5${_module_dep}_FOUND) -- find_package(Qt5${_module_dep} -+ if (NOT $${VAR_PREFIX}Qt5${_module_dep}_FOUND) -+ find_package($${VAR_PREFIX}Qt5${_module_dep} - $$VERSION ${_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT} - ${_Qt5$${CMAKE_MODULE_NAME}_DEPENDENCIES_FIND_QUIET} - ${_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED} -@@ -193,28 +251,32 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) - ) - endif() - -- if (NOT Qt5${_module_dep}_FOUND) -- set(Qt5$${CMAKE_MODULE_NAME}_FOUND False) -+ if (NOT $${VAR_PREFIX}Qt5${_module_dep}_FOUND) -+ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_FOUND False) - return() - endif() - - !!IF !equals(TEMPLATE, aux) -- list(APPEND Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"${Qt5${_module_dep}_INCLUDE_DIRS}\") -- list(APPEND Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"${Qt5${_module_dep}_PRIVATE_INCLUDE_DIRS}\") -- list(APPEND Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS ${Qt5${_module_dep}_DEFINITIONS}) -- list(APPEND Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS ${Qt5${_module_dep}_COMPILE_DEFINITIONS}) -- list(APPEND Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS ${Qt5${_module_dep}_EXECUTABLE_COMPILE_FLAGS}) -+ list(APPEND $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"${Qt5${_module_dep}_INCLUDE_DIRS}\") -+ list(APPEND $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"${Qt5${_module_dep}_PRIVATE_INCLUDE_DIRS}\") -+ list(APPEND $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS ${Qt5${_module_dep}_DEFINITIONS}) -+ list(APPEND $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS ${Qt5${_module_dep}_COMPILE_DEFINITIONS}) -+ list(APPEND $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS ${Qt5${_module_dep}_EXECUTABLE_COMPILE_FLAGS}) - !!ENDIF // TEMPLATE != aux - endforeach() - !!IF !equals(TEMPLATE, aux) -- list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS) -- list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS) -- list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS) -- list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS) -- list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS) -+ list(REMOVE_DUPLICATES $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS) -+ list(REMOVE_DUPLICATES $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS) -+ list(REMOVE_DUPLICATES $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS) -+ list(REMOVE_DUPLICATES $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS) -+ list(REMOVE_DUPLICATES $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS) - !!ENDIF // TEMPLATE != aux - -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ set(_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES \"$${CMAKE_QT5_MODULE_DEPS_STATIC}\") -+!!ELSE - set(_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES \"$${CMAKE_QT5_MODULE_DEPS}\") -+!!ENDIF - - !!IF !isEmpty(CMAKE_INTERFACE_QT5_MODULE_DEPS) - if (NOT CMAKE_VERSION VERSION_LESS 3.0.0) -@@ -223,81 +285,179 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) - !!ENDIF - - !!IF !isEmpty(CMAKE_STATIC_TYPE) -- add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) -- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") -+ add_library(StaticQt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) -+ set_property(TARGET StaticQt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") -+ -+ macro(_process_prl_file PRL_FILE_LOCATION CONFIGURATION) -+ if (EXISTS \"${PRL_FILE_LOCATION}\") -+ file(STRINGS \"${PRL_FILE_LOCATION}\" prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE\") -+ string(REGEX REPLACE \"QMAKE_PRL_LIBS_FOR_CMAKE *= *([^\\n]*)\" \"\\\\1\" static_depends ${prl_strings}) -+ string(REGEX REPLACE \"\\\\$\\\\$\\\\[QT_INSTALL_LIBS\\\\]\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib\" static_depends \"${static_depends}\") -+ if (_Qt5$${CMAKE_MODULE_NAME}_STATIC_${CONFIGURATION}_LIB_DEPENDENCIES) -+ set(_list_sep \";\") -+ endif() -+ set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${CONFIGURATION}_LIB_DEPENDENCIES \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${CONFIGURATION}_LIB_DEPENDENCIES}${_list_sep}${static_depends}\") -+ endif() -+ endmacro() -+ -+ macro(_process_plugin_prl_file PRL_FILE_LOCATION CONFIGURATION LIB_DIRECTORY LIB_LOCATION) -+ # First add the (static) plugin itself ... -+ if (_Qt5$${CMAKE_MODULE_NAME}_STATIC_${CONFIGURATION}_LIB_DEPENDENCIES) -+ set(_list_sep \";\") -+ endif() -+ set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${CONFIGURATION}_LIB_DEPENDENCIES \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${CONFIGURATION}_LIB_DEPENDENCIES}${_list_sep}${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/${LIB_DIRECTORY}/${LIB_LOCATION}\") -+ # .. then its dependencies. -+ _process_prl_file(${PRL_FILE_LOCATION} ${CONFIGURATION}) -+ endmacro() -+ -+!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) -+ _process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG_STATIC}\" DEBUG) -+!!ELSE -+ _process_prl_file(\"$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG_STATIC}\" DEBUG) -+!!ENDIF -+!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) -+ _process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE_STATIC}\" RELEASE) - !!ELSE -+ _process_prl_file(\"$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE_STATIC}\" RELEASE) -+!!ENDIF -+ -+!!ELSE // !isEmpty(CMAKE_STATIC_TYPE) - !!IF equals(TEMPLATE, aux) - add_library(Qt5::$${CMAKE_MODULE_NAME} INTERFACE IMPORTED) - !!ELSE - add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) - !!ENDIF - !!ENDIF -+ - !!IF !equals(TEMPLATE, aux) - !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) -- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) -+ set_property(TARGET $${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) - !!ENDIF - !!ENDIF // TEMPLATE != aux - -- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY -+!!IF !equals(TEMPLATE, aux) -+!!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) -+ set_property(TARGET $${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) -+!!ENDIF -+!!ENDIF // TEMPLATE != aux -+ -+ set_property(TARGET $${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME} PROPERTY - INTERFACE_INCLUDE_DIRECTORIES ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) -+ set(interface_compile_definitions $${MODULE_DEFINE}) -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ set_property(TARGET StaticQt5::$${CMAKE_MODULE_NAME} PROPERTY -+ INTERFACE_COMPILE_DEFINITIONS $${CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC} $${MODULE_DEFINE}) -+ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/StaticQt5$${CMAKE_MODULE_NAME}_*.cmake\") -+!!ELSE - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY -- INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) -+ INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) -+ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") -+!!ENDIF -+ -+ unset(pluginTargets) -+ if(pluginTargetsMaybe) -+ foreach(pluginTarget ${pluginTargetsMaybe}) -+ file(STRINGS ${pluginTarget} matched REGEX $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PLUGINS) -+ if(matched) -+ list(APPEND pluginTargets ${pluginTarget}) -+ endif() -+ endforeach() -+ endif() -+ -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties_static TARGET_NAME PLUGIN_TARGET_NAME PLUGIN_NAME CONFIG PLUGIN_LOCATION) -+!!ELSE -+ macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties TARGET_NAME PLUGIN_TARGET_NAME PLUGIN_NAME CONFIG PLUGIN_LOCATION) -+!!ENDIF -+ set_property(TARGET ${PLUGIN_TARGET_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${CONFIG}) -+ -+!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE) -+ set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") -+!!ELSE -+ set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") -+!!ENDIF -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static(${imported_location}) -+!!ELSE -+ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) -+!!ENDIF -+ set_target_properties(${PLUGIN_TARGET_NAME} PROPERTIES -+ \"IMPORTED_LOCATION_${CONFIG}\" ${imported_location} -+ ) -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ set_property(TARGET ${TARGET_NAME} APPEND PROPERTY STATIC_PLUGINS ${PLUGIN_NAME}) -+ get_filename_component(_PLUGIN_DIR ${PLUGIN_LOCATION} PATH) -+ get_filename_component(_PLUGIN_DIR_NAME ${_PLUGIN_DIR} NAME) -+ get_filename_component(_PLUGIN_NAME ${PLUGIN_LOCATION} NAME) -+ string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib/qt/plugins/${_PLUGIN_DIR_NAME}/\\\\1.static.prl\" PLUGIN_PRL_FILE_LOCATION ${_PLUGIN_NAME}) -+ _process_plugin_prl_file(${PLUGIN_PRL_FILE_LOCATION} ${CONFIG} \"lib/qt/plugins\" ${PLUGIN_LOCATION}) -+!!ENDIF -+ -+ endmacro() -+ -+ if(pluginTargets) -+ foreach(pluginTarget ${pluginTargets}) -+ include(${pluginTarget}) -+ endforeach() -+ endif() - - !!IF !equals(TEMPLATE, aux) - !!IF !isEmpty(CMAKE_RELEASE_TYPE) --!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) -- _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" ) -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ _populate_$${CMAKE_MODULE_NAME}_target_properties_static(StaticQt5::$${CMAKE_MODULE_NAME} RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC}\" \"\" ) - !!ELSE -- _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) --!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD -+ _populate_$${CMAKE_MODULE_NAME}_target_properties(Qt5::$${CMAKE_MODULE_NAME} RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) -+!!ENDIF // CMAKE_STATIC_TYPE -+ - - !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD) - !!IF isEmpty(CMAKE_DEBUG_TYPE) --!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) -+!!IF !isEmpty(CMAKE_STATIC_TYPE) - !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) -- if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) -+ if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG_STATIC}\" ) - !!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE - if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) - !!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE -- _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" ) --!!ELSE // CMAKE_STATIC_WINDOWS_BUILD -+ _populate_$${CMAKE_MODULE_NAME}_target_properties_static(StaticQt5::$${CMAKE_MODULE_NAME} DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG_STATIC}\" \"\" ) -+ endif() -+!!ELSE // CMAKE_STATIC_TYPE - if (EXISTS - !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE) - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" - !!ELSE - \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" - !!ENDIF -- AND EXISTS -+ AND EXISTS - !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) - !!ELSE - \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) - !!ENDIF -- _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) --!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD -+ _populate_$${CMAKE_MODULE_NAME}_target_properties(Qt5::$${CMAKE_MODULE_NAME} DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) - endif() -+!!ENDIF // CMAKE_STATIC_TYPE - !!ENDIF // CMAKE_DEBUG_TYPE - !!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD -- - !!ENDIF // CMAKE_RELEASE_TYPE - - !!IF !isEmpty(CMAKE_DEBUG_TYPE) --!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) -- _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" ) -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ _populate_$${CMAKE_MODULE_NAME}_target_properties_static(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" ) - !!ELSE - _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) --!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD -+!!ENDIF // CMAKE_STATIC_TYPE - - !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD) - !!IF isEmpty(CMAKE_RELEASE_TYPE) --!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) -+ -+!!IF !isEmpty(CMAKE_STATIC_TYPE) - !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) -- if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) -+ if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC}\" ) - !!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE -- if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) -+ if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC}\" ) - !!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE -- _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" ) --!!ELSE // CMAKE_STATIC_WINDOWS_BUILD -+ _populate_$${CMAKE_MODULE_NAME}_target_properties_static(StaticQt5::$${CMAKE_MODULE_NAME} RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC}\" \"\" ) -+!!ELSE - if (EXISTS - !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE) - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" -@@ -310,9 +470,11 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) - !!ELSE - \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) - !!ENDIF -- _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) --!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD -+ _populate_$${CMAKE_MODULE_NAME}_target_properties(Qt5::$${CMAKE_MODULE_NAME} RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) - endif() -+!!ENDIF // CMAKE_STATIC_TYPE -+ -+ - !!ENDIF // CMAKE_RELEASE_TYPE - !!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD - -@@ -323,37 +485,17 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) - ) - !!ENDIF // TEMPLATE != aux - -- file(GLOB pluginTargets \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*Plugin.cmake\") -- -- macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) -- set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) -- --!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE) -- set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") --!!ELSE -- set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") --!!ENDIF -- _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) -- set_target_properties(Qt5::${Plugin} PROPERTIES -- \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} -- ) -- endmacro() -- -- if (pluginTargets) -- foreach(pluginTarget ${pluginTargets}) -- include(${pluginTarget}) -- endforeach() -- endif() -- -- - !!IF !isEmpty(CMAKE_MODULE_EXTRAS) -- include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") -+ include(\"${CMAKE_CURRENT_LIST_DIR}/$${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") - !!ENDIF -- - !!IF !isEmpty(CMAKE_MODULE_MACROS) -- include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}Macros.cmake\") -+ include(\"${CMAKE_CURRENT_LIST_DIR}/$${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}Macros.cmake\") - !!ENDIF - -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+_qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static(\"${CMAKE_CURRENT_LIST_DIR}/StaticQt5$${CMAKE_MODULE_NAME}ConfigVersion.cmake\") -+!!ELSE - _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigVersion.cmake\") -+!!ENDIF - - endif() -diff --git a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in -index 5baf0fdb10..54345e4117 100644 ---- a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in -+++ b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in -@@ -1,11 +1,31 @@ -- --add_library(Qt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) -+# Some Qt modules also load plugin target in extra config, so check whether the target already exists -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+if(NOT TARGET StaticQt5::$$CMAKE_PLUGIN_NAME) -+ add_library(StaticQt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) -+!!ELSE -+if(NOT TARGET Qt5::$$CMAKE_PLUGIN_NAME) -+ add_library(Qt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) -+!!ENDIF - - !!IF !isEmpty(CMAKE_RELEASE_TYPE) --_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\") -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ _populate_$${CMAKE_MODULE_NAME}_plugin_properties_static(StaticQt5::$$CMAKE_MODULE_NAME StaticQt5::$$CMAKE_PLUGIN_NAME $$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE_STATIC}\") -+!!ELSE -+ _populate_$${CMAKE_MODULE_NAME}_plugin_properties(Qt5::$$CMAKE_MODULE_NAME Qt5::$$CMAKE_PLUGIN_NAME $$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\") -+!!ENDIF - !!ENDIF - !!IF !isEmpty(CMAKE_DEBUG_TYPE) --_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\") -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ _populate_$${CMAKE_MODULE_NAME}_plugin_properties_static(StaticQt5::$$CMAKE_MODULE_NAME StaticQt5::$$CMAKE_PLUGIN_NAME $$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG_STATIC}\") -+!!ELSE -+ _populate_$${CMAKE_MODULE_NAME}_plugin_properties(Qt5::$$CMAKE_MODULE_NAME Qt5::$$CMAKE_PLUGIN_NAME $$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\") -+!!ENDIF -+!!ENDIF -+ -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+ list(APPEND StaticQt5$${CMAKE_MODULE_NAME}_PLUGINS StaticQt5::$$CMAKE_PLUGIN_NAME) -+!!ELSE -+ list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME) - !!ENDIF - --list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME) -+endif() -diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp -index 04c0210eb9..156665c17f 100644 ---- a/qmake/generators/makefile.cpp -+++ b/qmake/generators/makefile.cpp -@@ -997,6 +997,13 @@ MakefileGenerator::writePrlFile(QTextStream &t) - for (ProStringList::Iterator it = libs.begin(); it != libs.end(); ++it) - t << qv(project->values((*it).toKey())); - t << endl; -+ t << "QMAKE_PRL_LIBS_FOR_CMAKE = "; -+ QString sep; -+ for (ProStringList::Iterator it = libs.begin(); it != libs.end(); ++it) { -+ t << sep << project->values((*it).toKey()).join(';').replace('\\', "\\\\"); -+ sep = ';'; -+ } -+ t << endl; - } - } - -diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in -index a5ed8b2ea3..3375e1eeea 100644 ---- a/src/corelib/Qt5CoreConfigExtras.cmake.in -+++ b/src/corelib/Qt5CoreConfigExtras.cmake.in -@@ -1,4 +1,10 @@ - -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+set(IMPORTED_TARGET_NAME StaticQt5::$${CMAKE_MODULE_NAME}) -+!!ELSE -+set(IMPORTED_TARGET_NAME Qt5::$${CMAKE_MODULE_NAME}) -+!!ENDIF -+ - if (NOT TARGET Qt5::qmake) - add_executable(Qt5::qmake IMPORTED) - -@@ -50,9 +56,9 @@ set(Qt5Core_QMAKE_EXECUTABLE Qt5::qmake) - set(Qt5Core_MOC_EXECUTABLE Qt5::moc) - set(Qt5Core_RCC_EXECUTABLE Qt5::rcc) - --set_property(TARGET Qt5::Core PROPERTY INTERFACE_QT_MAJOR_VERSION 5) --set_property(TARGET Qt5::Core PROPERTY INTERFACE_QT_COORD_TYPE $$QT_COORD_TYPE) --set_property(TARGET Qt5::Core APPEND PROPERTY -+set_property(TARGET ${IMPORTED_TARGET_NAME} PROPERTY INTERFACE_QT_MAJOR_VERSION 5) -+set_property(TARGET ${IMPORTED_TARGET_NAME} PROPERTY INTERFACE_QT_COORD_TYPE $$QT_COORD_TYPE) -+set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY - COMPATIBLE_INTERFACE_STRING QT_MAJOR_VERSION QT_COORD_TYPE - ) - -@@ -63,7 +69,7 @@ foreach(_dir ${_qt5_corelib_extra_includes}) - endforeach() - - list(APPEND Qt5Core_INCLUDE_DIRS ${_qt5_corelib_extra_includes}) --set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_qt5_corelib_extra_includes}) -+set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_qt5_corelib_extra_includes}) - set(_qt5_corelib_extra_includes) - - # Targets using Qt need to use the POSITION_INDEPENDENT_CODE property. The -@@ -81,9 +87,9 @@ set(Qt5_POSITION_INDEPENDENT_CODE True) - if (CMAKE_VERSION VERSION_LESS 2.8.12 - AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL \"GNU\" - OR CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)) -- set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_POSITION_INDEPENDENT_CODE \"ON\") -+ set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY INTERFACE_POSITION_INDEPENDENT_CODE \"ON\") - else() -- set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_OPTIONS $$QMAKE_CXXFLAGS_APP) -+ set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY INTERFACE_COMPILE_OPTIONS $$QMAKE_CXXFLAGS_APP) - endif() - - # Applications using qmake or cmake >= 2.8.12 as their build system will -@@ -103,7 +109,7 @@ endif() - !!IF !isEmpty(QT_NAMESPACE) - list(APPEND Qt5Core_DEFINITIONS -DQT_NAMESPACE=$$QT_NAMESPACE) - list(APPEND Qt5Core_COMPILE_DEFINITIONS QT_NAMESPACE=$$QT_NAMESPACE) --set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS QT_NAMESPACE=$$QT_NAMESPACE) -+set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS QT_NAMESPACE=$$QT_NAMESPACE) - !!ENDIF - - !!IF !isEmpty(CMAKE_DISABLED_FEATURES) -@@ -112,9 +118,9 @@ set(Qt5_DISABLED_FEATURES - ) - !!ENDIF - --set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS $<$>:QT_NO_DEBUG>) -+set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS $<$>:QT_NO_DEBUG>) - --set_property(TARGET Qt5::Core PROPERTY INTERFACE_COMPILE_FEATURES cxx_decltype) -+set_property(TARGET ${IMPORTED_TARGET_NAME} PROPERTY INTERFACE_COMPILE_FEATURES cxx_decltype) - - !!IF contains(QT_CONFIG, reduce_exports) - set(QT_VISIBILITY_AVAILABLE \"True\") -@@ -162,14 +168,14 @@ if (NOT TARGET Qt5::WinMain) - set(_isWin32 $>) - set(_isNotExcluded $>>) - set(_isPolicyNEW $) -- get_target_property(_configs Qt5::Core IMPORTED_CONFIGURATIONS) -- set_property(TARGET Qt5::Core APPEND PROPERTY -+ get_target_property(_configs ${IMPORTED_TARGET_NAME} IMPORTED_CONFIGURATIONS) -+ set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY - INTERFACE_LINK_LIBRARIES - $<$:Qt5::WinMain> - ) - # For backward compatibility with CMake < 2.8.12 - foreach(_config ${_configs}) -- set_property(TARGET Qt5::Core APPEND PROPERTY -+ set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY - IMPORTED_LINK_INTERFACE_LIBRARIES_${_config} - $<$:Qt5::WinMain> - ) -@@ -188,3 +194,10 @@ get_filename_component(_Qt5CoreConfigDir ${CMAKE_CURRENT_LIST_FILE} PATH) - set(_Qt5CTestMacros \"${_Qt5CoreConfigDir}/Qt5CTestMacros.cmake\") - - _qt5_Core_check_file_exists(${_Qt5CTestMacros}) -+ -+!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) -+set(_isExe $,EXECUTABLE>) -+# INTERFACE_LINK_LIBRARIES is used to pass a linker flag '-static' and library ws2_32 -+set_target_properties(${IMPORTED_TARGET_NAME} PROPERTIES \"INTERFACE_LINK_LIBRARIES\" \"$<${_isExe}:-static;ws2_32>\") -+unset(_isExe) -+!!ENDIF -diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in -index 2e32911a64..31567d7da2 100644 ---- a/src/gui/Qt5GuiConfigExtras.cmake.in -+++ b/src/gui/Qt5GuiConfigExtras.cmake.in -@@ -1,4 +1,10 @@ - -+!!IF !isEmpty(CMAKE_STATIC_TYPE) -+set(IMPORTED_TARGET_NAME StaticQt5::$${CMAKE_MODULE_NAME}) -+!!ELSE -+set(IMPORTED_TARGET_NAME Qt5::$${CMAKE_MODULE_NAME}) -+!!ENDIF -+ - !!IF !isEmpty(CMAKE_ANGLE_EGL_DLL_RELEASE) - - !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE) -@@ -67,7 +73,7 @@ unset(_GL_INCDIRS) - # optional. - - list(APPEND Qt5Gui_INCLUDE_DIRS ${_qt5gui_OPENGL_INCLUDE_DIR}) --set_property(TARGET Qt5::Gui APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_qt5gui_OPENGL_INCLUDE_DIR}) -+set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_qt5gui_OPENGL_INCLUDE_DIR}) - - unset(_qt5gui_OPENGL_INCLUDE_DIR CACHE) - -@@ -170,9 +176,9 @@ _qt5gui_find_extra_libs(OPENGL \"$$CMAKE_OPENGL_LIBS\" \"$$CMAKE_OPENGL_LIBDIR\" - - set(Qt5Gui_OPENGL_IMPLEMENTATION $$CMAKE_QT_OPENGL_IMPLEMENTATION) - --get_target_property(_configs Qt5::Gui IMPORTED_CONFIGURATIONS) -+get_target_property(_configs ${IMPORTED_TARGET_NAME} IMPORTED_CONFIGURATIONS) - foreach(_config ${_configs}) -- set_property(TARGET Qt5::Gui APPEND PROPERTY -+ set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY - IMPORTED_LINK_DEPENDENT_LIBRARIES_${_config} - ${Qt5Gui_EGL_LIBRARIES} ${Qt5Gui_OPENGL_LIBRARIES} - ) --- -2.11.0 - diff --git a/0016-Build-dynamic-host-libraries.patch b/0016-Build-dynamic-host-libraries.patch new file mode 100644 index 0000000..075e2be --- /dev/null +++ b/0016-Build-dynamic-host-libraries.patch @@ -0,0 +1,38 @@ +From b91bb54e98627bd92ff740ed547d52febb3523d4 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 14:27:28 +0200 +Subject: [PATCH 16/30] Build dynamic host libraries + +For better accordance with Arch Linux packaging +standards +--- + mkspecs/features/qt_module.prf | 2 +- + src/tools/bootstrap-dbus/bootstrap-dbus.pro | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf +index 31d628596c..360c99ac73 100644 +--- a/mkspecs/features/qt_module.prf ++++ b/mkspecs/features/qt_module.prf +@@ -24,7 +24,7 @@ requires(!$$skip) + + # Compile as shared/DLL or static according to the option given to configure + # unless overridden. Host builds are always static +-host_build|staticlib: CONFIG += static ++staticlib: CONFIG += static + + host_build { + QT -= gui # no host module will ever use gui +diff --git a/src/tools/bootstrap-dbus/bootstrap-dbus.pro b/src/tools/bootstrap-dbus/bootstrap-dbus.pro +index c3ed27d979..30d2114aa1 100644 +--- a/src/tools/bootstrap-dbus/bootstrap-dbus.pro ++++ b/src/tools/bootstrap-dbus/bootstrap-dbus.pro +@@ -27,4 +27,4 @@ SOURCES = \ + load(qt_module) + + lib.CONFIG = dummy_install +-INSTALLS = lib ++INSTALLS += lib +-- +2.12.2 + diff --git a/0017-Enable-rpath-for-build-tools.patch b/0017-Enable-rpath-for-build-tools.patch new file mode 100644 index 0000000..a7f097e --- /dev/null +++ b/0017-Enable-rpath-for-build-tools.patch @@ -0,0 +1,35 @@ +From 0e79722e8c8162f87b2b765932d3507de2f20a88 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 17:59:27 +0200 +Subject: [PATCH 17/30] Enable rpath for build tools + +- Required because library various tools depend on (libQt5Bootstrap.so) resides + in folder /usr/${_arch}/lib +- Can't use regular lib dir because it would conflict with the native package +--- + mkspecs/features/qt_app.prf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mkspecs/features/qt_app.prf b/mkspecs/features/qt_app.prf +index cb84ae0da8..8d9471ed0a 100644 +--- a/mkspecs/features/qt_app.prf ++++ b/mkspecs/features/qt_app.prf +@@ -20,6 +20,7 @@ isEmpty(QMAKE_INFO_PLIST): CONFIG -= app_bundle + QMAKE_LFLAGS += $$QMAKE_LFLAGS_GCSECTIONS + + host_build: QT -= gui # no host tool will ever use gui ++host_build: QMAKE_RPATHDIR += $$[QT_HOST_LIBS] # force rpath + host_build:force_bootstrap { + !build_pass:qtConfig(release_tools): CONFIG += release + contains(QT, core(-private)?|xml) { +@@ -30,7 +31,6 @@ host_build:force_bootstrap { + } else { + !build_pass:qtConfig(debug_and_release): CONFIG += release + target.path = $$[QT_INSTALL_BINS] +- CONFIG += relative_qt_rpath # Qt's tools and apps should be relocatable + } + INSTALLS += target + +-- +2.12.2 + diff --git a/0017-Use-correct-pkg-config-static-flag.patch b/0017-Use-correct-pkg-config-static-flag.patch deleted file mode 100644 index 844bde6..0000000 --- a/0017-Use-correct-pkg-config-static-flag.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 7e72b88186a449562b0afae6891383b92bbc576a Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 17:01:16 +0100 -Subject: [PATCH 17/19] Use correct pkg-config --static flag - -Change-Id: I730d4fc24f198fc491414e318d312ebedaab2eda ---- - configure | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/configure b/configure -index 8a65d7ee5c..2dae5b0441 100755 ---- a/configure -+++ b/configure -@@ -4166,6 +4166,11 @@ if [ -z "$PKG_CONFIG" ]; then - # See if PKG_CONFIG is set in the mkspec: - PKG_CONFIG="`"$CFG_QMAKE_PATH" -qtconf "$QTCONFFILE" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" $DEV_NULL 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`" - [ -n "$PKG_CONFIG" ] && [ "$OPT_VERBOSE" = "yes" ] && echo "Found pkg-config from mkspec: $PKG_CONFIG" -+ -+ if [ "$CFG_SHARED" = "no" ] ; then -+ PKG_CONFIG="$PKG_CONFIG --static" -+ [ "$OPT_VERBOSE" = "yes" ] && echo "Using '$PKG_CONFIG' because we're doing a static build" -+ fi - fi - if [ -z "$PKG_CONFIG" ]; then - PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null` --- -2.11.0 - diff --git a/0018-Fix-qt5_wrap_ui-macro.patch b/0018-Fix-qt5_wrap_ui-macro.patch deleted file mode 100644 index aa1c59b..0000000 --- a/0018-Fix-qt5_wrap_ui-macro.patch +++ /dev/null @@ -1,28 +0,0 @@ -From e6ba32186031b82bf5142da72598abafe39973ca Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 17:02:19 +0100 -Subject: [PATCH 18/19] Fix qt5_wrap_ui() macro - -Change-Id: I743444361fa304b532bca0ea7ad26c483466f7fd ---- - src/widgets/Qt5WidgetsMacros.cmake | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/widgets/Qt5WidgetsMacros.cmake b/src/widgets/Qt5WidgetsMacros.cmake -index f5e7b7f050..18d120f0c7 100644 ---- a/src/widgets/Qt5WidgetsMacros.cmake -+++ b/src/widgets/Qt5WidgetsMacros.cmake -@@ -55,8 +55,9 @@ function(QT5_WRAP_UI outfiles ) - get_filename_component(outfile ${it} NAME_WE) - get_filename_component(infile ${it} ABSOLUTE) - set(outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${outfile}.h) -+ get_target_property(UIC_LOC ${Qt5Widgets_UIC_EXECUTABLE} IMPORTED_LOCATION) - add_custom_command(OUTPUT ${outfile} -- COMMAND ${Qt5Widgets_UIC_EXECUTABLE} -+ COMMAND ${UIC_LOC} - ARGS ${ui_options} -o ${outfile} ${infile} - MAIN_DEPENDENCY ${infile} VERBATIM) - list(APPEND ${outfiles} ${outfile}) --- -2.11.0 - diff --git a/0018-Use-system-zlib-for-build-tools.patch b/0018-Use-system-zlib-for-build-tools.patch new file mode 100644 index 0000000..a8a975c --- /dev/null +++ b/0018-Use-system-zlib-for-build-tools.patch @@ -0,0 +1,25 @@ +From 510f64af3d51b140e18cbf026cbfd4990ba973d5 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 18:04:42 +0200 +Subject: [PATCH 18/30] Use system zlib for build tools + +--- + src/tools/bootstrap/bootstrap.pro | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro +index d51f9e98a4..2242b7c4f1 100644 +--- a/src/tools/bootstrap/bootstrap.pro ++++ b/src/tools/bootstrap/bootstrap.pro +@@ -127,7 +127,7 @@ macx { + ../../corelib/io/qstandardpaths_win.cpp + } + +-!qtConfig(system-zlib)|cross_compile { ++!qtConfig(system-zlib) { + include(../../3rdparty/zlib.pri) + } else { + CONFIG += no_core_dep +-- +2.12.2 + diff --git a/0019-Disable-determing-default-include-and-lib-dirs-at-qm.patch b/0019-Disable-determing-default-include-and-lib-dirs-at-qm.patch new file mode 100644 index 0000000..65a16fc --- /dev/null +++ b/0019-Disable-determing-default-include-and-lib-dirs-at-qm.patch @@ -0,0 +1,26 @@ +From 12e64d649d5a01b4f878778aa6c183ceb51b28e7 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 18:20:25 +0200 +Subject: [PATCH 19/30] Disable determing default include and lib dirs at qmake + time when building with mingw-w64 + +--- + mkspecs/features/toolchain.prf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf +index 3f266dd2a4..258d374ee0 100644 +--- a/mkspecs/features/toolchain.prf ++++ b/mkspecs/features/toolchain.prf +@@ -13,7 +13,7 @@ isEmpty(QMAKE_DEFAULT_INCDIRS):!host_build { + # + # Get default include and library paths from compiler + # +- gcc { ++ !win32:gcc { + !equals(QMAKE_HOST.os, Windows) { + cmd_prefix = "LC_ALL=C" + cmd_suffix = "/dev/null" +-- +2.12.2 + diff --git a/0019-Pkgconfig-static-library-name-workaround.patch b/0019-Pkgconfig-static-library-name-workaround.patch deleted file mode 100644 index 60a0987..0000000 --- a/0019-Pkgconfig-static-library-name-workaround.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 7b6310ce1432910f45cb96a441506e72ef41ce39 Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Sat, 7 Jan 2017 17:05:22 +0100 -Subject: [PATCH 19/19] Pkgconfig static library name workaround - -Change-Id: Ibbe38faaf195bbba544ee9347158cff16a6bfd1a ---- - mkspecs/features/qt_module.prf | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf -index cb29009970..27c2eedbaa 100644 ---- a/mkspecs/features/qt_module.prf -+++ b/mkspecs/features/qt_module.prf -@@ -265,6 +265,16 @@ load(qt_targets) - pclib_replace.replace = $$QMAKE_PKGCONFIG_LIBDIR - pclib_replace.CONFIG = path - QMAKE_PKGCONFIG_INSTALL_REPLACE += pclib_replace -+ -+ pclib_replace2.CONFIG = path -+ pclib_replace2.match = " /lib" -+ pclib_replace2.replace = "-l" -+ QMAKE_PKGCONFIG_INSTALL_REPLACE += pclib_replace2 -+ -+ pclib_replace3.CONFIG = path -+ pclib_replace3.match = "\.dll\.a" -+ pclib_replace3.replace = "" -+ QMAKE_PKGCONFIG_INSTALL_REPLACE += pclib_replace3 - } - !lib_bundle:unix { - CONFIG += create_libtool --- -2.11.0 - diff --git a/0020-Use-.dll.a-as-import-lib-extension.patch b/0020-Use-.dll.a-as-import-lib-extension.patch new file mode 100644 index 0000000..30669b9 --- /dev/null +++ b/0020-Use-.dll.a-as-import-lib-extension.patch @@ -0,0 +1,68 @@ +From cea6744e8b23c780033c4e5a2f51fdb0bd60153c Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 18:26:18 +0200 +Subject: [PATCH 20/30] Use *.dll.a as import lib extension + +The variables used here are provided by +mingw-w64 specific mkspec +--- + mkspecs/features/create_cmake.prf | 5 +++-- + qmake/generators/win32/winmakefile.cpp | 17 ++++++++++++----- + 2 files changed, 15 insertions(+), 7 deletions(-) + +diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf +index ed9b82fba9..461a7fdff5 100644 +--- a/mkspecs/features/create_cmake.prf ++++ b/mkspecs/features/create_cmake.prf +@@ -236,8 +236,9 @@ mac { + CMAKE_PRL_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.prl + CMAKE_PRL_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.prl + } else { +- CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.a +- CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a ++ isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = a ++ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.$${QMAKE_EXTENSION_IMPORTLIB} ++ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.$${QMAKE_EXTENSION_IMPORTLIB} + } + } else { + CMAKE_WINMAIN_FILE_LOCATION_DEBUG = qtmain$${QT_LIBINFIX}d.lib +diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp +index caa000ea53..e6338546bb 100644 +--- a/qmake/generators/win32/winmakefile.cpp ++++ b/qmake/generators/win32/winmakefile.cpp +@@ -80,10 +80,14 @@ Win32MakefileGenerator::parseLibFlag(const ProString &flag, ProString *arg) + bool + Win32MakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags) + { +- ProStringList impexts = project->values("QMAKE_LIB_EXTENSIONS"); +- if (impexts.isEmpty()) +- impexts = project->values("QMAKE_EXTENSION_STATICLIB"); +- QList dirs; ++ ProStringList impexts; ++ if (project->isActiveConfig("staticlib")) { ++ impexts.append(project->values("QMAKE_EXTENSION_STATICLIB")); ++ } else { ++ impexts.append(project->values("QMAKE_EXTENSION_IMPORTLIB")); ++ impexts.append(project->values("QMAKE_EXTENSION_STATICLIB")); ++ } ++ QList dirs; + static const char * const lflags[] = { "QMAKE_LIBS", "QMAKE_LIBS_PRIVATE", 0 }; + for (int i = 0; lflags[i]; i++) { + ProStringList &l = project->values(lflags[i]); +@@ -231,9 +235,12 @@ void Win32MakefileGenerator::fixTargetExt() + if (!project->values("QMAKE_APP_FLAG").isEmpty()) { + project->values("TARGET_EXT").append(".exe"); + } else if (project->isActiveConfig("shared")) { ++ ProString impext = project->first("QMAKE_EXTENSION_IMPORTLIB"); ++ if (impext.isEmpty()) ++ impext = project->first("QMAKE_PREFIX_STATICLIB"); + project->values("LIB_TARGET").prepend(project->first("QMAKE_PREFIX_STATICLIB") + + project->first("TARGET") + project->first("TARGET_VERSION_EXT") +- + '.' + project->first("QMAKE_EXTENSION_STATICLIB")); ++ + '.' + impext); + project->values("TARGET_EXT").append(project->first("TARGET_VERSION_EXT") + "." + + project->first("QMAKE_EXTENSION_SHLIB")); + project->values("TARGET").first() = project->first("QMAKE_PREFIX_SHLIB") + project->first("TARGET"); +-- +2.12.2 + diff --git a/0020-Workaround-native-libdir-appearing-in-QMAKE_DEFAULT_.patch b/0020-Workaround-native-libdir-appearing-in-QMAKE_DEFAULT_.patch deleted file mode 100644 index 21b0a75..0000000 --- a/0020-Workaround-native-libdir-appearing-in-QMAKE_DEFAULT_.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 1dbc208d7b5cd0a7665965406460ad58a53dd1c1 Mon Sep 17 00:00:00 2001 -From: Sandro Mani -Date: Thu, 12 Jan 2017 14:45:06 +0100 -Subject: [PATCH] Workaround native libdir appearing in QMAKE_DEFAULT_INCDIRS - -Change-Id: I3ccf24832fe02296e8978186d195c84c9ea26f2a ---- - mkspecs/features/toolchain.prf | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf -index 7691b7db34..e7d4d9110a 100644 ---- a/mkspecs/features/toolchain.prf -+++ b/mkspecs/features/toolchain.prf -@@ -30,6 +30,12 @@ isEmpty(QMAKE_DEFAULT_INCDIRS):!host_build { - } - } - QMAKE_DEFAULT_LIBDIRS = $$unique(QMAKE_DEFAULT_LIBDIRS) -+ #HACK Don't include the native libdir to the default libdirs when crosscompiling -+ #Fixes -lQt5Bootstrap not found due to missing -L (module libdirs are filtered by QMAKE_DEFAULT_LIBDIRS) -+ cross_compile: { -+ QMAKE_DEFAULT_LIBDIRS -= $$[QT_HOST_LIBS] -+ } -+ - } - - unix { --- -2.11.0 - diff --git a/0021-Merge-shared-and-static-library-trees.patch b/0021-Merge-shared-and-static-library-trees.patch new file mode 100644 index 0000000..d1bd136 --- /dev/null +++ b/0021-Merge-shared-and-static-library-trees.patch @@ -0,0 +1,128 @@ +From 7d8372b48046631d93ea260649d29a023fe29b01 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 18:45:08 +0200 +Subject: [PATCH 21/30] Merge shared and static library trees + +Allow installation of shared and static build in the same prefix +--- + configure.pri | 7 +++++++ + mkspecs/features/default_post.prf | 11 +++++++++++ + mkspecs/features/qt.prf | 15 +++++++++++++++ + mkspecs/features/spec_pre.prf | 11 ++++++++--- + qmake/generators/makefile.cpp | 9 ++++++--- + 5 files changed, 47 insertions(+), 6 deletions(-) + +diff --git a/configure.pri b/configure.pri +index 19719736a9..0c4b8ebbf8 100644 +--- a/configure.pri ++++ b/configure.pri +@@ -555,3 +555,10 @@ QMAKE_POST_CONFIGURE += \ + + # load and process input from configure.sh/.exe + include($$shadowed($$PWD)/config.tests/configure.cfg) ++ ++# merge shared and static library trees ++contains(CONFIG, static) { ++ CONFIG -= shared ++ QT_CONFIG += static jpeg gif ++ QT_CONFIG -= shared ++} +diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf +index e7e9a5bd87..72305ad9b8 100644 +--- a/mkspecs/features/default_post.prf ++++ b/mkspecs/features/default_post.prf +@@ -1,5 +1,16 @@ + # This file is loaded by qmake right after loading the actual project file. + ++win32:contains(CONFIG, static) { ++ # Ensure defines are set correctly for static build ++ DEFINES -= QT_SHARED ++ DEFINES *= QT_STATIC QT_DESIGNER_STATIC ++ contains(QT_CONFIG, angle): DEFINES *= QT_OPENGL_ES_2_ANGLE_STATIC ++ # Ensure we link against all dependencies statically ++ QMAKE_LFLAGS += -static -static-libstdc++ -static-libgcc ++ # Prevent qmake from finding the prl file for shared libs ++ QMAKE_EXT_PRL = .static.prl ++} ++ + contains(TEMPLATE, ".*(lib|app)"):CONFIG += have_target + + !have_target:!force_qt: CONFIG -= qt +diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf +index 98f794c485..1799622edd 100644 +--- a/mkspecs/features/qt.prf ++++ b/mkspecs/features/qt.prf +@@ -152,6 +152,21 @@ for(ever) { + !isEmpty(MODULE_WINRT_CAPABILITIES_DEVICE): \ + WINRT_MANIFEST.capabilities_device_default += $$MODULE_WINRT_CAPABILITIES_DEVICE + } ++ ++ # Ensure linking against all required static libraries as defined in mingw-w64-g++ mkspec ++ win32:contains(CONFIG, static) { ++ isEqual(MODULE_NAME, QtCore) { ++ LIBS$$var_sfx += $$QMAKE_LIBS_CORE ++ } else:isEqual(MODULE_NAME, QtGui) { ++ LIBS$$var_sfx += $$QMAKE_LIBS_GUI ++ } else:isEqual(MODULE_NAME, QtNetwork) { ++ LIBS$$var_sfx += $$QMAKE_LIBS_NETWORK ++ } else:isEqual(MODULE_NAME, QtDBus) { ++ LIBS$$var_sfx += $$QMAKE_LIBS_DBUS ++ } else:isEqual(MODULE_NAME, QtOpenGL) { ++ LIBS$$var_sfx += $$QMAKE_LIBS_OPENGL ++ } ++ } + } + !isEmpty(BAD_QT):error("Unknown module(s) in QT$$var_sfx: $$replace(BAD_QT, _private$, -private)") + +diff --git a/mkspecs/features/spec_pre.prf b/mkspecs/features/spec_pre.prf +index 51ea3a8321..275e080ae4 100644 +--- a/mkspecs/features/spec_pre.prf ++++ b/mkspecs/features/spec_pre.prf +@@ -14,9 +14,14 @@ QMAKE_EXT_H = .h .hpp .hh .hxx + QMAKE_EXT_H_MOC = .cpp + QMAKE_EXT_JS = .js + QMAKE_EXT_LEX = .l +-QMAKE_EXT_LIBTOOL = .la +-QMAKE_EXT_PKGCONFIG = .pc +-QMAKE_EXT_PRL = .prl ++QMAKE_EXT_PKGCONFIG = .pc ++contains(CONFIG, static) { ++ QMAKE_EXT_LIBTOOL = .static.la ++ QMAKE_EXT_PRL = .static.prl ++} else { ++ QMAKE_EXT_LIBTOOL = .la ++ QMAKE_EXT_PRL = .prl ++} + QMAKE_EXT_UI = .ui + QMAKE_EXT_YACC = .y + +diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp +index a762443fe2..8ac3a0f647 100644 +--- a/qmake/generators/makefile.cpp ++++ b/qmake/generators/makefile.cpp +@@ -3167,6 +3167,9 @@ MakefileGenerator::pkgConfigFileName(bool fixify, bool onlyPrependDestdir) + if (project->isActiveConfig("debug")) { + ret += "d"; + } ++ if (project->isActiveConfig("staticlib")) { ++ ret.insert(0, QStringLiteral("Static")); ++ } + ret += Option::pkgcfg_ext; + QString subdir = project->first("QMAKE_PKGCONFIG_DESTDIR").toQString(); + if(!subdir.isEmpty()) { +@@ -3340,9 +3343,9 @@ MakefileGenerator::writePkgConfigFile() + t << endl; + + // requires +- const QString requires = project->values("QMAKE_PKGCONFIG_REQUIRES").join(' '); +- if (!requires.isEmpty()) { +- t << "Requires: " << requires << endl; ++ t << "Requires:"; ++ for (const auto &required : project->values("QMAKE_PKGCONFIG_REQUIRES")) { ++ t << (project->isActiveConfig("staticlib") ? QStringLiteral(" Static") : QStringLiteral(" ")) << required.toQString(); + } + + t << endl; +-- +2.12.2 + diff --git a/0022-Allow-usage-of-static-version-with-CMake.patch b/0022-Allow-usage-of-static-version-with-CMake.patch new file mode 100644 index 0000000..ff7cf9a --- /dev/null +++ b/0022-Allow-usage-of-static-version-with-CMake.patch @@ -0,0 +1,998 @@ +From 1c1935b0d6e6685181880f6d591677ed49b0695e Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 18:32:00 +0200 +Subject: [PATCH 22/30] Allow usage of static version with CMake + +- Fix plugin detection and various details +- Allow selecting between dynamic and static Qt versions + installed in the same prefix + - Use eg. find_package(Qt5Core) for dynamic version + - and eg. find_package(StaticQt5Core) for static version +--- + mkspecs/features/create_cmake.prf | 85 +++-- + .../features/data/cmake/Qt5BasicConfig.cmake.in | 358 ++++++++++++++------- + .../features/data/cmake/Qt5PluginTarget.cmake.in | 30 +- + qmake/generators/makefile.cpp | 7 + + src/corelib/Qt5CoreConfigExtras.cmake.in | 37 ++- + src/gui/Qt5GuiConfigExtras.cmake.in | 12 +- + src/testlib/Qt5TestConfigExtras.cmake.in | 4 + + 7 files changed, 372 insertions(+), 161 deletions(-) + +diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf +index 461a7fdff5..c4afc5251b 100644 +--- a/mkspecs/features/create_cmake.prf ++++ b/mkspecs/features/create_cmake.prf +@@ -38,7 +38,8 @@ split_incpath { + $$QT_MODULE_INCLUDE_BASE/Qt$${CMAKE_MODULE_NAME}/$$eval(QT.$${MODULE}.VERSION)/Qt$${CMAKE_MODULE_NAME}) + + cmake_extra_source_includes.input = $$PWD/data/cmake/ExtraSourceIncludes.cmake.in +- cmake_extra_source_includes.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/ExtraSourceIncludes.cmake ++ isEmpty(CMAKE_STATIC_TYPE): cmake_extra_source_includes.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/ExtraSourceIncludes.cmake ++ else: cmake_extra_source_includes.output = $$CMAKE_OUT_DIR/StaticQt5$${CMAKE_MODULE_NAME}/ExtraSourceIncludes.cmake + + !build_pass:QMAKE_SUBSTITUTES += \ + cmake_extra_source_includes +@@ -90,6 +91,8 @@ win32:!static:!staticlib { + } + + static|staticlib:CMAKE_STATIC_TYPE = true ++static|staticlib:VAR_PREFIX = "Static" ++else:VAR_PREFIX = "" + + CMAKE_DEBUG_TYPE = + CMAKE_RELEASE_TYPE = +@@ -135,17 +138,19 @@ contains(CONFIG, plugin) { + CMAKE_PLUGIN_NAME = $$PLUGIN_CLASS_NAME + + win32 { +- isEmpty(CMAKE_STATIC_TYPE) { ++ mingw { + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.dll + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.dll +- } else:mingw { +- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}.a +- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}d.a ++ CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/lib$${TARGET}.a ++ CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/lib$${TARGET}d.a + } else { # MSVC static + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.lib + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.lib ++ CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/$${TARGET}.lib ++ CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/$${TARGET}d.lib + } + } else { ++ # this branch is broken by the patch, only apply when building for Windows + mac { + isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .dylib + else: CMAKE_PlUGIN_EXT = .a +@@ -161,13 +166,15 @@ contains(CONFIG, plugin) { + } + } + cmake_target_file.input = $$PWD/data/cmake/Qt5PluginTarget.cmake.in +- cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake ++ isEmpty(CMAKE_STATIC_TYPE): cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake ++ else: cmake_target_file.output = $$CMAKE_OUT_DIR/StaticQt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake + + !build_pass:QMAKE_SUBSTITUTES += \ + cmake_target_file + + cmake_qt5_plugin_file.files = $$cmake_target_file.output +- cmake_qt5_plugin_file.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME} ++ isEmpty(CMAKE_STATIC_TYPE): cmake_qt5_plugin_file.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME} ++ else: cmake_qt5_plugin_file.path = $$[QT_INSTALL_LIBS]/cmake/StaticQt5$${CMAKE_MODULE_NAME} + INSTALLS += cmake_qt5_plugin_file + + return() +@@ -180,6 +187,8 @@ mod_deps = + lib_deps = + aux_mod_deps = + aux_lib_deps = ++aux_compile_defs_static = QT_STATIC QT_DESIGNER_STATIC ++contains(QT_CONFIG, angle): aux_compile_defs += QT_OPENGL_ES_2_ANGLE_STATIC + # Until CMake 3.0 is the minimum requirement of Qt 5, we need to filter + # out header-only modules from dependencies. CMake 3.0 provides INTERFACE + # libraries which are equivalent to header-only modules. +@@ -188,19 +197,26 @@ for (dep, sorted_deps) { + !contains(QT.$${dep}.module_config, no_link) { + mod_deps += $$cdep + lib_deps += Qt5::$$cdep ++ lib_deps_static += StaticQt5::$$cdep + } else { + aux_mod_deps += $$cdep + aux_lib_deps += Qt5::$$cdep ++ aux_lib_deps_static += StaticQt5::$$cdep + } + } + CMAKE_MODULE_DEPS = $$join(mod_deps, ";") + CMAKE_QT5_MODULE_DEPS = $$join(lib_deps, ";") ++CMAKE_QT5_MODULE_DEPS_STATIC = $$join(lib_deps_static, ";") + CMAKE_INTERFACE_MODULE_DEPS = $$join(aux_mod_deps, ";") + CMAKE_INTERFACE_QT5_MODULE_DEPS = $$join(aux_lib_deps, ";") ++CMAKE_INTERFACE_QT5_MODULE_DEPS_STATIC = $$join(aux_lib_deps_static, ";") ++CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC = $$join(aux_compile_defs_static, ";") ++ + + CMAKE_QT_STEM = Qt$$QT_MAJOR_VERSION$${CMAKE_MODULE_NAME}$${QT_LIBINFIX} + + mac { ++ # this branch is broken by the patch, only apply when building for Windows + !isEmpty(CMAKE_STATIC_TYPE) { + CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}_debug.a + CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a +@@ -228,35 +244,33 @@ mac { + CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqt5main$${QT_LIBINFIX}.a + CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqt5main$${QT_LIBINFIX}.a + +- !isEmpty(CMAKE_STATIC_TYPE) { +- CMAKE_STATIC_WINDOWS_BUILD = "true" +- CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.a +- CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a ++ isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = dll.a ++ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.$${QMAKE_EXTENSION_IMPORTLIB} ++ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.$${QMAKE_EXTENSION_IMPORTLIB} ++ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl ++ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl ++ ++ CMAKE_IMPLIB_FILE_LOCATION_DEBUG_STATIC = lib$${CMAKE_QT_STEM}d.a ++ CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC = lib$${CMAKE_QT_STEM}.a ++ CMAKE_PRL_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d.static.prl ++ CMAKE_PRL_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}.static.prl + +- CMAKE_PRL_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.prl +- CMAKE_PRL_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.prl +- } else { +- isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = a +- CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.$${QMAKE_EXTENSION_IMPORTLIB} +- CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.$${QMAKE_EXTENSION_IMPORTLIB} +- } + } else { + CMAKE_WINMAIN_FILE_LOCATION_DEBUG = qtmain$${QT_LIBINFIX}d.lib + CMAKE_WINMAIN_FILE_LOCATION_RELEASE = qtmain$${QT_LIBINFIX}.lib + +- !isEmpty(CMAKE_STATIC_TYPE) { +- CMAKE_STATIC_WINDOWS_BUILD = "true" +- CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib +- CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib ++ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib ++ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib ++ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl ++ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl + +- CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl +- CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl +- } else { +- CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib +- CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib +- } ++ CMAKE_IMPLIB_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d.lib ++ CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}.lib ++ CMAKE_PRL_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d.static.prl ++ CMAKE_PRL_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}.static.prl + } + } else { ++ # this branch is broken by the patch, only apply when building for Windows + !isEmpty(CMAKE_STATIC_TYPE) { + CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.a + CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a +@@ -276,12 +290,14 @@ mac { + INSTALLS += cmake_qt5_module_files + + cmake_config_file.input = $$PWD/data/cmake/Qt5BasicConfig.cmake.in +-cmake_config_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}Config.cmake ++isEmpty(CMAKE_STATIC_TYPE): cmake_config_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}Config.cmake ++else: cmake_config_file.output = $$CMAKE_OUT_DIR/StaticQt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}Config.cmake + + CMAKE_PACKAGE_VERSION = $$eval(QT.$${MODULE}.VERSION) + + cmake_config_version_file.input = $$PWD/data/cmake/Qt5ConfigVersion.cmake.in +-cmake_config_version_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}ConfigVersion.cmake ++isEmpty(CMAKE_STATIC_TYPE): cmake_config_version_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}ConfigVersion.cmake ++else: cmake_config_version_file.output = $$CMAKE_OUT_DIR/StaticQt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}ConfigVersion.cmake + + !build_pass:QMAKE_SUBSTITUTES += \ + cmake_config_file \ +@@ -295,7 +311,8 @@ cmake_extras_file.input = $$_PRO_FILE_PWD_/Qt5$${CMAKE_MODULE_NAME}ConfigExtras. + exists($$cmake_extras_file.input) { + + CMAKE_MODULE_EXTRAS = "true" +- cmake_extras_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake ++ isEmpty(CMAKE_STATIC_TYPE): cmake_extras_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake ++ else: cmake_extras_file.output = $$CMAKE_OUT_DIR/StaticQt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake + + !build_pass:QMAKE_SUBSTITUTES += cmake_extras_file + +@@ -307,7 +324,8 @@ cmake_macros_file.input = $$_PRO_FILE_PWD_/Qt5$${CMAKE_MODULE_NAME}Macros.cmake + exists($$cmake_macros_file.input) { + CMAKE_MODULE_MACROS = "true" + +- cmake_macros_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}Macros.cmake ++ isEmpty(CMAKE_STATIC_TYPE): cmake_macros_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}Macros.cmake ++ else: cmake_macros_file.output = $$CMAKE_OUT_DIR/StaticQt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}Macros.cmake + cmake_macros_file.CONFIG = verbatim + + !build_pass:QMAKE_SUBSTITUTES += cmake_macros_file +@@ -315,7 +333,8 @@ exists($$cmake_macros_file.input) { + cmake_qt5_module_files.files += $$cmake_macros_file.output + } + +-cmake_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME} ++isEmpty(CMAKE_STATIC_TYPE): cmake_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME} ++else: cmake_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/StaticQt5$${CMAKE_MODULE_NAME} + + # We are generating cmake files. Most developers of Qt are not aware of cmake, + # so we require automatic tests to be available. The only module which should +diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +index d2358cae4b..6365d0f9ff 100644 +--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in ++++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +@@ -35,15 +35,18 @@ set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\") + + !!IF !equals(TEMPLATE, aux) + # For backwards compatibility only. Use Qt5$${CMAKE_MODULE_NAME}_VERSION instead. +-set(Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING "$$eval(QT.$${MODULE}.MAJOR_VERSION).$$eval(QT.$${MODULE}.MINOR_VERSION).$$eval(QT.$${MODULE}.PATCH_VERSION)") +- +-set(Qt5$${CMAKE_MODULE_NAME}_LIBRARIES Qt5::$${CMAKE_MODULE_NAME}) ++set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING "$$eval(QT.$${MODULE}.MAJOR_VERSION).$$eval(QT.$${MODULE}.MINOR_VERSION).$$eval(QT.$${MODULE}.PATCH_VERSION)") ++set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_LIBRARIES $${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME}) + !!ENDIF // TEMPLATE != aux + +-macro(_qt5_$${CMAKE_MODULE_NAME}_check_file_exists file) +- if(NOT EXISTS \"${file}\" ) +- message(FATAL_ERROR \"The imported target \\\"Qt5::$${CMAKE_MODULE_NAME}\\\" references the file +- \\\"${file}\\\" ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++macro(_qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static FILE) ++!!ELSE ++macro(_qt5_$${CMAKE_MODULE_NAME}_check_file_exists FILE) ++!!ENDIF ++ if(NOT EXISTS \"${FILE}\") ++ message(FATAL_ERROR \"The imported target \\\"$${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME}\\\" references the file ++ \\\"${FILE}\\\" + but this file does not exist. Possible reasons include: + * The file was deleted, renamed, or moved to another location. + * An install or uninstall procedure did not complete successfully. +@@ -54,44 +57,91 @@ but not all the files it references. + endif() + endmacro() + ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++# ensure also regular/dynamic macro exists because it might be used in some extra config ++if(NOT COMMAND _qt5_$${CMAKE_MODULE_NAME}_check_file_exists) ++ macro(_qt5_$${CMAKE_MODULE_NAME}_check_file_exists FILE) ++ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static("${FILE}") ++ endmacro() ++endif() ++!!ENDIF ++ + !!IF !equals(TEMPLATE, aux) +-macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATION IMPLIB_LOCATION) +- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++macro(_populate_$${CMAKE_MODULE_NAME}_target_properties_static TARGET_NAME TARGET_CONFIG LIB_LOCATION IMPLIB_LOCATION) ++!!ELSE ++macro(_populate_$${CMAKE_MODULE_NAME}_target_properties TARGET_NAME TARGET_CONFIG LIB_LOCATION IMPLIB_LOCATION) ++!!ENDIF ++ set_property(TARGET ${TARGET_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${TARGET_CONFIG}) + + !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE) ++ ++!!IF !isEmpty(CMAKE_WINDOWS_BUILD) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib/${LIB_LOCATION}\") ++!!ELSE ++ set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/bin/${LIB_LOCATION}\") ++!!ENDIF ++!!ELSE + set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\") ++!!ENDIF ++ ++!!ELSE ++ ++!!IF !isEmpty(CMAKE_WINDOWS_BUILD) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ set(imported_location \"lib/${LIB_LOCATION}\") ++!!ELSE ++ set(imported_location \"bin/${LIB_LOCATION}\") ++!!ENDIF + !!ELSE + set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\") + !!ENDIF ++ ++!!ENDIF ++ ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static(${imported_location}) ++!!ELSE + _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) +- set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES +- \"INTERFACE_LINK_LIBRARIES\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\" +- \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} ++!!ENDIF ++ ++ if (_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES) ++ set(_list_sep \";\") ++ endif() ++ set_target_properties(${TARGET_NAME} PROPERTIES ++ \"INTERFACE_LINK_LIBRARIES_${TARGET_CONFIG}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_list_sep}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${TARGET_CONFIG}_LIB_DEPENDENCIES}\" ++ \"IMPORTED_LOCATION_${TARGET_CONFIG}\" ${imported_location} + !!IF !isEmpty(CMAKE_LIB_SONAME) +- \"IMPORTED_SONAME_${Configuration}\" \"$${CMAKE_LIB_SONAME}\" ++ \"IMPORTED_SONAME_${TARGET_CONFIG}\" \"$${CMAKE_LIB_SONAME}\" + !!ENDIF + # For backward compatibility with CMake < 2.8.12 +- \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\" ++ \"IMPORTED_LINK_INTERFACE_LIBRARIES_${TARGET_CONFIG}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_list_sep}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${TARGET_CONFIG}_LIB_DEPENDENCIES}\" + ) + + !!IF !isEmpty(CMAKE_WINDOWS_BUILD) + !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) + set(imported_implib \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") + !!ELSE +- set(imported_implib \"IMPORTED_IMPLIB_${Configuration}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") ++ set(imported_implib \"IMPORTED_IMPLIB_${TARGET_CONFIG}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") + !!ENDIF ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static(${imported_implib}) ++!!ELSE + _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_implib}) ++!!ENDIF + if(NOT \"${IMPLIB_LOCATION}\" STREQUAL \"\") +- set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES +- \"IMPORTED_IMPLIB_${Configuration}\" ${imported_implib} ++ set_target_properties($${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME} PROPERTIES ++ \"IMPORTED_IMPLIB_${TARGET_CONFIG}\" ${imported_implib} + ) + endif() + !!ENDIF + endmacro() + !!ENDIF + +-if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) ++set(TARGET_NAME $${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME}) + ++if(NOT TARGET ${TARGET_NAME}) + !!IF !no_module_headers + !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) + set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS +@@ -99,46 +149,50 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Headers\" + ) + !!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES) +- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS ++ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/\" + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\" + ) +-!!ELSE +- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") +-!!ENDIF +-!!ELSE ++!!ELSE // isEmpty(CMAKE_NO_PRIVATE_INCLUDES) ++ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") ++!!ENDIF // isEmpty(CMAKE_NO_PRIVATE_INCLUDES) ++!!ELSE // !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) + !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE) + set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\") + !!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES) +- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS ++ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\" + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\" + ) +-!!ELSE +- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") +-!!ENDIF +-!!ELSE ++!!ELSE // isEmpty(CMAKE_NO_PRIVATE_INCLUDES) ++ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") ++!!ENDIF // isEmpty(CMAKE_NO_PRIVATE_INCLUDES) ++!!ELSE // isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE) + set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR\" \"$${CMAKE_INCLUDE_DIR}Qt$${CMAKE_MODULE_NAME}\") + !!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES) +- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS ++ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS + \"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\" + \"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\" + ) +-!!ELSE +- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") +-!!ENDIF +-!!ENDIF +-!!ENDIF ++!!ELSE // isEmpty(CMAKE_NO_PRIVATE_INCLUDES) ++ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") ++!!ENDIF // isEmpty(CMAKE_NO_PRIVATE_INCLUDES) ++!!ENDIF // isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE) ++!!ENDIF // !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) + !!IF !isEmpty(CMAKE_ADD_SOURCE_INCLUDE_DIRS) + include(\"${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake\" OPTIONAL) + !!ENDIF + !!ELSE + set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"\") +- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") ++ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") + !!ENDIF + + foreach(_dir ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static(${_dir}) ++!!ELSE + _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${_dir}) ++!!ENDIF + endforeach() + + !!IF isEmpty(CMAKE_BUILD_IS_FRAMEWORK) +@@ -147,16 +201,20 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) + list(FIND Qt5$${CMAKE_MODULE_NAME}_FIND_COMPONENTS Private _check_private) + if (NOT _check_private STREQUAL -1) + foreach(_dir ${Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS}) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static(${_dir}) ++!!ELSE + _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${_dir}) ++!!ENDIF + endforeach() + endif() + !!ENDIF + + !!IF !equals(TEMPLATE, aux) +- set(Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) ++ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) + +- set(Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS -D$${MODULE_DEFINE}) +- set(Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS $${MODULE_DEFINE}) ++ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS -D$${MODULE_DEFINE}) ++ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS $${MODULE_DEFINE}) + !!ENDIF // TEMPLATE != aux + set(_Qt5$${CMAKE_MODULE_NAME}_MODULE_DEPENDENCIES \"$${CMAKE_MODULE_DEPS}\") + +@@ -167,7 +225,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) + !!ENDIF + + set(_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED) +- if (Qt5$${CMAKE_MODULE_NAME}_FIND_REQUIRED) ++ if ($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_FIND_REQUIRED) + set(_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED REQUIRED) + endif() + set(_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_QUIET) +@@ -175,17 +233,17 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) + set(_Qt5$${CMAKE_MODULE_NAME}_DEPENDENCIES_FIND_QUIET QUIET) + endif() + set(_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT) +- if (Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT) ++ if ($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT) + set(_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT EXACT) + endif() + + !!IF !equals(TEMPLATE, aux) +- set(Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS \"\") ++ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS \"\") + !!ENDIF // TEMPLATE != aux + + foreach(_module_dep ${_Qt5$${CMAKE_MODULE_NAME}_MODULE_DEPENDENCIES}) +- if (NOT Qt5${_module_dep}_FOUND) +- find_package(Qt5${_module_dep} ++ if (NOT $${VAR_PREFIX}Qt5${_module_dep}_FOUND) ++ find_package($${VAR_PREFIX}Qt5${_module_dep} + $$VERSION ${_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT} + ${_Qt5$${CMAKE_MODULE_NAME}_DEPENDENCIES_FIND_QUIET} + ${_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED} +@@ -193,28 +251,32 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) + ) + endif() + +- if (NOT Qt5${_module_dep}_FOUND) +- set(Qt5$${CMAKE_MODULE_NAME}_FOUND False) ++ if (NOT $${VAR_PREFIX}Qt5${_module_dep}_FOUND) ++ set($${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_FOUND False) + return() + endif() + + !!IF !equals(TEMPLATE, aux) +- list(APPEND Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"${Qt5${_module_dep}_INCLUDE_DIRS}\") +- list(APPEND Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"${Qt5${_module_dep}_PRIVATE_INCLUDE_DIRS}\") +- list(APPEND Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS ${Qt5${_module_dep}_DEFINITIONS}) +- list(APPEND Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS ${Qt5${_module_dep}_COMPILE_DEFINITIONS}) +- list(APPEND Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS ${Qt5${_module_dep}_EXECUTABLE_COMPILE_FLAGS}) ++ list(APPEND $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"${Qt5${_module_dep}_INCLUDE_DIRS}\") ++ list(APPEND $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"${Qt5${_module_dep}_PRIVATE_INCLUDE_DIRS}\") ++ list(APPEND $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS ${Qt5${_module_dep}_DEFINITIONS}) ++ list(APPEND $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS ${Qt5${_module_dep}_COMPILE_DEFINITIONS}) ++ list(APPEND $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS ${Qt5${_module_dep}_EXECUTABLE_COMPILE_FLAGS}) + !!ENDIF // TEMPLATE != aux + endforeach() + !!IF !equals(TEMPLATE, aux) +- list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS) +- list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS) +- list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS) +- list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS) +- list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS) ++ list(REMOVE_DUPLICATES $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS) ++ list(REMOVE_DUPLICATES $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS) ++ list(REMOVE_DUPLICATES $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS) ++ list(REMOVE_DUPLICATES $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS) ++ list(REMOVE_DUPLICATES $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS) + !!ENDIF // TEMPLATE != aux + ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ set(_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES \"$${CMAKE_QT5_MODULE_DEPS_STATIC}\") ++!!ELSE + set(_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES \"$${CMAKE_QT5_MODULE_DEPS}\") ++!!ENDIF + + !!IF !isEmpty(CMAKE_INTERFACE_QT5_MODULE_DEPS) + if (NOT CMAKE_VERSION VERSION_LESS 3.0.0) +@@ -223,81 +285,179 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) + !!ENDIF + + !!IF !isEmpty(CMAKE_STATIC_TYPE) +- add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) +- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") ++ add_library(StaticQt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) ++ set_property(TARGET StaticQt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") ++ ++ macro(_process_prl_file PRL_FILE_LOCATION CONFIGURATION) ++ if (EXISTS \"${PRL_FILE_LOCATION}\") ++ file(STRINGS \"${PRL_FILE_LOCATION}\" prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE\") ++ string(REGEX REPLACE \"QMAKE_PRL_LIBS_FOR_CMAKE *= *([^\\n]*)\" \"\\\\1\" static_depends ${prl_strings}) ++ string(REGEX REPLACE \"\\\\$\\\\$\\\\[QT_INSTALL_LIBS\\\\]\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib\" static_depends \"${static_depends}\") ++ if (_Qt5$${CMAKE_MODULE_NAME}_STATIC_${CONFIGURATION}_LIB_DEPENDENCIES) ++ set(_list_sep \";\") ++ endif() ++ set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${CONFIGURATION}_LIB_DEPENDENCIES \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${CONFIGURATION}_LIB_DEPENDENCIES}${_list_sep}${static_depends}\") ++ endif() ++ endmacro() ++ ++ macro(_process_plugin_prl_file PRL_FILE_LOCATION CONFIGURATION LIB_DIRECTORY LIB_LOCATION) ++ # First add the (static) plugin itself ... ++ if (_Qt5$${CMAKE_MODULE_NAME}_STATIC_${CONFIGURATION}_LIB_DEPENDENCIES) ++ set(_list_sep \";\") ++ endif() ++ set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${CONFIGURATION}_LIB_DEPENDENCIES \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${CONFIGURATION}_LIB_DEPENDENCIES}${_list_sep}${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/${LIB_DIRECTORY}/${LIB_LOCATION}\") ++ # .. then its dependencies. ++ _process_prl_file(${PRL_FILE_LOCATION} ${CONFIGURATION}) ++ endmacro() ++ ++!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) ++ _process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG_STATIC}\" DEBUG) ++!!ELSE ++ _process_prl_file(\"$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG_STATIC}\" DEBUG) ++!!ENDIF ++!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) ++ _process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE_STATIC}\" RELEASE) + !!ELSE ++ _process_prl_file(\"$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE_STATIC}\" RELEASE) ++!!ENDIF ++ ++!!ELSE // !isEmpty(CMAKE_STATIC_TYPE) + !!IF equals(TEMPLATE, aux) + add_library(Qt5::$${CMAKE_MODULE_NAME} INTERFACE IMPORTED) + !!ELSE + add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) + !!ENDIF + !!ENDIF ++ + !!IF !equals(TEMPLATE, aux) + !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) +- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) ++ set_property(TARGET $${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) + !!ENDIF + !!ENDIF // TEMPLATE != aux + +- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY ++!!IF !equals(TEMPLATE, aux) ++!!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) ++ set_property(TARGET $${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) ++!!ENDIF ++!!ENDIF // TEMPLATE != aux ++ ++ set_property(TARGET $${VAR_PREFIX}Qt5::$${CMAKE_MODULE_NAME} PROPERTY + INTERFACE_INCLUDE_DIRECTORIES ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) ++ set(interface_compile_definitions $${MODULE_DEFINE}) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ set_property(TARGET StaticQt5::$${CMAKE_MODULE_NAME} PROPERTY ++ INTERFACE_COMPILE_DEFINITIONS $${CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC} $${MODULE_DEFINE}) ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/StaticQt5$${CMAKE_MODULE_NAME}_*.cmake\") ++!!ELSE + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY +- INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) ++ INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") ++!!ENDIF ++ ++ unset(pluginTargets) ++ if(pluginTargetsMaybe) ++ foreach(pluginTarget ${pluginTargetsMaybe}) ++ file(STRINGS ${pluginTarget} matched REGEX $${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}_PLUGINS) ++ if(matched) ++ list(APPEND pluginTargets ${pluginTarget}) ++ endif() ++ endforeach() ++ endif() ++ ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties_static TARGET_NAME PLUGIN_TARGET_NAME PLUGIN_NAME CONFIG PLUGIN_LOCATION) ++!!ELSE ++ macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties TARGET_NAME PLUGIN_TARGET_NAME PLUGIN_NAME CONFIG PLUGIN_LOCATION) ++!!ENDIF ++ set_property(TARGET ${PLUGIN_TARGET_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${CONFIG}) ++ ++!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE) ++ set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") ++!!ELSE ++ set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") ++!!ENDIF ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static(${imported_location}) ++!!ELSE ++ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) ++!!ENDIF ++ set_target_properties(${PLUGIN_TARGET_NAME} PROPERTIES ++ \"IMPORTED_LOCATION_${CONFIG}\" ${imported_location} ++ ) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ set_property(TARGET ${TARGET_NAME} APPEND PROPERTY STATIC_PLUGINS ${PLUGIN_NAME}) ++ get_filename_component(_PLUGIN_DIR ${PLUGIN_LOCATION} PATH) ++ get_filename_component(_PLUGIN_DIR_NAME ${_PLUGIN_DIR} NAME) ++ get_filename_component(_PLUGIN_NAME ${PLUGIN_LOCATION} NAME) ++ string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib/qt/plugins/${_PLUGIN_DIR_NAME}/\\\\1.static.prl\" PLUGIN_PRL_FILE_LOCATION ${_PLUGIN_NAME}) ++ _process_plugin_prl_file(${PLUGIN_PRL_FILE_LOCATION} ${CONFIG} \"lib/qt/plugins\" ${PLUGIN_LOCATION}) ++!!ENDIF ++ ++ endmacro() ++ ++ if(pluginTargets) ++ foreach(pluginTarget ${pluginTargets}) ++ include(${pluginTarget}) ++ endforeach() ++ endif() + + !!IF !equals(TEMPLATE, aux) + !!IF !isEmpty(CMAKE_RELEASE_TYPE) +-!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) +- _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" ) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ _populate_$${CMAKE_MODULE_NAME}_target_properties_static(StaticQt5::$${CMAKE_MODULE_NAME} RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC}\" \"\" ) + !!ELSE +- _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) +-!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD ++ _populate_$${CMAKE_MODULE_NAME}_target_properties(Qt5::$${CMAKE_MODULE_NAME} RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) ++!!ENDIF // CMAKE_STATIC_TYPE ++ + + !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD) + !!IF isEmpty(CMAKE_DEBUG_TYPE) +-!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) + !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) +- if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) ++ if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG_STATIC}\" ) + !!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE + if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) + !!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE +- _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" ) +-!!ELSE // CMAKE_STATIC_WINDOWS_BUILD ++ _populate_$${CMAKE_MODULE_NAME}_target_properties_static(StaticQt5::$${CMAKE_MODULE_NAME} DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG_STATIC}\" \"\" ) ++ endif() ++!!ELSE // CMAKE_STATIC_TYPE + if (EXISTS + !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE) + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" + !!ELSE + \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" + !!ENDIF +- AND EXISTS ++ AND EXISTS + !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) + !!ELSE + \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) + !!ENDIF +- _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) +-!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD ++ _populate_$${CMAKE_MODULE_NAME}_target_properties(Qt5::$${CMAKE_MODULE_NAME} DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) + endif() ++!!ENDIF // CMAKE_STATIC_TYPE + !!ENDIF // CMAKE_DEBUG_TYPE + !!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD +- + !!ENDIF // CMAKE_RELEASE_TYPE + + !!IF !isEmpty(CMAKE_DEBUG_TYPE) +-!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) +- _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" ) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ _populate_$${CMAKE_MODULE_NAME}_target_properties_static(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" ) + !!ELSE + _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) +-!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD ++!!ENDIF // CMAKE_STATIC_TYPE + + !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD) + !!IF isEmpty(CMAKE_RELEASE_TYPE) +-!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) ++ ++!!IF !isEmpty(CMAKE_STATIC_TYPE) + !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) +- if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) ++ if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC}\" ) + !!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE +- if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) ++ if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC}\" ) + !!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE +- _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" ) +-!!ELSE // CMAKE_STATIC_WINDOWS_BUILD ++ _populate_$${CMAKE_MODULE_NAME}_target_properties_static(StaticQt5::$${CMAKE_MODULE_NAME} RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC}\" \"\" ) ++!!ELSE + if (EXISTS + !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE) + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" +@@ -310,9 +470,11 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) + !!ELSE + \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) + !!ENDIF +- _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) +-!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD ++ _populate_$${CMAKE_MODULE_NAME}_target_properties(Qt5::$${CMAKE_MODULE_NAME} RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) + endif() ++!!ENDIF // CMAKE_STATIC_TYPE ++ ++ + !!ENDIF // CMAKE_RELEASE_TYPE + !!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD + +@@ -323,37 +485,17 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) + ) + !!ENDIF // TEMPLATE != aux + +- file(GLOB pluginTargets \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*Plugin.cmake\") +- +- macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) +- set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) +- +-!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE) +- set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") +-!!ELSE +- set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") +-!!ENDIF +- _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) +- set_target_properties(Qt5::${Plugin} PROPERTIES +- \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} +- ) +- endmacro() +- +- if (pluginTargets) +- foreach(pluginTarget ${pluginTargets}) +- include(${pluginTarget}) +- endforeach() +- endif() +- +- + !!IF !isEmpty(CMAKE_MODULE_EXTRAS) +- include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") ++ include(\"${CMAKE_CURRENT_LIST_DIR}/$${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") + !!ENDIF +- + !!IF !isEmpty(CMAKE_MODULE_MACROS) +- include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}Macros.cmake\") ++ include(\"${CMAKE_CURRENT_LIST_DIR}/$${VAR_PREFIX}Qt5$${CMAKE_MODULE_NAME}Macros.cmake\") + !!ENDIF + ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++_qt5_$${CMAKE_MODULE_NAME}_check_file_exists_static(\"${CMAKE_CURRENT_LIST_DIR}/StaticQt5$${CMAKE_MODULE_NAME}ConfigVersion.cmake\") ++!!ELSE + _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigVersion.cmake\") ++!!ENDIF + + endif() +diff --git a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in +index 5baf0fdb10..54345e4117 100644 +--- a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in ++++ b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in +@@ -1,11 +1,31 @@ +- +-add_library(Qt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) ++# Some Qt modules also load plugin target in extra config, so check whether the target already exists ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++if(NOT TARGET StaticQt5::$$CMAKE_PLUGIN_NAME) ++ add_library(StaticQt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) ++!!ELSE ++if(NOT TARGET Qt5::$$CMAKE_PLUGIN_NAME) ++ add_library(Qt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) ++!!ENDIF + + !!IF !isEmpty(CMAKE_RELEASE_TYPE) +-_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\") ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ _populate_$${CMAKE_MODULE_NAME}_plugin_properties_static(StaticQt5::$$CMAKE_MODULE_NAME StaticQt5::$$CMAKE_PLUGIN_NAME $$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE_STATIC}\") ++!!ELSE ++ _populate_$${CMAKE_MODULE_NAME}_plugin_properties(Qt5::$$CMAKE_MODULE_NAME Qt5::$$CMAKE_PLUGIN_NAME $$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\") ++!!ENDIF + !!ENDIF + !!IF !isEmpty(CMAKE_DEBUG_TYPE) +-_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\") ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ _populate_$${CMAKE_MODULE_NAME}_plugin_properties_static(StaticQt5::$$CMAKE_MODULE_NAME StaticQt5::$$CMAKE_PLUGIN_NAME $$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG_STATIC}\") ++!!ELSE ++ _populate_$${CMAKE_MODULE_NAME}_plugin_properties(Qt5::$$CMAKE_MODULE_NAME Qt5::$$CMAKE_PLUGIN_NAME $$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\") ++!!ENDIF ++!!ENDIF ++ ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++ list(APPEND StaticQt5$${CMAKE_MODULE_NAME}_PLUGINS StaticQt5::$$CMAKE_PLUGIN_NAME) ++!!ELSE ++ list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME) + !!ENDIF + +-list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME) ++endif() +diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp +index 8ac3a0f647..ed4a1f5c30 100644 +--- a/qmake/generators/makefile.cpp ++++ b/qmake/generators/makefile.cpp +@@ -998,6 +998,13 @@ MakefileGenerator::writePrlFile(QTextStream &t) + for (ProStringList::Iterator it = libs.begin(); it != libs.end(); ++it) + t << qv(project->values((*it).toKey())); + t << endl; ++ t << "QMAKE_PRL_LIBS_FOR_CMAKE = "; ++ QString sep; ++ for (ProStringList::Iterator it = libs.begin(); it != libs.end(); ++it) { ++ t << sep << project->values((*it).toKey()).join(';').replace('\\', "\\\\"); ++ sep = ';'; ++ } ++ t << endl; + } + } + +diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in +index 545b9a3d1e..fd5c947b5f 100644 +--- a/src/corelib/Qt5CoreConfigExtras.cmake.in ++++ b/src/corelib/Qt5CoreConfigExtras.cmake.in +@@ -1,4 +1,10 @@ + ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++set(IMPORTED_TARGET_NAME StaticQt5::$${CMAKE_MODULE_NAME}) ++!!ELSE ++set(IMPORTED_TARGET_NAME Qt5::$${CMAKE_MODULE_NAME}) ++!!ENDIF ++ + if (NOT TARGET Qt5::qmake) + add_executable(Qt5::qmake IMPORTED) + +@@ -50,9 +56,9 @@ set(Qt5Core_QMAKE_EXECUTABLE Qt5::qmake) + set(Qt5Core_MOC_EXECUTABLE Qt5::moc) + set(Qt5Core_RCC_EXECUTABLE Qt5::rcc) + +-set_property(TARGET Qt5::Core PROPERTY INTERFACE_QT_MAJOR_VERSION 5) +-set_property(TARGET Qt5::Core PROPERTY INTERFACE_QT_COORD_TYPE $$QT_COORD_TYPE) +-set_property(TARGET Qt5::Core APPEND PROPERTY ++set_property(TARGET ${IMPORTED_TARGET_NAME} PROPERTY INTERFACE_QT_MAJOR_VERSION 5) ++set_property(TARGET ${IMPORTED_TARGET_NAME} PROPERTY INTERFACE_QT_COORD_TYPE $$QT_COORD_TYPE) ++set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY + COMPATIBLE_INTERFACE_STRING QT_MAJOR_VERSION QT_COORD_TYPE + ) + +@@ -63,7 +69,7 @@ foreach(_dir ${_qt5_corelib_extra_includes}) + endforeach() + + list(APPEND Qt5Core_INCLUDE_DIRS ${_qt5_corelib_extra_includes}) +-set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_qt5_corelib_extra_includes}) ++set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_qt5_corelib_extra_includes}) + set(_qt5_corelib_extra_includes) + + # Targets using Qt need to use the POSITION_INDEPENDENT_CODE property. The +@@ -81,9 +87,9 @@ set(Qt5_POSITION_INDEPENDENT_CODE True) + if (CMAKE_VERSION VERSION_LESS 2.8.12 + AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL \"GNU\" + OR CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)) +- set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_POSITION_INDEPENDENT_CODE \"ON\") ++ set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY INTERFACE_POSITION_INDEPENDENT_CODE \"ON\") + else() +- set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_OPTIONS $$QMAKE_CXXFLAGS_APP) ++ set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY INTERFACE_COMPILE_OPTIONS $$QMAKE_CXXFLAGS_APP) + endif() + + # Applications using qmake or cmake >= 2.8.12 as their build system will +@@ -103,7 +109,7 @@ endif() + !!IF !isEmpty(QT_NAMESPACE) + list(APPEND Qt5Core_DEFINITIONS -DQT_NAMESPACE=$$QT_NAMESPACE) + list(APPEND Qt5Core_COMPILE_DEFINITIONS QT_NAMESPACE=$$QT_NAMESPACE) +-set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS QT_NAMESPACE=$$QT_NAMESPACE) ++set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS QT_NAMESPACE=$$QT_NAMESPACE) + !!ENDIF + + !!IF !isEmpty(CMAKE_DISABLED_FEATURES) +@@ -112,9 +118,9 @@ set(Qt5_DISABLED_FEATURES + ) + !!ENDIF + +-set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS $<$>:QT_NO_DEBUG>) ++set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS $<$>:QT_NO_DEBUG>) + +-set_property(TARGET Qt5::Core PROPERTY INTERFACE_COMPILE_FEATURES cxx_decltype) ++set_property(TARGET ${IMPORTED_TARGET_NAME} PROPERTY INTERFACE_COMPILE_FEATURES cxx_decltype) + + !!IF qtConfig(reduce_exports) + set(QT_VISIBILITY_AVAILABLE \"True\") +@@ -162,14 +168,14 @@ if (NOT TARGET Qt5::WinMain) + set(_isWin32 $>) + set(_isNotExcluded $>>) + set(_isPolicyNEW $) +- get_target_property(_configs Qt5::Core IMPORTED_CONFIGURATIONS) +- set_property(TARGET Qt5::Core APPEND PROPERTY ++ get_target_property(_configs ${IMPORTED_TARGET_NAME} IMPORTED_CONFIGURATIONS) ++ set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY + INTERFACE_LINK_LIBRARIES + $<$:Qt5::WinMain> + ) + # For backward compatibility with CMake < 2.8.12 + foreach(_config ${_configs}) +- set_property(TARGET Qt5::Core APPEND PROPERTY ++ set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY + IMPORTED_LINK_INTERFACE_LIBRARIES_${_config} + $<$:Qt5::WinMain> + ) +@@ -188,3 +194,10 @@ get_filename_component(_Qt5CoreConfigDir ${CMAKE_CURRENT_LIST_FILE} PATH) + set(_Qt5CTestMacros \"${_Qt5CoreConfigDir}/Qt5CTestMacros.cmake\") + + _qt5_Core_check_file_exists(${_Qt5CTestMacros}) ++ ++!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) ++set(_isExe $,EXECUTABLE>) ++# INTERFACE_LINK_LIBRARIES is used to pass a linker flag '-static' and library ws2_32 ++set_target_properties(${IMPORTED_TARGET_NAME} PROPERTIES \"INTERFACE_LINK_LIBRARIES\" \"$<${_isExe}:-static;ws2_32>\") ++unset(_isExe) ++!!ENDIF +diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in +index 2e32911a64..31567d7da2 100644 +--- a/src/gui/Qt5GuiConfigExtras.cmake.in ++++ b/src/gui/Qt5GuiConfigExtras.cmake.in +@@ -1,4 +1,10 @@ + ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++set(IMPORTED_TARGET_NAME StaticQt5::$${CMAKE_MODULE_NAME}) ++!!ELSE ++set(IMPORTED_TARGET_NAME Qt5::$${CMAKE_MODULE_NAME}) ++!!ENDIF ++ + !!IF !isEmpty(CMAKE_ANGLE_EGL_DLL_RELEASE) + + !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE) +@@ -67,7 +73,7 @@ unset(_GL_INCDIRS) + # optional. + + list(APPEND Qt5Gui_INCLUDE_DIRS ${_qt5gui_OPENGL_INCLUDE_DIR}) +-set_property(TARGET Qt5::Gui APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_qt5gui_OPENGL_INCLUDE_DIR}) ++set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_qt5gui_OPENGL_INCLUDE_DIR}) + + unset(_qt5gui_OPENGL_INCLUDE_DIR CACHE) + +@@ -170,9 +176,9 @@ _qt5gui_find_extra_libs(OPENGL \"$$CMAKE_OPENGL_LIBS\" \"$$CMAKE_OPENGL_LIBDIR\" + + set(Qt5Gui_OPENGL_IMPLEMENTATION $$CMAKE_QT_OPENGL_IMPLEMENTATION) + +-get_target_property(_configs Qt5::Gui IMPORTED_CONFIGURATIONS) ++get_target_property(_configs ${IMPORTED_TARGET_NAME} IMPORTED_CONFIGURATIONS) + foreach(_config ${_configs}) +- set_property(TARGET Qt5::Gui APPEND PROPERTY ++ set_property(TARGET ${IMPORTED_TARGET_NAME} APPEND PROPERTY + IMPORTED_LINK_DEPENDENT_LIBRARIES_${_config} + ${Qt5Gui_EGL_LIBRARIES} ${Qt5Gui_OPENGL_LIBRARIES} + ) +diff --git a/src/testlib/Qt5TestConfigExtras.cmake.in b/src/testlib/Qt5TestConfigExtras.cmake.in +index 2a575958ae..8312c90fd1 100644 +--- a/src/testlib/Qt5TestConfigExtras.cmake.in ++++ b/src/testlib/Qt5TestConfigExtras.cmake.in +@@ -1,5 +1,9 @@ + ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++set_property(TARGET StaticQt5::Test ++!!ELSE + set_property(TARGET Qt5::Test ++!!ENDIF + APPEND PROPERTY + INTERFACE_COMPILE_DEFINITIONS QT_TESTCASE_BUILDDIR=\\\"\${CMAKE_BINARY_DIR}\\\" + ) +-- +2.12.2 + diff --git a/0023-Use-correct-pkg-config-static-flag.patch b/0023-Use-correct-pkg-config-static-flag.patch new file mode 100644 index 0000000..a093126 --- /dev/null +++ b/0023-Use-correct-pkg-config-static-flag.patch @@ -0,0 +1,26 @@ +From 2d7fb7169cfeed0c95a703b58fa7ec2412ba5daf Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 18 Sep 2016 18:50:21 +0200 +Subject: [PATCH 23/30] Use correct pkg-config --static flag + +--- + configure.pri | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/configure.pri b/configure.pri +index 0c4b8ebbf8..8afb893e88 100644 +--- a/configure.pri ++++ b/configure.pri +@@ -138,6 +138,9 @@ defineTest(qtConfTest_detectPkgConfig) { + qtLog("Found pkg-config from path: $$pkgConfig") + } + } ++ !isEmpty(pkgConfig):qtConfig(static) { ++ pkgConfig = "$$pkgConfig --static" ++ } + + $$qtConfEvaluate("features.cross_compile") { + # cross compiling, check that pkg-config is set up sanely +-- +2.12.2 + diff --git a/0024-Fix-macro-invoking-moc-rcc-and-uic.patch b/0024-Fix-macro-invoking-moc-rcc-and-uic.patch new file mode 100644 index 0000000..86ba3a7 --- /dev/null +++ b/0024-Fix-macro-invoking-moc-rcc-and-uic.patch @@ -0,0 +1,74 @@ +From 4c840dc66e4506e27cbc967e8b236f77132d8eeb Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 4 Dec 2016 20:35:47 +0100 +Subject: [PATCH 24/30] Fix macro invoking moc, rcc and uic + +* Otherwise the arguments aren't passed correctly leading to errors like + ``` + [ 3%] Generating qca_core.moc + moc: Too many input files specified: 'Qt5::moc' '/build/qca-qt5/src/qca-2.1.3/include/QtCrypto/qca_safetimer.h' + ``` +* Just a workaround, not sure what is causing the issue (maybe a CMake bug?) +* See https://github.com/Martchus/PKGBUILDs/issues/11 + +Change-Id: I6fde86d0a3ade37b4376604a1eb6d5723eda8b4c +--- + src/corelib/Qt5CoreMacros.cmake | 9 ++++++--- + src/widgets/Qt5WidgetsMacros.cmake | 3 ++- + 2 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/src/corelib/Qt5CoreMacros.cmake b/src/corelib/Qt5CoreMacros.cmake +index 23909c9f3f..0fa0f187cd 100644 +--- a/src/corelib/Qt5CoreMacros.cmake ++++ b/src/corelib/Qt5CoreMacros.cmake +@@ -132,8 +132,9 @@ function(QT5_CREATE_MOC_COMMAND infile outfile moc_flags moc_options moc_target + endif() + + set(_moc_extra_parameters_file @${_moc_parameters_file}) ++ get_target_property(MOC_LOC ${Qt5Core_MOC_EXECUTABLE} IMPORTED_LOCATION) + add_custom_command(OUTPUT ${outfile} +- COMMAND ${Qt5Core_MOC_EXECUTABLE} ${_moc_extra_parameters_file} ++ COMMAND ${MOC_LOC} ${_moc_extra_parameters_file} + DEPENDS ${infile} ${moc_depends} + ${_moc_working_dir} + VERBATIM) +@@ -251,8 +252,9 @@ function(QT5_ADD_BINARY_RESOURCES target ) + set(rc_depends ${rc_depends} ${_rc_depends}) + endforeach() + ++ get_target_property(RCC_LOC ${Qt5Core_RCC_EXECUTABLE} IMPORTED_LOCATION) + add_custom_command(OUTPUT ${rcc_destination} +- COMMAND ${Qt5Core_RCC_EXECUTABLE} ++ COMMAND ${RCC_LOC} + ARGS ${rcc_options} --binary --name ${target} --output ${rcc_destination} ${infiles} + DEPENDS ${rc_depends} ${out_depends} VERBATIM) + +@@ -284,8 +286,9 @@ function(QT5_ADD_RESOURCES outfiles ) + + _QT5_PARSE_QRC_FILE(${infile} _out_depends _rc_depends) + ++ get_target_property(MOC_LOC ${Qt5Core_RCC_EXECUTABLE} IMPORTED_LOCATION) + add_custom_command(OUTPUT ${outfile} +- COMMAND ${Qt5Core_RCC_EXECUTABLE} ++ COMMAND ${MOC_LOC} + ARGS ${rcc_options} --name ${outfilename} --output ${outfile} ${infile} + MAIN_DEPENDENCY ${infile} + DEPENDS ${_rc_depends} "${out_depends}" VERBATIM) +diff --git a/src/widgets/Qt5WidgetsMacros.cmake b/src/widgets/Qt5WidgetsMacros.cmake +index f5e7b7f050..18d120f0c7 100644 +--- a/src/widgets/Qt5WidgetsMacros.cmake ++++ b/src/widgets/Qt5WidgetsMacros.cmake +@@ -55,8 +55,9 @@ function(QT5_WRAP_UI outfiles ) + get_filename_component(outfile ${it} NAME_WE) + get_filename_component(infile ${it} ABSOLUTE) + set(outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${outfile}.h) ++ get_target_property(UIC_LOC ${Qt5Widgets_UIC_EXECUTABLE} IMPORTED_LOCATION) + add_custom_command(OUTPUT ${outfile} +- COMMAND ${Qt5Widgets_UIC_EXECUTABLE} ++ COMMAND ${UIC_LOC} + ARGS ${ui_options} -o ${outfile} ${infile} + MAIN_DEPENDENCY ${infile} VERBATIM) + list(APPEND ${outfiles} ${outfile}) +-- +2.12.2 + diff --git a/0025-Ignore-errors-about-missing-feature-static.patch b/0025-Ignore-errors-about-missing-feature-static.patch new file mode 100644 index 0000000..3052af4 --- /dev/null +++ b/0025-Ignore-errors-about-missing-feature-static.patch @@ -0,0 +1,36 @@ +From d66dd7d23bc3586779e23297ae61cefe2c69e9fb Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Wed, 25 Jan 2017 20:59:54 +0100 +Subject: [PATCH 25/30] Ignore errors about missing feature static + +Not sure why this error occurs, let's hope for the best +--- + mkspecs/features/qt_build_config.prf | 2 +- + mkspecs/features/qt_functions.prf | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf +index 3762c14f98..a58200a297 100644 +--- a/mkspecs/features/qt_build_config.prf ++++ b/mkspecs/features/qt_build_config.prf +@@ -132,5 +132,5 @@ defineTest(qtConfig) { + contains(QT.$${module}.disabled_features, $$1): \ + return(false) + } +- error("Could not find feature $${1}.") ++ !equals($$1, "static"): error("Could not find feature $${1}.") + } +diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf +index 999cd18154..6bf08ea583 100644 +--- a/mkspecs/features/qt_functions.prf ++++ b/mkspecs/features/qt_functions.prf +@@ -349,5 +349,5 @@ defineTest(qtConfig) { + contains(QT.$${module}.disabled_features, $$1): \ + return(false) + } +- error("Could not find feature $${1}.") ++ !equals($$1, "static"): error("Could not find feature $${1}.") + } +-- +2.12.2 + diff --git a/0026-Enable-and-fix-use-of-iconv.patch b/0026-Enable-and-fix-use-of-iconv.patch new file mode 100644 index 0000000..7987797 --- /dev/null +++ b/0026-Enable-and-fix-use-of-iconv.patch @@ -0,0 +1,83 @@ +From f1909b3049c85c990da430b5842edcd2060e7529 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Wed, 25 Jan 2017 21:08:20 +0100 +Subject: [PATCH 26/30] Enable and fix use of iconv + +Change-Id: I5f0ab27afca0800dec11c7af74d196190820ae5c +--- + config.tests/unix/gnu-libiconv/gnu-libiconv.cpp | 2 +- + src/corelib/codecs/qiconvcodec.cpp | 7 +++---- + src/corelib/configure.json | 4 ++-- + 3 files changed, 6 insertions(+), 7 deletions(-) + +diff --git a/config.tests/unix/gnu-libiconv/gnu-libiconv.cpp b/config.tests/unix/gnu-libiconv/gnu-libiconv.cpp +index 1276311e08..993a12c7ee 100644 +--- a/config.tests/unix/gnu-libiconv/gnu-libiconv.cpp ++++ b/config.tests/unix/gnu-libiconv/gnu-libiconv.cpp +@@ -46,7 +46,7 @@ int main(int, char **) + { + iconv_t x = iconv_open("", ""); + +- const char *inp; ++ char *inp; + char *outp; + size_t inbytes, outbytes; + iconv(x, &inp, &inbytes, &outp, &outbytes); +diff --git a/src/corelib/codecs/qiconvcodec.cpp b/src/corelib/codecs/qiconvcodec.cpp +index e4fb359f2c..771b1fa9f2 100644 +--- a/src/corelib/codecs/qiconvcodec.cpp ++++ b/src/corelib/codecs/qiconvcodec.cpp +@@ -50,7 +50,6 @@ QT_REQUIRE_CONFIG(iconv); + #include + #include + #include +-#include + + // unistd.h is needed for the _XOPEN_UNIX macro + #include +@@ -183,7 +182,7 @@ QString QIconvCodec::convertToUnicode(const char* chars, int len, ConverterState + IconvState *state = *pstate; + size_t inBytesLeft = len; + // best case assumption, each byte is converted into one UTF-16 character, plus 2 bytes for the BOM +-#if !QT_CONFIG(posix_libiconv) ++#if !QT_CONFIG(posix_libiconv) && !defined(Q_OS_WIN) + // GNU doesn't disagree with POSIX :/ + const char *inBytes = chars; + #else +@@ -282,7 +281,7 @@ static bool setByteOrder(iconv_t cd) + size_t outBytesLeft = sizeof buf; + size_t inBytesLeft = sizeof bom; + +-#if !QT_CONFIG(posix_libiconv) ++#if !QT_CONFIG(posix_libiconv) && !defined(Q_OS_WIN) + const char **inBytesPtr = const_cast(&inBytes); + #else + char **inBytesPtr = &inBytes; +@@ -304,7 +303,7 @@ QByteArray QIconvCodec::convertFromUnicode(const QChar *uc, int len, ConverterSt + char *outBytes; + size_t inBytesLeft; + +-#if !QT_CONFIG(posix_libiconv) ++#if !QT_CONFIG(posix_libiconv) && !defined(Q_OS_WIN) + const char **inBytesPtr = const_cast(&inBytes); + #else + char **inBytesPtr = &inBytes; +diff --git a/src/corelib/configure.json b/src/corelib/configure.json +index 0d1954c3a8..32bbe92f57 100644 +--- a/src/corelib/configure.json ++++ b/src/corelib/configure.json +@@ -263,9 +263,9 @@ + }, + "gnu-libiconv": { + "label": "GNU iconv", +- "enable": "input.iconv == 'gnu'", ++ "enable": "'enabling via -gnu-iconv fails' == 'enabling via -gnu-iconv fails'", + "disable": "input.iconv == 'posix' || input.iconv == 'sun' || input.iconv == 'no'", +- "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && !features.sun-libiconv && libs.gnu_iconv", ++ "condition": "!config.qnx && !config.android && !config.darwin && !features.posix-libiconv && !features.sun-libiconv && libs.gnu_iconv", + "output": [ "privateFeature" ] + }, + "icu": { +-- +2.12.2 + diff --git a/0027-Ignore-failing-pkg-config-test.patch b/0027-Ignore-failing-pkg-config-test.patch new file mode 100644 index 0000000..c0e6333 --- /dev/null +++ b/0027-Ignore-failing-pkg-config-test.patch @@ -0,0 +1,25 @@ +From 180c51b31bfb37355eb63d2ce7b375d242533c1e Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Wed, 25 Jan 2017 21:08:48 +0100 +Subject: [PATCH 27/30] Ignore failing pkg-config test + +Didn't investigate why it fails, let's hope for the best +--- + configure.json | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/configure.json b/configure.json +index 12714da714..adc54e439c 100644 +--- a/configure.json ++++ b/configure.json +@@ -472,7 +472,6 @@ + "pkg-config": { + "label": "Using pkg-config", + "autoDetect": "!config.darwin && !config.win32", +- "condition": "tests.pkg-config", + "output": [ + "publicFeature", + { "type": "publicQtConfig", "negative": true }, +-- +2.12.2 + diff --git a/0028-Include-uiviewsettingsinterop.h-correctly.patch b/0028-Include-uiviewsettingsinterop.h-correctly.patch new file mode 100644 index 0000000..6840355 --- /dev/null +++ b/0028-Include-uiviewsettingsinterop.h-correctly.patch @@ -0,0 +1,25 @@ +From 101d2b3b5317ca5fab2dfead3982c37fe9682e94 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Wed, 25 Jan 2017 23:41:16 +0100 +Subject: [PATCH 28/30] Include uiviewsettingsinterop.h correctly + +--- + src/plugins/platforms/windows/qwin10helpers.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/plugins/platforms/windows/qwin10helpers.cpp b/src/plugins/platforms/windows/qwin10helpers.cpp +index 977bbfd11b..12cccd124b 100644 +--- a/src/plugins/platforms/windows/qwin10helpers.cpp ++++ b/src/plugins/platforms/windows/qwin10helpers.cpp +@@ -57,7 +57,7 @@ + #endif + + #ifdef HAS_UI_VIEW_SETTINGS_INTEROP +-# include ++# include + #endif + + #ifndef HAS_UI_VIEW_SETTINGS_INTEROP +-- +2.12.2 + diff --git a/0029-Hardcode-linker-flags-for-libqwindows.dll.patch b/0029-Hardcode-linker-flags-for-libqwindows.dll.patch new file mode 100644 index 0000000..ebae87d --- /dev/null +++ b/0029-Hardcode-linker-flags-for-libqwindows.dll.patch @@ -0,0 +1,45 @@ +From bff29dca9fb69fd29dc4b741652429cbdfb4bf50 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Wed, 25 Jan 2017 23:42:30 +0100 +Subject: [PATCH 29/30] Hardcode linker flags for libqwindows.dll + +Otherwise incorrect order of libs leads to linker +errors +--- + src/plugins/platforms/windows/windows.pro | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + +diff --git a/src/plugins/platforms/windows/windows.pro b/src/plugins/platforms/windows/windows.pro +index 23168c10dc..e27cf1a248 100644 +--- a/src/plugins/platforms/windows/windows.pro ++++ b/src/plugins/platforms/windows/windows.pro +@@ -1,11 +1,22 @@ + TARGET = qwindows + + QT += \ +- core-private gui-private \ +- eventdispatcher_support-private accessibility_support-private \ +- fontdatabase_support-private theme_support-private ++ core-private gui-private + +-LIBS += -lgdi32 -ldwmapi ++# Fix linker error when building libqwindows.dll by specifying linker flags for ++# required modules manually (otherwise order is messed) ++LIBS += \ ++ -lQt5EventDispatcherSupport \ ++ -lQt5AccessibilitySupport \ ++ -lQt5FontDatabaseSupport \ ++ -lQt5ThemeSupport \ ++ -lfreetype -lole32 -lgdi32 -ldwmapi ++# However, this workaround leads to the necessity of specifying include dirs manually ++INCLUDEPATH += \ ++ $$QT_SOURCE_TREE/include/QtEventDispatcherSupport/5.8.0 \ ++ $$QT_SOURCE_TREE/include/QtAccessibilitySupport/5.8.0 \ ++ $$QT_SOURCE_TREE/include/QtFontDatabaseSupport/5.8.0 \ ++ $$QT_SOURCE_TREE/include/QtThemeSupport/5.8.0 + + include(windows.pri) + +-- +2.12.2 + diff --git a/0030-Prevent-qmake-from-messing-static-lib-dependencies.patch b/0030-Prevent-qmake-from-messing-static-lib-dependencies.patch new file mode 100644 index 0000000..98d0fbe --- /dev/null +++ b/0030-Prevent-qmake-from-messing-static-lib-dependencies.patch @@ -0,0 +1,43 @@ +From 8409e69154755c1f8a23fcf4321e76a36342c79e Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Tue, 7 Feb 2017 18:25:28 +0100 +Subject: [PATCH 30/30] Prevent qmake from messing static lib dependencies + +In particular, it messes resolving cyclic dependency between +static freetype2 and harfbuzz +--- + qmake/generators/unix/unixmake.cpp | 3 +++ + qmake/generators/win32/winmakefile.cpp | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp +index 349dcd2f40..f6d3d1fa29 100644 +--- a/qmake/generators/unix/unixmake.cpp ++++ b/qmake/generators/unix/unixmake.cpp +@@ -394,6 +394,9 @@ UnixMakefileGenerator::fixLibFlag(const ProString &lib) + bool + UnixMakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags) + { ++ if(project->isActiveConfig("staticlib")) { ++ return false; // prevent qmake from messing static lib dependencies ++ } + QList libdirs, frameworkdirs; + int libidx = 0, fwidx = 0; + for (const ProString &dlib : project->values("QMAKE_DEFAULT_LIBDIRS")) +diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp +index e6338546bb..2407d26a5a 100644 +--- a/qmake/generators/win32/winmakefile.cpp ++++ b/qmake/generators/win32/winmakefile.cpp +@@ -87,6 +87,9 @@ Win32MakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags) + impexts.append(project->values("QMAKE_EXTENSION_IMPORTLIB")); + impexts.append(project->values("QMAKE_EXTENSION_STATICLIB")); + } ++ if(project->isActiveConfig("staticlib")) { ++ return false; // prevent qmake from messing static lib dependencies ++ } + QList dirs; + static const char * const lflags[] = { "QMAKE_LIBS", "QMAKE_LIBS_PRIVATE", 0 }; + for (int i = 0; lflags[i]; i++) { +-- +2.12.2 + diff --git a/mingw-qt5-qtbase.spec b/mingw-qt5-qtbase.spec index e3bd998..7b2f8bb 100644 --- a/mingw-qt5-qtbase.spec +++ b/mingw-qt5-qtbase.spec @@ -6,44 +6,41 @@ #%%global pre rc1 -#%%global snapshot_date 20121110 -#%%global snapshot_rev d725239c +#global commit d725239c3e09c2b740a093265f6a9675fd2f8524 +#global shortcommit %(c=%{commit}; echo ${c:0:7}) -%if 0%{?snapshot_date} -%global source_folder qt-qtbase +%if 0%{?commit:1} +%global source_folder %{qt_module}-%{commit} %else -%global source_folder qtbase-opensource-src-%{version}%{?pre:-%{pre}} +%global source_folder %{qt_module}-opensource-src-%{version}%{?pre:-%{pre}} %endif # first two digits of version %global release_version %(echo %{version} | awk -F. '{print $1"."$2}') Name: mingw-qt5-qtbase -Version: 5.7.1 -Release: 3%{?pre:.%{pre}}%{?snapshot_date:.git%{snapshot_date}.%{snapshot_rev}}%{?dist} +Version: 5.8.0 +Release: 1%{?pre:.%pre}%{?commit:.git%{shortcommit}}%{?dist} Summary: Qt5 for Windows - QtBase component +# See LGPL_EXCEPTIONS.txt, for exception details License: GPLv3 with exceptions or LGPLv2 with exceptions URL: http://qt.io/ -%if 0%{?snapshot_date} -# To regenerate: -# wget http://qt.gitorious.org/qt/qtbase/archive-tarball/%{snapshot_rev} -O qt5-qtbase-%{snapshot_rev}.tar.gz -Source0: qt5-qtbase-%{snapshot_rev}.tar.gz +%if 0%{?commit:1} +Source0: https://github.com/qt/%{qt_module}/archive/%{commit}/%{qt_module}-opensource-src-%{commit}.tar.gz %else -%if "%{?pre}" != "" -Source0: http://download.qt-project.org/development_releases/qt/%{release_version}/%{version}-%{pre}/submodules/qtbase-opensource-src-%{version}-%{pre}.tar.xz -%else -Source0: http://download.qt-project.org/official_releases/qt/%{release_version}/%{version}/submodules/qtbase-opensource-src-%{version}.tar.xz -%endif +Source0: http://download.qt-project.org/%{?pre:development}%{?!pre:official}_releases/qt/%{release_version}/%{version}%{?pre:-%pre}/submodules/%{qt_module}-opensource-src-%{version}%{?pre:-%pre}.tar.xz %endif -# Add support for Angle and opengl dynamic configure switch -# It makes no sense to upstream this yet as upstream Angle only supports using static libraries -Patch1: 0001-Support-ANGLE-switches-via-configure-shell-script.patch +# Taken from +# https://github.com/Martchus/PKGBUILDs/tree/master/qt5-base/mingw-w64-angle + +# Patch the win32-g++ mkspecs profile to match our environment +Patch1: 0001-Add-profile-for-cross-compilation-with-mingw-w64.patch # Unbundle angle -Patch2: 0002-Use-external-ANGLE-library.patch +Patch3: 0003-Use-external-ANGLE-library.patch # Make sure the .pc files of the Qt5 modules are installed correctly # This should prevent (silent) failures like: @@ -53,12 +50,10 @@ Patch2: 0002-Use-external-ANGLE-library.patch # # This issue was discovered during the review of mingw-qt5-qttools: # https://bugzilla.redhat.com/show_bug.cgi?id=858080 -# UPSTREAMABLE -Patch3: 0003-Make-sure-.pc-files-are-installed-correctly.patch +Patch5: 0005-Make-sure-.pc-files-are-installed-correctly.patch # Solves generated pkg-config files containing invalid Libs.private references like .obj/debug/Qt5Cored_resource_res.o -# UPSTREAMABLE -Patch4: 0004-Don-t-add-resource-files-to-LIBS-parameter.patch +Patch6: 0006-Don-t-add-resource-files-to-LIBS-parameter.patch # qmake generates the pkgconfig .pc files two times, once for the # release build and once for the debug build (which we're not actually @@ -67,86 +62,77 @@ Patch4: 0004-Don-t-add-resource-files-to-LIBS-parameter.patch # build ending up in the .pc files which are unwanted # Prevent this from happening by giving the pkgconfig .pc # files for the debug build an unique file name -# UPSTREAMABLE -Patch5: 0005-Prevent-debug-library-names-in-pkg-config-files.patch - -# Static DBus detection broken since 5.4.1 -# UPSTREAMABLE -Patch6: 0006-Fix-linking-against-static-D-Bus.patch - -# Patch the win32-g++ mkspecs profile to match our environment -Patch7: 0007-Adjust-win32-g-mkspecs-profile.patch - -# Static Harfbuzz detection broken since 5.4.1 -# UPSTREAMABLE -Patch8: 0008-Fix-linking-against-external-harfbuzz.patch +Patch7: 0007-Prevent-debug-library-names-in-pkg-config-files.patch -# Fix some compilation issues due to using the system pre version when building static qmake projects -Patch9: 0009-Fix-linking-against-static-pcre.patch +Patch8: 0008-Fix-linking-against-shared-static-libpng.patch +Patch9: 0009-Fix-linking-against-static-D-Bus.patch +Patch10: 0010-Fix-linking-against-static-freetype2.patch +Patch11: 0011-Fix-linking-against-static-harfbuzz.patch +Patch12: 0012-Fix-linking-against-static-pcre.patch +Patch13: 0013-Fix-linking-against-shared-static-MariaDB.patch +Patch14: 0014-Fix-linking-against-shared-static-PostgreSQL.patch # Avoid conflicts between the static qtmain library and the one provided by mingw-qt4. # The mkspecs profile is already updated by Adjust-win32-g-mkspecs-profile.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1092465 -Patch10: 0010-Rename-qtmain-to-qt5main.patch +Patch15: 0015-Rename-qtmain-to-qt5main.patch # Upstream always wants the host libraries to be static instead of shared. # This violates the packaging guidelines so disable this 'feature'. -Patch11: 0011-Build-dynamic-host-libraries.patch +Patch16: 0016-Build-dynamic-host-libraries.patch # We have to use rpath for host tools as the library which the various tools # depend on (libQt5Bootstrap.so) resides in the folder /usr/$mingw_target/lib. # Using the regular %%_libdir would cause conflicts with the native qt5 packages. -Patch12: 0012-Enable-rpath-for-build-tools.patch +Patch17: 0017-Enable-rpath-for-build-tools.patch # Use system zlib for host libs. Not upstreamable as-is due to the other host-libs patches. -Patch13: 0013-Use-system-zlib-for-build-tools.patch +Patch18: 0018-Use-system-zlib-for-build-tools.patch + +Patch19: 0019-Disable-determing-default-include-and-lib-dirs-at-qm.patch # Fix qmake to create implibs with .dll.a extension for MinGW -# UPSTREAMABLE -Patch14: 0014-Use-.dll.a-as-import-lib-extension.patch +Patch20: 0020-Use-.dll.a-as-import-lib-extension.patch # When building Qt as static library some files have a different content # when compared to the static library. Merge those changes manually. # This patch also applies some additional changes which are required to make # linking against the static version of Qt work without any manual fiddling -Patch15: 0015-Merge-shared-and-static-library-trees.patch +Patch21: 0021-Merge-shared-and-static-library-trees.patch # Allow using the static version with CMake -# Patch16: 0016-Allow-usage-of-static-version-with-CMake.patch +Patch22: 0022-Allow-usage-of-static-version-with-CMake.patch # The --static flags should be used to detect static libraries with pkg-config. -# UPSTREAMABLE -Patch17: 0017-Use-correct-pkg-config-static-flag.patch +Patch23: 0023-Use-correct-pkg-config-static-flag.patch # https://github.com/Martchus/PKGBUILDs/issues/11 -Patch18: 0018-Fix-qt5_wrap_ui-macro.patch +Patch24: 0024-Fix-macro-invoking-moc-rcc-and-uic.patch -# Prevent the pkgconfig files from containing references to /libQt5Core.dll.a for Libs.private -Patch19: 0019-Pkgconfig-static-library-name-workaround.patch +# TODO Needs investigating +Patch25: 0025-Ignore-errors-about-missing-feature-static.patch + +Patch26: 0026-Enable-and-fix-use-of-iconv.patch + +# Together with Patch25 +Patch27: 0027-Ignore-failing-pkg-config-test.patch + +# Fix case sensitivity error in include +Patch28: 0028-Include-uiviewsettingsinterop.h-correctly.patch + +# Fix incorrect order of libs leading to linker errors +Patch29: 0029-Hardcode-linker-flags-for-libqwindows.dll.patch + +Patch30: 0030-Prevent-qmake-from-messing-static-lib-dependencies.patch -# Don't include the native libdir to the default libdirs when crosscompiling -# Fixes -lQt5Bootstrap not found due to missing -L (module libdirs are filtered by QMAKE_DEFAULT_LIBDIRS) -# See https://bugreports.qt.io/browse/QTBUG-58126 -Patch20: 0020-Workaround-native-libdir-appearing-in-QMAKE_DEFAULT_.patch # Change the lookup order of the crypto libraries to ensure OpenSSL is preferred # See https://bugzilla.redhat.com/show_bug.cgi?id=1438740 -Patch21: qt5-qtbase_change-crypto-lookup-order.patch +Patch100: qt5-qtbase_change-crypto-lookup-order.patch -# Fix build -# error: invalid application of 'sizeof' to incomplete type 'QMimeMagicRuleMatcher' -Patch22: qt5-qtbase_fix-build.patch - -# ArchLinux has some more patches which might be of interest: -# https://github.com/Martchus/PKGBUILDs/tree/master/qt5-base/mingw-w64-angle -# - 0001-Fix-qwindows-plugin-linking-with-system-freetype.patch -# - 0002-Fix-oci-config-test-on-windows.patch -# - 0003-Don-t-set-QT_NO_SYSTEMSEMAPHORE-for-Windows.patch -# - 0004-Fix-building-mysql-driver-under-mingw.patch -# - 0007-Fix-too-many-sections-assemler-error-in-OpenGL-facto.patch -# - 0019-Disable-determing-default-include-and-lib-dirs-at-qm.patch -# - 0024-Use-shared-static-version-of-MariaDB.patch -# - 0025-Use-shared-static-version-of-PostgreSQL.patch +# HACK Don't include the native libdir to the default libdirs when crosscompiling +# Fixes -lQt5Bootstrap not found due to missing -L (module libdirs are filtered by QMAKE_DEFAULT_LIBDIRS) +Patch101: qt5-qtbase_workaround-native-libdir-appearing-in-QMAKE_DEFAULT_LIBDIRS.patch BuildRequires: mingw32-filesystem >= 95 @@ -171,6 +157,10 @@ BuildRequires: mingw32-pcre-static BuildRequires: mingw32-sqlite-static BuildRequires: mingw32-gstreamer1 BuildRequires: mingw32-winpthreads-static +BuildRequires: mingw32-win-iconv-static +BuildRequires: mingw32-libjpeg-turbo-static +BuildRequires: mingw32-libpng-static +BuildRequires: mingw32-zlib-static BuildRequires: mingw64-filesystem >= 95 BuildRequires: mingw64-gcc @@ -194,6 +184,10 @@ BuildRequires: mingw64-pcre-static BuildRequires: mingw64-sqlite-static BuildRequires: mingw64-gstreamer1 BuildRequires: mingw64-winpthreads-static +BuildRequires: mingw64-win-iconv-static +BuildRequires: mingw64-libjpeg-turbo-static +BuildRequires: mingw64-libpng-static +BuildRequires: mingw64-zlib-static BuildRequires: zip BuildRequires: dos2unix @@ -317,6 +311,10 @@ Static version of the mingw64-qt5-qtbase library. %prep %autosetup -p1 -n %{source_folder} +%if 0%{?commit:1} +# Make sure the syncqt tool is run when using a git snapshot +mkdir .git +%endif # Remove bundled ANGLE rm -rf src/3rdparty/angle include/QtANGLE/{EGL,GLES2,KHR} @@ -327,28 +325,31 @@ rm -rf src/3rdparty/{pcre,zlib} %build # Generic configure arguments qt_configure_args_generic="\ - -xplatform win32-g++ \ + -xplatform mingw-w64-g++ \ -optimized-qmake \ -verbose \ -opensource \ -confirm-license \ -force-pkg-config \ -force-debug-info \ - -audio-backend \ -system-zlib \ - -system-harfbuzz \ -system-libpng \ -system-libjpeg \ -system-sqlite \ + -system-harfbuzz \ + -system-freetype \ + -system-pcre \ -no-fontconfig \ - -iconv \ + -sql-sqlite \ -openssl \ - -dbus-linked \ -no-glib \ -no-icu \ + -iconv \ -release \ -nomake examples \ - -opengl desktop \ + -no-direct2d \ + -opengl dynamic \ + -DGL_GLEXT_PROTOTYPES \ -make tools" # The odd paths for the -hostbindir argument are on purpose. @@ -398,12 +399,14 @@ unset PKG_CONFIG_PATH # # Unfortunately Qt only supports out-of-source builds which are in ../some_folder +# FIXME Ugly pkg-config hacks to pick up dbus, freetype cflags + ############################################################################### # Win32 rm -rf ../build_release_static_win32 mkdir ../build_release_static_win32 pushd ../build_release_static_win32 -../%{source_folder}/configure -static $qt_configure_args_win32 $qt_configure_args_generic +../%{source_folder}/configure -static $qt_configure_args_win32 $qt_configure_args_generic `%{mingw32_target}-pkg-config libpng` `%{mingw32_target}-pkg-config --cflags-only-I freetype2 dbus-1` %make_build popd @@ -413,7 +416,7 @@ popd rm -rf ../build_release_shared_win32 mkdir ../build_release_shared_win32 pushd ../build_release_shared_win32 -../%{source_folder}/configure -shared $qt_configure_args_win32 $qt_configure_args_generic +../%{source_folder}/configure -shared $qt_configure_args_win32 $qt_configure_args_generic `%{mingw32_target}-pkg-config libpng` `%{mingw32_target}-pkg-config --cflags-only-I freetype2 dbus-1` LD_LIBRARY_PATH=$PWD/lib %make_build popd @@ -422,14 +425,14 @@ popd rm -rf ../build_release_static_win64 mkdir ../build_release_static_win64 pushd ../build_release_static_win64 -../%{source_folder}/configure -static $qt_configure_args_win64 $qt_configure_args_generic +../%{source_folder}/configure -static $qt_configure_args_win64 $qt_configure_args_generic `%{mingw64_target}-pkg-config libpng` `%{mingw64_target}-pkg-config --cflags-only-I freetype2 dbus-1` %make_build popd rm -rf ../build_release_shared_win64 mkdir ../build_release_shared_win64 pushd ../build_release_shared_win64 -../%{source_folder}/configure -shared $qt_configure_args_win64 $qt_configure_args_generic +../%{source_folder}/configure -shared $qt_configure_args_win64 $qt_configure_args_generic `%{mingw64_target}-pkg-config libpng` `%{mingw64_target}-pkg-config --cflags-only-I freetype2 dbus-1` LD_LIBRARY_PATH=$PWD/lib %make_build popd @@ -518,6 +521,7 @@ ln -s %{mingw64_target}-qmake-qt5 %{buildroot}%{_bindir}/mingw64-qmake-qt5 # Win32 %files -n mingw32-qt5-qtbase +%license LICENSE.LGPL* LGPL_EXCEPTION.txt LICENSE.FDL %{mingw32_bindir}/Qt5Concurrent.dll %{mingw32_bindir}/Qt5Core.dll %{mingw32_bindir}/Qt5DBus.dll @@ -547,7 +551,6 @@ ln -s %{mingw64_target}-qmake-qt5 %{buildroot}%{_bindir}/mingw64-qmake-qt5 %{mingw32_libdir}/pkgconfig/Qt5Gui.pc %{mingw32_libdir}/pkgconfig/Qt5Network.pc %{mingw32_libdir}/pkgconfig/Qt5OpenGL.pc -%{mingw32_libdir}/pkgconfig/Qt5OpenGLExtensions.pc %{mingw32_libdir}/pkgconfig/Qt5PrintSupport.pc %{mingw32_libdir}/pkgconfig/Qt5Sql.pc %{mingw32_libdir}/pkgconfig/Qt5Test.pc @@ -567,6 +570,7 @@ ln -s %{mingw64_target}-qmake-qt5 %{buildroot}%{_bindir}/mingw64-qmake-qt5 %dir %{mingw32_libdir}/qt5/plugins/platforms %{mingw32_libdir}/qt5/plugins/platforms/qminimal.dll %{mingw32_libdir}/qt5/plugins/platforms/qwindows.dll +%{mingw32_libdir}/qt5/plugins/platforms/qoffscreen.dll %dir %{mingw32_libdir}/qt5/plugins/printsupport %{mingw32_libdir}/qt5/plugins/printsupport/windowsprintersupport.dll %dir %{mingw32_libdir}/qt5/plugins/sqldrivers @@ -580,31 +584,36 @@ ln -s %{mingw64_target}-qmake-qt5 %{buildroot}%{_bindir}/mingw64-qmake-qt5 %{mingw32_libdir}/cmake/Qt5Gui/ %{mingw32_libdir}/cmake/Qt5Network/ %{mingw32_libdir}/cmake/Qt5OpenGL/ -%{mingw32_libdir}/cmake/Qt5OpenGLExtensions/ %{mingw32_libdir}/cmake/Qt5PrintSupport/ %{mingw32_libdir}/cmake/Qt5Sql/ %{mingw32_libdir}/cmake/Qt5Test/ %{mingw32_libdir}/cmake/Qt5Widgets/ %{mingw32_libdir}/cmake/Qt5Xml/ %dir %{mingw32_includedir}/qt5/ +%{mingw32_includedir}/qt5/QtAccessibilitySupport/ %{mingw32_includedir}/qt5/QtConcurrent/ %{mingw32_includedir}/qt5/QtCore/ %{mingw32_includedir}/qt5/QtDBus/ +%{mingw32_includedir}/qt5/QtDeviceDiscoverySupport/ +%{mingw32_includedir}/qt5/QtEventDispatcherSupport/ +%{mingw32_includedir}/qt5/QtFbSupport/ +%{mingw32_includedir}/qt5/QtFontDatabaseSupport/ %{mingw32_includedir}/qt5/QtGui/ %{mingw32_includedir}/qt5/QtNetwork/ %{mingw32_includedir}/qt5/QtOpenGL/ %{mingw32_includedir}/qt5/QtOpenGLExtensions/ +%{mingw32_includedir}/qt5/QtPlatformCompositorSupport/ %{mingw32_includedir}/qt5/QtPlatformHeaders/ -%{mingw32_includedir}/qt5/QtPlatformSupport/ %{mingw32_includedir}/qt5/QtPrintSupport/ %{mingw32_includedir}/qt5/QtSql/ %{mingw32_includedir}/qt5/QtTest/ +%{mingw32_includedir}/qt5/QtThemeSupport/ %{mingw32_includedir}/qt5/QtWidgets/ %{mingw32_includedir}/qt5/QtXml/ %{mingw32_docdir}/qt5/ %files -n mingw32-qt5-qmake -%doc LGPL_EXCEPTION.txt LICENSE.FDL LICENSE.LGPLv21 LICENSE.LGPLv3 LICENSE.PREVIEW.COMMERCIAL + %{_bindir}/%{mingw32_target}-moc-qt5 %{_bindir}/%{mingw32_target}-qdbuscpp2xml-qt5 %{_bindir}/%{mingw32_target}-qdbusxml2cpp-qt5 @@ -638,32 +647,13 @@ ln -s %{mingw64_target}-qmake-qt5 %{buildroot}%{_bindir}/mingw64-qmake-qt5 %{_prefix}/%{mingw32_target}/lib/libQt5BootstrapDBus.so %files -n mingw32-qt5-qtbase-static -%{mingw32_libdir}/libQt5Concurrent.a -%{mingw32_libdir}/libQt5Core.a -%{mingw32_libdir}/libQt5DBus.a -%{mingw32_libdir}/libQt5Gui.a -%{mingw32_libdir}/libQt5Network.a -%{mingw32_libdir}/libQt5OpenGL.a -%{mingw32_libdir}/libQt5OpenGLExtensions.a -%{mingw32_libdir}/libQt5PlatformSupport.a -%{mingw32_libdir}/libQt5PrintSupport.a -%{mingw32_libdir}/libQt5Sql.a -%{mingw32_libdir}/libQt5Test.a -%{mingw32_libdir}/libQt5Widgets.a -%{mingw32_libdir}/libQt5Xml.a -%{mingw32_libdir}/libqgenericbearer.a -%{mingw32_libdir}/libqico.a -%{mingw32_libdir}/libqminimal.a -%{mingw32_libdir}/libqnativewifibearer.a -%{mingw32_libdir}/libqsqlite.a -%{mingw32_libdir}/libqsqlodbc.a -%{mingw32_libdir}/libqtpng.a -%{mingw32_libdir}/libqtuiotouchplugin.a -%{mingw32_libdir}/libqwindows.a -%{mingw32_libdir}/libwindowsprintersupport.a +%{mingw32_libdir}/*.a +%{mingw32_libdir}/cmake/StaticQt5OpenGLExtensions/ +%{mingw32_libdir}/pkgconfig/StaticQt5OpenGLExtensions.pc # Win64 %files -n mingw64-qt5-qtbase +%license LICENSE.LGPL* LGPL_EXCEPTION.txt LICENSE.FDL %{mingw64_bindir}/Qt5Concurrent.dll %{mingw64_bindir}/Qt5Core.dll %{mingw64_bindir}/Qt5DBus.dll @@ -693,7 +683,6 @@ ln -s %{mingw64_target}-qmake-qt5 %{buildroot}%{_bindir}/mingw64-qmake-qt5 %{mingw64_libdir}/pkgconfig/Qt5Gui.pc %{mingw64_libdir}/pkgconfig/Qt5Network.pc %{mingw64_libdir}/pkgconfig/Qt5OpenGL.pc -%{mingw64_libdir}/pkgconfig/Qt5OpenGLExtensions.pc %{mingw64_libdir}/pkgconfig/Qt5PrintSupport.pc %{mingw64_libdir}/pkgconfig/Qt5Sql.pc %{mingw64_libdir}/pkgconfig/Qt5Test.pc @@ -711,6 +700,7 @@ ln -s %{mingw64_target}-qmake-qt5 %{buildroot}%{_bindir}/mingw64-qmake-qt5 %{mingw64_libdir}/qt5/plugins/imageformats/qico.dll %{mingw64_libdir}/qt5/plugins/imageformats/qjpeg.dll %dir %{mingw64_libdir}/qt5/plugins/platforms +%{mingw64_libdir}/qt5/plugins/platforms/qoffscreen.dll %{mingw64_libdir}/qt5/plugins/platforms/qminimal.dll %{mingw64_libdir}/qt5/plugins/platforms/qwindows.dll %dir %{mingw64_libdir}/qt5/plugins/printsupport @@ -726,31 +716,16 @@ ln -s %{mingw64_target}-qmake-qt5 %{buildroot}%{_bindir}/mingw64-qmake-qt5 %{mingw64_libdir}/cmake/Qt5Gui/ %{mingw64_libdir}/cmake/Qt5Network/ %{mingw64_libdir}/cmake/Qt5OpenGL/ -%{mingw64_libdir}/cmake/Qt5OpenGLExtensions/ %{mingw64_libdir}/cmake/Qt5PrintSupport/ %{mingw64_libdir}/cmake/Qt5Sql/ %{mingw64_libdir}/cmake/Qt5Test/ %{mingw64_libdir}/cmake/Qt5Widgets/ %{mingw64_libdir}/cmake/Qt5Xml/ %dir %{mingw64_includedir}/qt5/ -%{mingw64_includedir}/qt5/QtConcurrent/ -%{mingw64_includedir}/qt5/QtCore/ -%{mingw64_includedir}/qt5/QtDBus/ -%{mingw64_includedir}/qt5/QtGui/ -%{mingw64_includedir}/qt5/QtNetwork/ -%{mingw64_includedir}/qt5/QtOpenGL/ -%{mingw64_includedir}/qt5/QtOpenGLExtensions/ -%{mingw64_includedir}/qt5/QtPlatformHeaders/ -%{mingw64_includedir}/qt5/QtPlatformSupport/ -%{mingw64_includedir}/qt5/QtPrintSupport/ -%{mingw64_includedir}/qt5/QtSql/ -%{mingw64_includedir}/qt5/QtTest/ -%{mingw64_includedir}/qt5/QtWidgets/ -%{mingw64_includedir}/qt5/QtXml/ +%{mingw64_includedir}/qt5/* %{mingw64_docdir}/qt5/ %files -n mingw64-qt5-qmake -%doc LGPL_EXCEPTION.txt LICENSE.FDL LICENSE.LGPLv21 LICENSE.LGPLv3 LICENSE.PREVIEW.COMMERCIAL %{_bindir}/%{mingw64_target}-moc-qt5 %{_bindir}/%{mingw64_target}-qdbuscpp2xml-qt5 %{_bindir}/%{mingw64_target}-qdbusxml2cpp-qt5 @@ -784,32 +759,15 @@ ln -s %{mingw64_target}-qmake-qt5 %{buildroot}%{_bindir}/mingw64-qmake-qt5 %{_prefix}/%{mingw64_target}/lib/libQt5BootstrapDBus.so %files -n mingw64-qt5-qtbase-static -%{mingw64_libdir}/libQt5Concurrent.a -%{mingw64_libdir}/libQt5Core.a -%{mingw64_libdir}/libQt5DBus.a -%{mingw64_libdir}/libQt5Gui.a -%{mingw64_libdir}/libQt5Network.a -%{mingw64_libdir}/libQt5OpenGL.a -%{mingw64_libdir}/libQt5OpenGLExtensions.a -%{mingw64_libdir}/libQt5PlatformSupport.a -%{mingw64_libdir}/libQt5PrintSupport.a -%{mingw64_libdir}/libQt5Sql.a -%{mingw64_libdir}/libQt5Test.a -%{mingw64_libdir}/libQt5Widgets.a -%{mingw64_libdir}/libQt5Xml.a -%{mingw64_libdir}/libqgenericbearer.a -%{mingw64_libdir}/libqico.a -%{mingw64_libdir}/libqminimal.a -%{mingw64_libdir}/libqnativewifibearer.a -%{mingw64_libdir}/libqsqlite.a -%{mingw64_libdir}/libqsqlodbc.a -%{mingw64_libdir}/libqtpng.a -%{mingw64_libdir}/libqtuiotouchplugin.a -%{mingw64_libdir}/libqwindows.a -%{mingw64_libdir}/libwindowsprintersupport.a +%{mingw64_libdir}/*.a +%{mingw64_libdir}/pkgconfig/StaticQt5OpenGLExtensions.pc +%{mingw64_libdir}/cmake/Static* %changelog +* Sat Apr 22 2017 Sandro Mani - 5.8.0-1 +- Update to 5.8.0 + * Tue Apr 04 2017 Sandro Mani - 5.7.1-3 - Add patch to ensure OpenSSL is preferred as crypto implementation (#1438740) diff --git a/qt5-qtbase_change-crypto-lookup-order.patch b/qt5-qtbase_change-crypto-lookup-order.patch index a7c2555..7364703 100644 --- a/qt5-qtbase_change-crypto-lookup-order.patch +++ b/qt5-qtbase_change-crypto-lookup-order.patch @@ -1,7 +1,7 @@ -diff -rupN qtbase-opensource-src-5.7.1/src/network/ssl/qsslsocket_openssl_symbols.cpp qtbase-opensource-src-5.7.1-new/src/network/ssl/qsslsocket_openssl_symbols.cpp ---- qtbase-opensource-src-5.7.1/src/network/ssl/qsslsocket_openssl_symbols.cpp 2016-12-01 09:17:04.000000000 +0100 -+++ qtbase-opensource-src-5.7.1-new/src/network/ssl/qsslsocket_openssl_symbols.cpp 2017-04-04 14:37:45.636086344 +0200 -@@ -609,10 +609,10 @@ static QPair