package qtbase: use system harfbuzz and resolve link circularity

This commit is contained in:
Mark Brand 2014-06-17 21:34:43 +02:00
parent 128adcdac8
commit 016a8f4490
3 changed files with 46 additions and 19 deletions

View File

@ -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

View File

@ -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

View File

@ -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 \