games-engines/scummvm: Added improved freetype_pkgconfig patch

which should be ready for upstream inclusion.

Bug: https://bugs.gentoo.org/655032
Package-Manager: Portage-2.3.36, Repoman-2.3.9
This commit is contained in:
Lars Wendler
2018-05-07 09:03:03 +02:00
parent e0cd3d9f23
commit de097e37df
2 changed files with 86 additions and 36 deletions

View File

@@ -1,50 +1,99 @@
From 86c7fd67e5ab2e721de8493d162d7605b1b08823 Mon Sep 17 00:00:00 2001
From 48a3f5bcba1837517e3d9d029ebe5e8fbd3f0966 Mon Sep 17 00:00:00 2001
From: Lars Wendler <polynomial-c@gentoo.org>
Date: Sun, 6 May 2018 10:22:48 +0200
Subject: [PATCH] Use pkg-config to find freetype if freetype-config is not
available
Date: Sun, 6 May 2018 20:55:29 +0200
Subject: [PATCH] Prefer pkg-config over freetype-config if possible
As of freetype-2.9.1 the freetype-config script no longer gets installed
by default.
---
configure | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
configure | 56 ++++++++++++++++++++++++++++++++++++-------------------
1 file changed, 37 insertions(+), 19 deletions(-)
diff --git a/configure b/configure
index 8e2a387acc..e3c15a9a2a 100755
index 8e2a387acc..210951e343 100755
--- a/configure
+++ b/configure
@@ -4674,7 +4674,13 @@ if test "$_freetype2" != "no"; then
find_freetypeconfig
if test -z "$_freetypeconfig"; then
@@ -204,6 +204,7 @@ _sparklepath=
_sdlconfig=sdl2-config
_libcurlconfig=curl-config
_freetypeconfig=freetype-config
+_freetype_found="false"
_sdlpath="$PATH"
_freetypepath="$PATH"
_libcurlpath="$PATH"
@@ -4668,28 +4669,45 @@ echo "$_libunity"
#
# Check for FreeType2 to be present
#
-if test "$_freetype2" != "no"; then
-
- # Look for the freetype-config script
- find_freetypeconfig
-
- if test -z "$_freetypeconfig"; then
- _freetype2=no
+ if pkg-config --exists freetype2; then
+ FREETYPE2_LIBS=`pkg-config --libs freetype2`
+ FREETYPE2_CFLAGS=`pkg-config --cflags freetype2`
+ _freetype2=yes
+ else
+ _freetype2=no
+ fi
+find_freetype() {
+ # Wrapper function which tries to find freetype
+ # either by callimg freetype-config or by using
+ # pkg-config.
+ # As of freetype-2.9.1 the freetype-config file
+ # no longer gets installed by default.
+
+ if pkg-config --exists freetype2; then
+ FREETYPE2_LIBS=`pkg-config --libs freetype2`
+ FREETYPE2_CFLAGS=`pkg-config --cflags freetype2`
+ FREETYPE2_STATIC_LIBS=`pkg-config --static --libs freetype2`
+ _freetype_found="true"
else
# Since 2.3.12, freetype-config prepends $SYSROOT to everything.
# This means we can't pass it a --prefix that includes $SYSROOT.
@@ -4714,13 +4720,12 @@ EOF
- # Since 2.3.12, freetype-config prepends $SYSROOT to everything.
- # This means we can't pass it a --prefix that includes $SYSROOT.
- freetypeprefix="$_freetypepath"
- if test -n "$SYSROOT" -a "$SYSROOT" != "/"; then
- teststring=VeryImplausibleSysrootX1Y2Z3
- if ( env SYSROOT=/$teststring "$_freetypeconfig" --cflags | grep $teststring 2> /dev/null > /dev/null ); then
- echo "Adapting FreeType prefix to SYSROOT" >> "$TMPLOG"
- freetypeprefix="${freetypeprefix##$SYSROOT}"
+ # Look for the freetype-config script
+ find_freetypeconfig
+ if test -n "$_freetypeconfig"; then
+ # Since 2.3.12, freetype-config prepends $SYSROOT to everything.
+ # This means we can't pass it a --prefix that includes $SYSROOT.
+ freetypeprefix="$_freetypepath"
+ if test -n "$SYSROOT" -a "$SYSROOT" != "/"; then
+ teststring=VeryImplausibleSysrootX1Y2Z3
+ if ( env SYSROOT=/$teststring "$_freetypeconfig" --cflags | grep $teststring 2> /dev/null > /dev/null ); then
+ echo "Adapting FreeType prefix to SYSROOT" >> "$TMPLOG"
+ freetypeprefix="${freetypeprefix##$SYSROOT}"
+ fi
fi
+ FREETYPE2_LIBS=`$_freetypeconfig --prefix="$freetypeprefix" --libs`
+ FREETYPE2_CFLAGS=`$_freetypeconfig --prefix="$freetypeprefix" --cflags`
+ FREETYPE2_STATIC_LIBS=`$_freetypeconfig --prefix="$freetypeprefix" --static --libs 2>/dev/null`
+ _freetype_found="true"
fi
+ fi
+}
- FREETYPE2_LIBS=`$_freetypeconfig --prefix="$freetypeprefix" --libs`
- FREETYPE2_CFLAGS=`$_freetypeconfig --prefix="$freetypeprefix" --cflags`
-
+if test "$_freetype2" != "no"; then
+ find_freetype
+ if test $_freetype_found != true; then
+ _freetype2=no
+ else
if test "$_freetype2" = "auto"; then
_freetype2=no
@@ -4709,7 +4727,7 @@ EOF
# required flags for static linking. We abuse this to detect
# FreeType2 builds which are static themselves.
if test "$_freetype2" != "yes"; then
- FREETYPE2_LIBS=`$_freetypeconfig --prefix="$_freetypepath" --static --libs 2>/dev/null`
+ FREETYPE2_LIBS="$FREETYPE2_STATIC_LIBS"
cc_check_no_clean $FREETYPE2_CFLAGS $FREETYPE2_LIBS && _freetype2=yes
fi
cc_check_clean
fi
-
- if test "$_freetype2" = "yes"; then
- append_var LIBS "$FREETYPE2_LIBS"
- append_var INCLUDES "$FREETYPE2_CFLAGS"
- fi
fi
+ if test "$_freetype2" = "yes"; then
+ append_var LIBS "$FREETYPE2_LIBS"
+ append_var INCLUDES "$FREETYPE2_CFLAGS"
+ fi
fi
echocheck "FreeType2"
--
2.17.0

View File

@@ -30,6 +30,7 @@ RDEPEND=">=media-libs/libsdl2-2.0.0[sound,joystick,video]
fluidsynth? ( media-sound/fluidsynth )"
DEPEND="${RDEPEND}
app-arch/xz-utils
truetype? ( virtual/pkgconfig )
x86? ( dev-lang/nasm )"
S="${WORKDIR}/${P/_/}"