summaryrefslogtreecommitdiff
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
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
-rw-r--r--docs/meson.build2
-rw-r--r--meson.build19
-rw-r--r--pango-view/meson.build4
-rw-r--r--pango/meson.build2
-rw-r--r--tests/meson.build2
-rw-r--r--tools/meson.build12
6 files changed, 27 insertions, 14 deletions
diff --git a/docs/meson.build b/docs/meson.build
index 40154bac..c784149e 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -59,7 +59,7 @@ html_images = [
docdeps = [ libpango_dep ]
-if freetype_dep.found()
+if build_pangoft2
docdeps += libpangoft2_dep
endif
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() ],
]
diff --git a/pango-view/meson.build b/pango-view/meson.build
index b7aa634b..c607f719 100644
--- a/pango-view/meson.build
+++ b/pango-view/meson.build
@@ -9,12 +9,12 @@ pango_view_deps = [
libpango_dep,
]
-if freetype_dep.found()
+if build_pangoft2
pango_view_sources += 'viewer-pangoft2.c'
pango_view_deps += libpangoft2_dep
endif
-if xft_dep.found()
+if xft_dep.found() and build_pangoft2
pango_view_sources += [
'viewer-pangoxft.c',
'viewer-x.c',
diff --git a/pango/meson.build b/pango/meson.build
index 93f0740a..3312d72d 100644
--- a/pango/meson.build
+++ b/pango/meson.build
@@ -154,7 +154,7 @@ libpango_dep = declare_dependency(
)
# FreeType
-if freetype_dep.found()
+if build_pangoft2
pangoft2_headers = [
'pango-ot.h',
'pangofc-font.h',
diff --git a/tests/meson.build b/tests/meson.build
index a4df3bc0..bceb9093 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -24,7 +24,7 @@ tests = [
[ 'cxx-test', [ 'cxx-test.cpp' ] ],
]
-if freetype_dep.found()
+if build_pangoft2
test_cflags += '-DHAVE_FREETYPE'
tests += [
[ 'test-ot-tags', [ 'test-ot-tags.c' ], [ libpangoft2_dep ] ],
diff --git a/tools/meson.build b/tools/meson.build
index 37a3be76..37e52434 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -1,5 +1,7 @@
-executable('gen-script-for-lang', 'gen-script-for-lang.c',
- dependencies: pango_deps + [ libpango_dep ],
- c_args: common_cflags + pango_debug_cflags + [ '-DPANGO_DISABLE_DEPRECATED' ],
- include_directories: root_inc,
- install: false)
+if fontconfig_dep.found()
+ executable('gen-script-for-lang', 'gen-script-for-lang.c',
+ dependencies: pango_deps + [ libpango_dep ],
+ c_args: common_cflags + pango_debug_cflags + [ '-DPANGO_DISABLE_DEPRECATED' ],
+ include_directories: root_inc,
+ install: false)
+endif