# Build targets.
option('tool'     , type: 'feature')
option('tests'    , type: 'feature')
option('unittests', type: 'feature')

# Debugging.
option('curldebug', type: 'boolean', value: false)

# CA.
option('ca_bundle'  , type: 'string' , value: 'auto')
option('ca_path'    , type: 'string' , value: 'auto')
option('ca_fallback', type: 'boolean', value: false)

# NOTE: disabling some of those opt-out options can
# break build and/or test suite, you've been warned!

# Features. {{{

option('bindlocal'      , type: 'feature', value: 'enabled')
option('brotli'         , type: 'feature')
option('cookies'        , type: 'feature', value: 'enabled')
option('doh'            , type: 'feature', value: 'enabled')
option('form-api'       , type: 'feature', value: 'enabled')
option('getoptions'     , type: 'feature', value: 'enabled')
option('gsasl'          , type: 'feature')
option('http2'          , type: 'feature')
option('ipv6'           , type: 'feature')
option('libcurl-option' , type: 'feature', value: 'enabled')
option('libz'           , type: 'feature')
option('mime'           , type: 'feature', value: 'enabled')
option('netrc'          , type: 'feature', value: 'enabled')
option('parsedate'      , type: 'feature', value: 'enabled')
option('progress-meter' , type: 'feature', value: 'enabled')
option('proxy'          , type: 'feature', value: 'enabled')
option('psl'            , type: 'feature')
option('shuffle-dns'    , type: 'feature', value: 'enabled')
option('socketpair'     , type: 'feature', value: 'enabled')
option('sspi'           , type: 'feature')
option('unixsockets'    , type: 'feature')
option('verbose-strings', type: 'feature', value: 'enabled')
option('zstd'           , type: 'feature')

# Asynchronous DNS.
option('asynchdns', type: 'feature')
# Resolver, by order of preference (first available one is enabled).
option('asynchdns-resolver', type: 'array', value: ['pthread', 'win32'], choices: ['pthread', 'win32', 'ares'])

# Authentication.
option('aws'           , type: 'feature', value: 'enabled')
option('basic-auth'    , type: 'feature', value: 'enabled')
option('bearer-auth'   , type: 'feature', value: 'enabled')
option('digest-auth'   , type: 'feature', value: 'enabled')
option('kerberos-auth' , type: 'feature', value: 'enabled')
option('negotiate-auth', type: 'feature', value: 'enabled')

# GSS API.
option('gss-api', type: 'feature')
# Provider, by order of preference (first available one is enabled).
option('gss-api-provider', type: 'array', choices: ['gnu', 'mit', 'heimdal'])

# IDN.
option('idn', type: 'feature')
# Provider, by order of preference (first available one is enabled).
option('idn-provider', type: 'array', choices: ['winidn', 'libidn2'])

# HTTP.
option('alt-svc'    , type: 'feature')
option('headers-api', type: 'feature', value: 'enabled')
option('hsts'       , type: 'feature')
option('http-auth'  , type: 'feature', value: 'enabled')

# LDAP.
option('ldap-provider', type: 'array', choices: ['win32', 'openldap'])

# NTLM.
option('ntlm'        , type: 'feature')
option('ntlm-wb'     , type: 'feature')
option('ntlm-wb-file', type: 'string', value: 'ntlm_auth')

# SSH support.
option('ssh', type: 'feature')
# Provider, by order of preference (first available one is enabled).
option('ssh-provider', type: 'array', choices: ['libssh2', 'libssh'])

# SSL support.
option('ssl'                , type: 'feature')
option('tls-srp'            , type: 'feature')
option('ssl-default-backend', type: 'combo'  , choices: ['implicit', 'openssl', 'schannel', 'secure-transport'])
# Backends.
option('openssl'            , type: 'feature')
# Windows only.
option('schannel'           , type: 'feature')
# macOS only.
option('secure-transport'   , type: 'feature')

# }}}

# Protocols. {{{

option('dict'  , type: 'feature')
option('file'  , type: 'feature', value: 'enabled')
option('ftp'   , type: 'feature')
option('gopher', type: 'feature')
option('http'  , type: 'feature', value: 'enabled')
option('imap'  , type: 'feature')
option('ldap'  , type: 'feature')
option('ldaps' , type: 'feature')
option('mqtt'  , type: 'feature')
option('pop3'  , type: 'feature')
option('rtmp'  , type: 'feature')
option('rtsp'  , type: 'feature')
option('smb'   , type: 'feature')
option('smtp'  , type: 'feature')
option('telnet', type: 'feature')
option('tftp'  , type: 'feature')

# }}}

# Internal, disregard.
option('_disabled', type: 'feature', value: 'disabled')
option('_enabled' , type: 'feature', value: 'enabled')

# vim: foldmethod=marker foldlevel=0
