option('build_date', type: 'string', value: '',
       description: 'Build date stamp shown in the About dialog (defaults to the configure-time date).')
option('http_backend', type: 'combo', choices: ['curl', 'nghttp2'], value: 'curl',
       description: 'HTTP client used for page and subresource fetches. "curl" (default) drives libcurl. "nghttp2" swaps in an in-tree client built on libnghttp2 (HTTP/2) + OpenSSL TLS with an HTTP/1.1 fallback and zlib/brotli decompression, plus auto-detected HTTP/3 over QUIC (ngtcp2 + nghttp3 + gnutls) when those packages are present; libcurl stays linked for WebSocket/SSE/audio and is the fallback for proxied and FTP hops.')
option('quickjs', type: 'combo', choices: ['quickjs-ng', 'quickjs'], value: 'quickjs-ng',
       description: 'Which QuickJS the JavaScript binding runs on. "quickjs-ng" (default) builds the in-tree quickjs-ng fork in src/quickjs/, which carries the browser hooks. "quickjs" builds Fabrice Bellard\'s original QuickJS (https://github.com/bellard/quickjs), fetched at configure time through subprojects/quickjs.wrap and never vendored; src/ns_quickjs.h adapts the binding to its API and the few fork-only hooks fall back to portable approximations (see docs/quickjs.md).')
option('gtk', type: 'feature', value: 'auto',
       description: 'Build the GTK 4 desktop shell (on by default when GTK 4 is present). Disable for a renderer-only build that needs no GTK 4 toolkit at all.')
option('ios', type: 'boolean', value: false,
       description: 'Cross-compile the embeddable engine (libnordstjernen) for iOS: GTK-free like Android, no desktop shell/renderer/audio executables. Set by the iOS meson cross file (see ios/README.md); leave false for every desktop and Android build.')
option('wasm', type: 'feature', value: 'auto',
       description: 'Build the WebAssembly JS API over the vendored WAMR interpreter (on by default; disable on platforms WAMR does not support, e.g. NetBSD).')
option('avif', type: 'feature', value: 'auto',
       description: 'Decode AVIF images through libavif (on by default when libavif is present; never on the mobile builds). AVIF is a rare format on the web and libavif pulls in a full AV1 decoder; disable to drop it.')
option('jxl', type: 'feature', value: 'auto',
       description: 'Decode JPEG XL images (stills and animations) through libjxl (on by default when libjxl is present; never on the mobile builds).')
option('gstreamer', type: 'feature', value: 'auto',
       description: 'Decode H.264 video and AAC audio through the system GStreamer (which picks VA-API, V4L2 or an installed software decoder) on Linux and the BSDs. Windows, macOS and Android always use their own OS decoders instead.')
option('audio', type: 'feature', value: 'auto',
       description: 'Build the nordstjernen-audio playback helper (SDL2 output + minimp3/pl_mpeg decode). Auto-detects SDL2; disable for engine-only or JNI builds without SDL2.')
option('webgpu', type: 'feature', value: 'auto',
       description: 'Build the WebGPU API (navigator.gpu) over the external wgpu-native library. Auto: required on glibc Linux, macOS and Windows (x86_64/aarch64), where the pinned release is fetched by a meson wrap when neither pkg-config wgpu_native nor -Dwgpu_native_root provides it; optional elsewhere. -Dwebgpu=enabled hard-requires it everywhere, -Dwebgpu=disabled never builds it. Even when built, WebGPU stays off at runtime until the browser is started with --enable-webgpu (or NS_WEBGPU_ALLOW=1).')
option('wgpu_native_root', type: 'string', value: '',
       description: 'Root of an extracted wgpu-native release (expects include/webgpu/webgpu.h and lib/libwgpu_native.{so,a}). Used only when -Dwebgpu is enabled and pkg-config cannot find wgpu_native.')
option('web-text-lib', type: 'feature', value: 'auto',
       description: 'Shape text through web-text-lib, the in-tree Pango fork under src/web-text-lib/, which caches finished glyph strings across layouts. Auto: used on desktop, never on Android or iOS, where the fork has no CoreText backend and no fontconfig. Disabled links the system Pango instead, with src/ns_pango_names.h mapping the renamed API back -- the same path the mobile builds take.')
