[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.
This commit is contained in:
Xavier Claessens 2021-02-10 09:25:42 -05:00 committed by Werner Lemberg
parent 2c40559609
commit 3dbdb78a25
2 changed files with 20 additions and 4 deletions

View File

@ -1,3 +1,22 @@
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`.

View File

@ -260,10 +260,7 @@ endif
# 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]