[gtk/pango2-windows: 10/10] build: Check HarfBuzz has GDI support built in on Windows




commit a44c1a65d2af58ebfa09a7f3f7d35a3883413934
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Wed Jul 6 14:56:13 2022 +0800

    build: Check HarfBuzz has GDI support built in on Windows
    
    We are using APIs from there.  Also enable GDI and DirectWrite if we are
    building HarfBuzz as a fallback, and remove an extraneous HarfBuzz dependency
    declaration.

 meson.build | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)
---
diff --git a/meson.build b/meson.build
index 69cc94aa64..ad63f82f34 100644
--- a/meson.build
+++ b/meson.build
@@ -397,7 +397,7 @@ fribidi_dep    = dependency('fribidi', version: fribidi_req,
                             fallback : ['fribidi', 'libfribidi_dep'])
 harfbuzz_dep   = dependency('harfbuzz', version: harfbuzz_req,
                             fallback: ['harfbuzz', 'libharfbuzz_dep'],
-                            default_options: ['coretext=enabled'])
+                            default_options: ['coretext=enabled', 'directwrite=auto', 'gdi=auto'])
 
 pangocairo_dep = pango_dep
 
@@ -417,9 +417,6 @@ jpeg_dep       = dependency('libjpeg',
 
 epoxy_dep      = dependency('epoxy', version: epoxy_req,
                             fallback: ['libepoxy', 'libepoxy_dep'])
-harfbuzz_dep   = dependency('harfbuzz', version: '>= 2.1.0', required: false,
-                            fallback: ['harfbuzz', 'libharfbuzz_dep'],
-                            default_options: ['coretext=enabled'])
 xkbdep         = dependency('xkbcommon', version: xkbcommon_req, required: wayland_enabled)
 graphene_dep   = dependency('graphene-gobject-1.0', version: graphene_req,
                             fallback: ['graphene', 'graphene_dep'],
@@ -495,6 +492,17 @@ cdata.set('HAVE_CAIRO_SCRIPT_INTERPRETER', cairo_csi_dep.found())
 if have_egl
   cdata.set('HAVE_EGL', 1)
 endif
+
+if os_win32
+  if harfbuzz_dep.type_name() == 'pkgconfig'
+    if not cc.has_header_symbol('hb-uniscribe.h',
+                                'hb_uniscribe_font_get_logfontw',
+                                dependencies: harfbuzz_dep)
+      error ('HarfBuzz must be built with GDI/Uniscribe support')
+    endif
+  endif
+endif
+
 cdata.set('HAVE_HARFBUZZ', harfbuzz_dep.found())
 
 wayland_pkgs = []


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]