ref: 3dbdb78a25850b8a7fe86ccc17987c9eacac1470
parent: 2c40559609c102a934c1f0c5ee7ccb790fc887dc
author: Xavier Claessens <xavier.claessens@collabora.com>
date: Wed Feb 10 04:25:42 EST 2021
[meson] Fix handling of HarfBuzz library. * meson.build (harfbuzz_dep): Do not fall back to HarfBuzz by default. Otherwise it causes a dependency cycle: cairo => fontconfig => freetype2 => harfbuzz => cairo Meson will still fall back to HarfBuzz subprojects if the `harfbuzz` option is set to `enabled` instead of `auto` and a `subprojects/harfbuzz.wrap` file is present. In that case it is the responsibility of the main project to set the proper options on each subproject to break the dependency cycle. Fixes: #1028.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,24 @@
2021-02-09 Xavier Claessens <xavier.claessens@collabora.com>
+ [meson] Fix handling of HarfBuzz library.
+
+ * meson.build (harfbuzz_dep): Do not fall back to HarfBuzz by
+ default.
+
+ Otherwise it causes a dependency cycle:
+
+ cairo => fontconfig => freetype2 => harfbuzz => cairo
+
+ Meson will still fall back to HarfBuzz subprojects if the `harfbuzz`
+ option is set to `enabled` instead of `auto` and a
+ `subprojects/harfbuzz.wrap` file is present. In that case it is the
+ responsibility of the main project to set the proper options on each
+ subproject to break the dependency cycle.
+
+ Fixes: #1028.
+
+2021-02-09 Xavier Claessens <xavier.claessens@collabora.com>
+
[meson] Fix dependency lookup and generate `ftconfig.h`.
- zlib: If not found on the system, meson can build it as a
--- a/meson.build
+++ b/meson.build
@@ -260,10 +260,7 @@
# Harfbuzz support
harfbuzz_dep = dependency('harfbuzz',
version: '>= 2.0.0',
- required: get_option('harfbuzz'),
- fallback: ['harfbuzz', 'libharfbuzz_dep'],
- default_options : ['freetype=disabled',
- 'fontconfig=disabled'])
+ required: get_option('harfbuzz'))
if harfbuzz_dep.found()
ftoption_command += ['--enable=FT_CONFIG_OPTION_USE_HARFBUZZ']
ft2_deps += [harfbuzz_dep]