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