# HarfBuzz feature options option('glib', type: 'feature', value: 'auto', description: 'Enable GLib unicode functions') option('gobject', type: 'feature', value: 'auto', description: 'Enable GObject bindings') option('cairo', type: 'feature', value: 'auto', description: 'Use Cairo graphics library') option('chafa', type: 'feature', value: 'auto', description: 'Use Chafa terminal graphics library') option('png', type: 'feature', value: 'auto', description: 'Use PNG library') option('zlib', type: 'feature', value: 'auto', description: 'Use zlib library') option('icu', type: 'feature', value: 'auto', description: 'Enable ICU library unicode functions') option('graphite', type: 'feature', value: 'disabled', description: 'Deprecated use graphite2 option instead') option('graphite2', type: 'feature', value: 'disabled', description: 'Enable Graphite2 complementary shaper') option('freetype', type: 'feature', value: 'auto', description: 'Enable freetype font backend') option('fontations', type: 'feature', value: 'disabled', description: 'Enable fontations font backend') option('gdi', type: 'feature', value: 'disabled', description: 'Enable GDI helpers and Uniscribe shaper backend on Windows') option('directwrite', type: 'feature', value: 'disabled', description: 'Enable DirectWrite shaper and font backend on Windows') option('coretext', type: 'feature', value: 'disabled', description: 'Enable CoreText shaper and font backend on Apple platforms') option('harfrust', type: 'feature', value: 'disabled', description: 'Enable HarfRust shaper backend') option('kbts', type: 'feature', value: 'disabled', description: 'Enable kb_text_shape backend') option('wasm', type: 'feature', value: 'disabled', description: 'Enable WebAssembly shaper backend (experimental)') option('raster', type: 'feature', value: 'enabled', description: 'Enable HarfBuzz glyph rasterization library') option('vector', type: 'feature', value: 'enabled', description: 'Enable HarfBuzz glyph vector drawing library') option('gpu', type: 'feature', value: 'enabled', description: 'Enable HarfBuzz GPU rasterization library') option('gpu_demo', type: 'feature', value: 'auto', description: 'Build hb-gpu demo tool (needs GLEW, GLFW, GL)') option('subset', type: 'feature', value: 'enabled', description: 'Enable HarfBuzz font subsetting and instancing library') # Common feature options option('tests', type: 'feature', value: 'enabled', yield: true, description: 'Enable or disable unit tests') option('introspection', type: 'feature', value: 'auto', yield: true, description: 'Generate gobject-introspection bindings (.gir/.typelib files)') option('docs', type: 'feature', value: 'auto', yield: true, description: 'Generate documentation with gtk-doc') option('doc_tests', type: 'boolean', value: false, description: 'Run gtkdoc-check tests') option('utilities', type: 'feature', value: 'enabled', yield: true, description: 'Build harfbuzz utils') option('benchmark', type: 'feature', value: 'disabled', description: 'Enable benchmark tests') option('icu_builtin', type: 'boolean', value: false, description: 'Don\'t separate ICU support as harfbuzz-icu module') option('with_libstdcxx', type: 'boolean', value: false, description: 'Allow linking with libstdc++') option('experimental_api', type: 'boolean', value: false, description: 'Enable experimental APIs') option('ragel_subproject', type: 'boolean', value: false, description: 'Build Ragel subproject if no suitable version is found') option('fuzzer_ldflags', type: 'string', description: 'Extra LDFLAGS used during linking of fuzzing binaries') # Install directory options option('cmakepackagedir', type: 'string', description: 'CMake package configuration install directory')