From 2bf13b81e9f9e019f800ed380c27097d7abf5869 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 20 Aug 2012 16:06:39 -0400 Subject: [PATCH] Make HarfBuzz dependency optional (on non-Linux), update README If HarfBuzz is not available, we just can't build the Freetype/Fontconfig backend... --- README | 23 ++++++++++++++--------- configure.in | 8 ++++++-- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/README b/README index 809845e..dda3c09 100644 --- a/README +++ b/README @@ -12,11 +12,12 @@ multiple options for rendering with each. Rendering can be with with Cairo or Xft libraries, or directly to an in-memory buffer with no additional libraries. - - Native fonts on Microsoft Windows using Uniscribe if available for - complex script handling. Rendering can be done via Cairo or - directly using the native Win32 API. + - Native fonts on Microsoft Windows using Uniscribe for complex + script handling. Rendering can be done via Cairo or directly + using the native Win32 API. - - Native fonts on MacOS X, rendering via Cairo. + - Native fonts on MacOS X with the CoreText framework, rendering via + Cairo. The integration of Pango with Cairo (http://cairographics.org) provides a complete solution with high quality text handling @@ -39,10 +40,14 @@ Dependencies Pango depends on the GLib library; more information about GLib can be found at http://www.gtk.org/. -When using client side fonts, the fontconfig library -(http://www.fontconfig.org) to look up fonts. At least version 2.0.9 -of the FreeType font handling library (http://www.freetype.org) is -also required. +To use the Free Software stack backend, Pango depends on the following +libraries: + + * fontconfig for font discovery (http://www.fontconfig.org), + + * FreeType for font access (http://www.freetype.org), + + * HarfBuzz for complex text shaping (http://www.harfbuzz.org/) Cairo support depends on the Cairo library (http://cairographics.org). The Cairo backend is the preferred backend to use Pango with and is @@ -92,4 +97,4 @@ otaylor@redhat.com Behdad Esfahbod behdad@gnome.org -26 February 2007 +20 August 2012 diff --git a/configure.in b/configure.in index 030f5d9..f64046e 100644 --- a/configure.in +++ b/configure.in @@ -433,8 +433,12 @@ AM_CONDITIONAL(HAVE_CAIRO_QUARTZ, $have_cairo_quartz) harfbuzz_required=0.9 have_harfbuzz=false -PKG_CHECK_MODULES(HARFBUZZ, harfbuzz >= $harfbuzz_required, have_harfbuzz=true) +PKG_CHECK_MODULES(HARFBUZZ, harfbuzz >= $harfbuzz_required, have_harfbuzz=true, have_harfbuzz=false) AM_CONDITIONAL(HAVE_HARFBUZZ, $have_harfbuzz) +if ! $have_harfbuzz; then + have_freetype=false + have_xft=false +fi # # We must have some backend defined, in order for the pango-querymodules @@ -443,7 +447,7 @@ AM_CONDITIONAL(HAVE_HARFBUZZ, $have_harfbuzz) # patch to fix that rule. :-) # if $have_freetype || $have_xft || $have_cairo || $have_win32 ; then : ; else - AC_MSG_ERROR([*** Could not enable any of FreeType, Xft, Cairo, or Win32 backends. + AC_MSG_ERROR([*** Could not enable any backends. *** Must have at least one backend to build Pango.]) fi -- 2.7.4