# vim: filetype=meson

option('enable-build', type : 'boolean', value : true,
  description : 'set to false to not actually build. Only really makes sense with -Dinternal-api-docs=true',
)

option('gc', type : 'feature',
  description : 'enable garbage collection in the Nix expression evaluator (requires Boehm GC)',
)

option('enable-embedded-sandbox-shell', type : 'boolean', value : false,
  description : 'include the sandbox shell in the Nix binary',
)

option('cpuid', type : 'feature',
  description : 'determine microarchitecture levels with libcpuid (only relevant on x86_64)',
)

option('seccomp-sandboxing', type : 'feature',
  description : 'build support for seccomp sandboxing (recommended unless your arch doesn\'t support libseccomp, only relevant on Linux)',
)

option('sandbox-shell', type : 'string', value : 'busybox',
  description : 'path to a statically-linked shell to use as /bin/sh in sandboxes (usually busybox)',
)

option('build-test-shell', type: 'string',
  description : 'path to a statically-linked shell which also offeres coreutils functionality'
)

option('pasta-path', type : 'string', value : 'pasta',
  description : 'path to the location of pasta (provided by passt)',
)

option('enable-tests', type : 'boolean', value : true,
  description : 'whether to enable tests or not (requires rapidcheck and gtest)',
)

option('tests-color', type : 'boolean', value : true,
  description : 'set to false to disable color output in gtest',
)

option('tests-brief', type : 'boolean', value : false,
  description : 'set to true for shorter tests output',
)

option('profile-build', type : 'feature', value: 'disabled',
  description : 'whether to enable -ftime-trace in clang builds, allowing for diagnosing the cause of build time.'
)

option('store-dir', type : 'string', value : '/nix/store',
  description : 'path of the Nix store',
)

option('state-dir', type : 'string', value : '/nix/var',
  description : 'path to store state in for Nix',
)

option('log-dir', type : 'string', value : '/nix/var/log/nix',
  description : 'path to store logs in for Nix',
)

option('enable-docs', type : 'boolean', value : true,
  description : 'whether to build documentation',
)

option('internal-api-docs', type : 'feature', value : 'auto',
  description : 'whether to build internal API documentation (requires doxygen)',
)

option('nix-eval-jobs', type : 'feature', value : 'disabled',
  description : 'whether to build nix-eval-jobs as part of the Lix build. For development purposes only: do not do packaging with this.',
)

# A relative path means it gets appended to prefix.
option('profile-dir', type : 'string', value : 'etc/profile.d',
  description : 'the path to install shell profile files',
)

option('enable-pch-std', type : 'boolean', value : true,
  description : 'whether to use precompiled headers for C++\'s standard library (breaks clangd if you\'re using GCC)',
)

option('dtrace-probes', type : 'feature', value : 'auto',
  description : 'whether to build dtrace/bpftrace compatible USDT probes into Lix'
)

option('lix-clang-tidy-checks-path', type : 'string', value : '',
  description: 'path to lix-clang-tidy-checks library file, if providing it externally. Uses an internal one if this is not set',
)

option('disable-fibers', type : 'boolean', value : false,
  description : 'whether to disable fibers. use only when building with musl; we can\'t detect this.',
)
