diff options
author | Chun-wei Fan <fanchunwei@src.gnome.org> | 2017-05-31 17:17:17 +0800 |
---|---|---|
committer | Chun-wei Fan <fanchunwei@src.gnome.org> | 2018-03-30 12:20:41 +0800 |
commit | 55afeeca8031ba74cbcdf569500334ebef6b61e0 (patch) | |
tree | e06e2cd657b4b9ea38d7a35ad256db3c0a57a9ec | |
parent | ec8251d9728d0691365249eec4c681218e379819 (diff) | |
download | pango-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.build | 2 | ||||
-rw-r--r-- | meson.build | 19 | ||||
-rw-r--r-- | pango-view/meson.build | 4 | ||||
-rw-r--r-- | pango/meson.build | 2 | ||||
-rw-r--r-- | tests/meson.build | 2 | ||||
-rw-r--r-- | tools/meson.build | 12 |
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 |