# 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('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 interop helpers') 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', description: 'Enable CoreText shaper backend on macOS') option('wasm', type: 'feature', value: 'disabled', description: 'Enable WebAssembly shaper backend (experimental)') # 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('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')