diff options
author | Mark Brand <mabrand@mabrand.nl> | 2014-06-17 19:34:43 (GMT) |
---|---|---|
committer | Mark Brand <mabrand@mabrand.nl> | 2014-06-19 00:03:04 (GMT) |
commit | 016a8f44908ca2912c3560c4b2d843a4dbff1499 (patch) | |
tree | 5d989c3e63a93292ecf1b4089a1d12c250b82243 | |
parent | 128adcdac803a7018eb26ad876693f70acf91b44 (diff) | |
download | mxe-016a8f44908ca2912c3560c4b2d843a4dbff1499.zip mxe-016a8f44908ca2912c3560c4b2d843a4dbff1499.tar.gz mxe-016a8f44908ca2912c3560c4b2d843a4dbff1499.tar.bz2 |
package qtbase: use system harfbuzz and resolve link circularity
-rw-r--r-- | src/harfbuzz.mk | 2 | ||||
-rw-r--r-- | src/qtbase-1.patch | 58 | ||||
-rw-r--r-- | src/qtbase.mk | 5 |
3 files changed, 46 insertions, 19 deletions
diff --git a/src/harfbuzz.mk b/src/harfbuzz.mk index 4d2e4c3..e4f4b62 100644 --- a/src/harfbuzz.mk +++ b/src/harfbuzz.mk @@ -22,4 +22,6 @@ define $(PKG)_BUILD $(MXE_CONFIGURE_OPTS) \ LIBS='-lstdc++' $(MAKE) -C '$(1)' -j '$(JOBS)' install + # alias for this library will help qmake deal with the freetype/harfbuzz linking circularity + ln -sf libharfbuzz.a '$(PREFIX)/$(TARGET)/lib/libharfbuzz_too.a' endef diff --git a/src/qtbase-1.patch b/src/qtbase-1.patch index 9eb07f0..6f26d21 100644 --- a/src/qtbase-1.patch +++ b/src/qtbase-1.patch @@ -1,7 +1,7 @@ This file is part of MXE. See index.html for further information. -From 6999f62177783a39628b0916750fa4870543c24c Mon Sep 17 00:00:00 2001 +From 4c5a88298629d81d899b6748db482bb35b15fc2a Mon Sep 17 00:00:00 2001 From: Mark Brand <mabrand@mabrand.nl> Date: Tue, 26 Feb 2013 13:23:33 +0100 Subject: [PATCH 1/3] use pkg-config for freetype @@ -24,7 +24,7 @@ index 88be809..8fc19d2 100644 1.8.4.5 -From cbb4f962f9744c4488b67b2ea28619ac1c990117 Mon Sep 17 00:00:00 2001 +From 0d6f714d5a283429df603ea1898a73527ebdd71c Mon Sep 17 00:00:00 2001 From: Mark Brand <mabrand@mabrand.nl> Date: Sat, 18 May 2013 23:07:46 +0200 Subject: [PATCH 2/3] use pkgconfig for icu detection (MXE specific) @@ -58,25 +58,47 @@ index 2c1b431..e29798b 100644 1.8.4.5 -From 6a595942f1eb699a3d694e674f39bb7e9b0cf4f3 Mon Sep 17 00:00:00 2001 +From 377ebc9636652d5ba46bcf71b60c6bfe91f46008 Mon Sep 17 00:00:00 2001 From: Mark Brand <mabrand@mabrand.nl> -Date: Sat, 8 Feb 2014 02:09:25 +0100 -Subject: [PATCH 3/3] extra windows.h for mingw4 compatibility +Date: Wed, 18 Jun 2014 16:37:08 +0200 +Subject: [PATCH 3/3] workaround harfbuzz/freetype static linking circularity + (MXE-specific) -Change-Id: I0dcf3b45f3eba31309525f14aee569afa5e1fd0a +Pkg-config provides the -lfreetype needed by -lharfbuzz. +Fontconfig also introduces -lfreetype. +Manually add -lharfbuzz_too needed after these -lfreetype occurrences. -diff --git a/src/plugins/bearer/nativewifi/platformdefs.h b/src/plugins/bearer/nativewifi/platformdefs.h -index 4e0f6d5..7855462 100644 ---- a/src/plugins/bearer/nativewifi/platformdefs.h -+++ b/src/plugins/bearer/nativewifi/platformdefs.h -@@ -42,6 +42,7 @@ - #ifndef PLATFORMDEFS_H - #define PLATFORMDEFS_H - -+#include <windows.h> - #include <wtypes.h> - #undef interface - +This assumes that the libharfbuzz_too.a exists and is a symbolic +link (or copy of) libharfbuzz.a. If we were to simply add an +extra -lharfbuzz, qmake would remove the duplicate. + +Change-Id: Ia6a1d1d58cfc58ee470aab4830309596085d52a2 + +diff --git a/configure b/configure +index 601d84a..24ea55e 100755 +--- a/configure ++++ b/configure +@@ -4812,6 +4812,7 @@ if [ "$CFG_FONTCONFIG" != "no" ]; then + QT_CFLAGS_FONTCONFIG= + QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig" + fi ++ [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_SHARED" = "no" ] && QT_LIBS_FONTCONFIG="$QT_LIBS_FONTCONFIG -lharfbuzz_too" + if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then + QT_CONFIG="$QT_CONFIG fontconfig" + QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG" +diff --git a/src/3rdparty/harfbuzzng.pri b/src/3rdparty/harfbuzzng.pri +index 7443368..466135e 100644 +--- a/src/3rdparty/harfbuzzng.pri ++++ b/src/3rdparty/harfbuzzng.pri +@@ -2,5 +2,7 @@ contains(QT_CONFIG, harfbuzz) { + INCLUDEPATH += $$PWD/harfbuzz-ng/include + LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtharfbuzzng$$qtPlatformTargetSuffix() + } else:contains(QT_CONFIG, system-harfbuzz) { +- LIBS_PRIVATE += -lharfbuzz ++ isEmpty(PKG_CONFIG):PKG_CONFIG = pkg-config ++ LIBS_PRIVATE += $$system($$PKG_CONFIG --static --libs harfbuzz) ++ mingw:static:contains(LIBS_PRIVATE, -lfreetype):LIBS_PRIVATE += -lharfbuzz_too + } -- 1.8.4.5 diff --git a/src/qtbase.mk b/src/qtbase.mk index b20f15b..941df9c 100644 --- a/src/qtbase.mk +++ b/src/qtbase.mk @@ -8,7 +8,7 @@ $(PKG)_CHECKSUM := d4344110677cceb5f39819d1ea490ef397f5e4be $(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION) $(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz $(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.3/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE) -$(PKG)_DEPS := gcc postgresql freetds openssl zlib libpng jpeg sqlite pcre fontconfig freetype dbus icu4c +$(PKG)_DEPS := gcc postgresql freetds openssl harfbuzz zlib libpng jpeg sqlite pcre fontconfig freetype dbus icu4c define $(PKG)_UPDATE $(WGET) -q -O- http://download.qt-project.org/official_releases/qt/5.1/ | \ @@ -47,6 +47,9 @@ define $(PKG)_BUILD -system-libpng \ -system-libjpeg \ -system-sqlite \ + -fontconfig \ + -system-freetype \ + -system-harfbuzz \ -system-pcre \ -openssl-linked \ -dbus-linked \ |