Files
bind9/meson.options
Alessio Podda 1378aeefa5 Add auto LTO option
Add an auto option to named-lto that disables weird setups like clang +
ld.bfd.
2025-11-27 13:00:22 +01:00

206 lines
4.1 KiB
Plaintext

# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
#
# SPDX-License-Identifier: MPL-2.0
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
# Features
option(
'doc',
type: 'feature',
value: 'auto',
description: 'Enable sphinx-based documentation generation',
)
option(
'dnstap',
type: 'feature',
value: 'auto',
description: 'Enable dnstap packet logging, requires fstrm and protobuf-c',
)
option(
'doh',
type: 'feature',
value: 'auto',
description: 'Enable DNS over HTTPS, requires libnghttp2',
)
option(
'fips',
type: 'feature',
value: 'disabled',
description: 'Enable FIPS mode toggle',
)
option(
'geoip',
type: 'feature',
value: 'auto',
description: 'Enable GeoIP support, requires libmaxminddb',
)
option(
'gssapi',
type: 'feature',
value: 'auto',
description: 'Enable GSSAPI support, requires krb5 and gssapi',
)
option(
'idn',
type: 'feature',
value: 'auto',
description: 'Enable IDN support, requires libidn2',
)
option(
'line',
type: 'feature',
value: 'auto',
description: 'Enable line editing in nsupdate and nslookup, requires libedit',
)
option(
'lmdb',
type: 'feature',
value: 'auto',
description: 'LMDB database to store configuration for "addzone" zones',
)
option(
'stats-json',
type: 'feature',
value: 'auto',
description: 'Enable JSON statistics, requires json-c',
)
option(
'stats-xml',
type: 'feature',
value: 'auto',
description: 'Enable XML statistics, requires libxml2',
)
option(
'zlib',
type: 'feature',
value: 'auto',
description: 'Enable HTTP zlib compression, requires zlib',
)
# Internals
option(
'cachedb',
type: 'combo',
choices: ['qpcache'],
description: 'Default cache database type',
)
option(
'zonedb',
type: 'combo',
choices: ['qpzone'],
description: 'Default zone database type',
)
option(
'locktype',
type: 'combo',
choices: ['adaptive', 'system'],
description: 'Mutex lock type',
)
option(
'jemalloc',
type: 'feature',
value: 'auto',
description: 'Use jemalloc for allocation',
)
option(
'rcu-flavor',
type: 'combo',
choices: ['membarrier', 'bp', 'mb', 'qsbr'],
description: 'Userspace RCU Flavor (non-membarrier RCU is only allowed in development builds)',
)
option(
'tracing',
type: 'feature',
value: 'auto',
description: 'Enable User Statically Defined Tracing support, requires dtrace or systemtap',
)
# Behavior
option(
'auto-validation',
type: 'feature',
value: 'enabled',
description: 'Turn on DNSSEC validation by default, using the IANA root key',
)
# Development
option(
'developer',
type: 'feature',
value: 'disabled',
description: 'Enable development mode',
)
option(
'cmocka',
type: 'feature',
value: 'auto',
description: 'Enable cmocka based tests',
)
option(
'fuzzing',
type: 'feature',
value: 'auto',
description: 'Build fuzzing binaries',
)
option(
'fuzzing-backend',
type: 'combo',
choices: ['none', 'afl', 'libfuzzer', 'oss-fuzz'],
value: 'none',
description: 'Fuzzing backend (backend none with -Dfuzzing=enabled only compiles the binary)',
)
option(
'oss-fuzz-args',
type: 'string',
description: 'Fuzzing linking arguments for OSS-Fuzz',
)
option(
'trace-logging',
type: 'array',
value: [],
choices: ['query', 'single'],
description: 'Enable very verbose (single-)query trace logging',
)
option(
'leak-detection',
type: 'feature',
value: 'disabled',
description: 'enable the memory leak detection in external libraries (libxml2, libuv, OpenSSL)',
)
option(
'named-lto',
type: 'combo',
choices: ['disabled', 'auto', 'thin', 'full'],
value: 'auto',
description: 'Enable Link Time Optimization for named.',
)