meson: Support GDI integration
...and supersede the configuration option uniscribe with gdi, as Uniscribe is
tightly tied to GDI. This means that enabling GDI would also mean enabling
Uniscribe.
diff --git a/meson.build b/meson.build
index 7b6fff4..2143d72 100644
--- a/meson.build
+++ b/meson.build
@@ -212,16 +212,17 @@
deps += [fontconfig_dep]
endif
-# uniscribe (windows)
-if host_machine.system() == 'windows' and not get_option('uniscribe').disabled()
+# GDI (uniscribe) (windows)
+if host_machine.system() == 'windows' and not get_option('gdi').disabled()
# TODO: make nicer once we have https://github.com/mesonbuild/meson/issues/3940
if cpp.has_header('usp10.h') and cpp.has_header('windows.h')
foreach usplib : ['usp10', 'gdi32', 'rpcrt4']
deps += [cpp.find_library(usplib, required: true)]
endforeach
conf.set('HAVE_UNISCRIBE', 1)
- elif get_option('uniscribe').enabled()
- error('uniscribe was enabled explicitly, but some required headers are missing.')
+ conf.set('HAVE_GDI', 1)
+ elif get_option('gdi').enabled()
+ error('gdi was enabled explicitly, but some required headers are missing.')
endif
endif
diff --git a/meson_options.txt b/meson_options.txt
index e27ee30..a4b845b 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -13,8 +13,8 @@
description: 'Enable Graphite2 complementary shaper')
option('freetype', type: 'feature', value: 'auto',
description: 'Enable freetype interop helpers')
-option('uniscribe', type: 'feature', value: 'disabled',
- description: 'Enable Uniscribe shaper backend (Windows only)')
+option('gdi', type: 'feature', value: 'disabled',
+ description: 'Enable GDI helpers and Uniscribe shaper backend (Windows only)')
option('directwrite', type: 'feature', value: 'disabled',
description: 'Enable DirectWrite shaper backend on Windows (experimental)')
option('coretext', type: 'feature', value: 'disabled',
diff --git a/src/meson.build b/src/meson.build
index ac26a12..876dca6 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -170,6 +170,11 @@
hb_headers += hb_ft_headers
endif
+if conf.get('HAVE_GDI', 0) == 1
+ hb_sources += ['hb-gdi.cc']
+ hb_headers += ['hb-gdi.h']
+endif
+
if conf.get('HAVE_GRAPHITE2', 0) == 1
hb_sources += hb_graphite2_sources
hb_headers += hb_graphite2_headers