Commit 3dbdb78a25850b8a7fe86ccc17987c9eacac1470

Xavier Claessens 2021-02-10T09:25:42

[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.

diff --git a/ChangeLog b/ChangeLog
index 6c37127..18d2261 100644
--- 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
diff --git a/meson.build b/meson.build
index 0116572..c2c8f7b 100644
--- a/meson.build
+++ b/meson.build
@@ -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]