summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2017-05-31 17:17:17 +0800
committerChun-wei Fan <fanchunwei@src.gnome.org>2018-03-30 12:20:41 +0800
commit55afeeca8031ba74cbcdf569500334ebef6b61e0 (patch)
treee06e2cd657b4b9ea38d7a35ad256db3c0a57a9ec /meson.build
parentec8251d9728d0691365249eec4c681218e379819 (diff)
downloadpango-55afeeca8031ba74cbcdf569500334ebef6b61e0.tar.gz
meson: Check for HarfBuzz and FontConfig for PangoFT2
It is possible that we can have the following situations, at least on Windows: -FreeType present, FontConfig missing -Cairo-FT present, with no FontConfig support. As gen-script-for-lang requires FontConfig, and PangoFT2 depends on HarfBuzz, FontConfig and Freetype, we need to check for them before we build PangoFT2, and so that we could include PangoFT2 support in PangoCairo. The tests and pango-view have an optional dependency on PangoFT2, so we need to also check whether we built PangoFT2 before we try to build things related to PangoFT2. For the tools, since gen-script-for-lang.c depends on FontConfig, check for it as well before we build it. https://bugzilla.gnome.org/show_bug.cgi?id=783274
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build19
1 files changed, 15 insertions, 4 deletions
diff --git a/meson.build b/meson.build
index f2045315..5133d5c1 100644
--- a/meson.build
+++ b/meson.build
@@ -235,7 +235,10 @@ endif
# The first version of freetype with a pkg-config file is 2.1.5
# We require both fontconfig and freetype if we are to have either.
freetype_dep = dependency('freetype2', required: false)
-if freetype_dep.found() and fontconfig_dep.found()
+
+# To build pangoft2, we need HarfBuzz, FontConfig and FreeType
+build_pangoft2 = harfbuzz_dep.found() and fontconfig_dep.found() and freetype_dep.found()
+if build_pangoft2
pango_conf.set('HAVE_FREETYPE', 1)
pango_deps += freetype_dep
endif
@@ -267,6 +270,7 @@ if cairo_dep.found()
# - version
# - define
# - backend name
+ # Note that Cairo can be built with FreeType but without FontConfig
cairo_font_backends = [
[ 'cairo-ft', cairo_req_version, 'HAVE_CAIRO_FREETYPE', 'freetype', ],
[ 'cairo-win32', cairo_req_version, 'HAVE_CAIRO_WIN32', 'win32', ],
@@ -278,8 +282,15 @@ if cairo_dep.found()
foreach b: cairo_font_backends
dep = dependency(b[0], version: b[1], required: false)
if dep.found()
- pango_conf.set(b[2], 1)
- pango_font_backends += b[3]
+ if b[0] == 'cairo-ft'
+ if build_pangoft2
+ pango_conf.set(b[2], 1)
+ pango_font_backends += b[3]
+ endif
+ else
+ pango_conf.set(b[2], 1)
+ pango_font_backends += b[3]
+ endif
endif
endforeach
@@ -336,7 +347,7 @@ pkgconf.set('PKGCONFIG_CAIRO_REQUIRES', pangocairo_requires)
pkgconf_files = [
[ 'pango.pc' ],
[ 'pangowin32.pc', host_system == 'windows' ],
- [ 'pangoft2.pc', freetype_dep.found() ],
+ [ 'pangoft2.pc', build_pangoft2 ],
[ 'pangoxft.pc', xft_dep.found() ],
[ 'pangocairo.pc', cairo_dep.found() ],
]