[meson] Disable FreeType in HarfBuzz fallback. This avoids cyclic subproject configuration when the 'harfbuzz' feature is enabled, or `--wrap-mode=forcefallback` is used, but HarfBuzz is built as a subproject. HarfBuzz does the same and disables HarfBuzz support when configuring FreeType as a subproject. * meson.build (harfbuzz_dep): Implement it. * subprojects/harfbuzz.wrap: New file. * .gitlab-ci.yml [windows meson]: Use latest version of the meson 0.59 series, which has a necessary bug fix to make CI work.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 10de446..a0774b7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -47,7 +47,7 @@ variables:
- Import-Certificate -CertStoreLocation "Cert:\LocalMachine\Root" "C:\roots.sst"
# Make sure meson is up to date so we don't need to rebuild the image
# with each release.
- - pip3 install meson==0.59.1
+ - pip3 install 'meson==0.59.*'
- pip3 install --upgrade certifi
- pip3 install -U ninja
diff --git a/meson.build b/meson.build
index a066325..41822bc 100644
--- a/meson.build
+++ b/meson.build
@@ -335,7 +335,8 @@ endif
# Harfbuzz support
harfbuzz_dep = dependency('harfbuzz',
version: '>= 2.0.0',
- required: get_option('harfbuzz'))
+ required: get_option('harfbuzz'),
+ default_options: ['freetype=disabled'])
if harfbuzz_dep.found()
ftoption_command += ['--enable=FT_CONFIG_OPTION_USE_HARFBUZZ']
diff --git a/subprojects/harfbuzz.wrap b/subprojects/harfbuzz.wrap
new file mode 100644
index 0000000..5931171
--- /dev/null
+++ b/subprojects/harfbuzz.wrap
@@ -0,0 +1,12 @@
+[wrap-file]
+directory = harfbuzz-4.3.0
+
+source_url = https://github.com/harfbuzz/harfbuzz/releases/download/4.3.0/harfbuzz-4.3.0.tar.xz
+source_filename = harfbuzz-4.3.0.tar.xz
+source_hash = a49628f4c4c8e6d8df95ef44935a93446cf2e46366915b0e3ca30df21fffb530
+
+[provide]
+harfbuzz = libharfbuzz_dep
+harfbuzz-subset = libharfbuzz_subset_dep
+harfbuzz-icu = libharfbuzz_icu_dep
+harfbuzz-gobject = libharfbuzz_gobject_dep