summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brand <mabrand@mabrand.nl>2014-06-17 19:34:43 (GMT)
committerMark Brand <mabrand@mabrand.nl>2014-06-19 00:03:04 (GMT)
commit016a8f44908ca2912c3560c4b2d843a4dbff1499 (patch)
tree5d989c3e63a93292ecf1b4089a1d12c250b82243
parent128adcdac803a7018eb26ad876693f70acf91b44 (diff)
downloadmxe-016a8f44908ca2912c3560c4b2d843a4dbff1499.zip
mxe-016a8f44908ca2912c3560c4b2d843a4dbff1499.tar.gz
mxe-016a8f44908ca2912c3560c4b2d843a4dbff1499.tar.bz2
package qtbase: use system harfbuzz and resolve link circularity
-rw-r--r--src/harfbuzz.mk2
-rw-r--r--src/qtbase-1.patch58
-rw-r--r--src/qtbase.mk5
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 \