build: optionally build and install with meson
This commit adds several meson.build, which successfully build and
install Lix executables, libraries, and headers. Meson does not yet
build docs, Perl bindings, or run tests, which will be added in
following commits. As such, this commit does not remove the existing
build system, or make it the default, and also as such, this commit has
several FIXMEs and TODOs as notes for what should be done before the
existing autoconf + make buildsystem can be removed and Meson made the
default. This commit does not modify any source files.
A Meson-enabled build is also added as a Hydra job, and to
`nix flake check`.
Change-Id: I667c8685b13b7bab91e281053f807a11616ae3d4
2024-03-21 19:41:23 +00:00
|
|
|
# vim: filetype=meson
|
2024-04-11 18:17:19 +00:00
|
|
|
|
|
|
|
option('enable-build', type : 'boolean', value : true,
|
2024-08-01 03:37:27 +00:00
|
|
|
description : 'set to false to not actually build. Only really makes sense with -Dinternal-api-docs=true',
|
2024-04-11 18:17:19 +00:00
|
|
|
)
|
|
|
|
|
build: optionally build and install with meson
This commit adds several meson.build, which successfully build and
install Lix executables, libraries, and headers. Meson does not yet
build docs, Perl bindings, or run tests, which will be added in
following commits. As such, this commit does not remove the existing
build system, or make it the default, and also as such, this commit has
several FIXMEs and TODOs as notes for what should be done before the
existing autoconf + make buildsystem can be removed and Meson made the
default. This commit does not modify any source files.
A Meson-enabled build is also added as a Hydra job, and to
`nix flake check`.
Change-Id: I667c8685b13b7bab91e281053f807a11616ae3d4
2024-03-21 19:41:23 +00:00
|
|
|
option('gc', type : 'feature',
|
|
|
|
description : 'enable garbage collection in the Nix expression evaluator (requires Boehm GC)',
|
|
|
|
)
|
2024-04-18 22:15:24 +00:00
|
|
|
|
|
|
|
option('enable-embedded-sandbox-shell', type : 'boolean', value : false,
|
build: optionally build and install with meson
This commit adds several meson.build, which successfully build and
install Lix executables, libraries, and headers. Meson does not yet
build docs, Perl bindings, or run tests, which will be added in
following commits. As such, this commit does not remove the existing
build system, or make it the default, and also as such, this commit has
several FIXMEs and TODOs as notes for what should be done before the
existing autoconf + make buildsystem can be removed and Meson made the
default. This commit does not modify any source files.
A Meson-enabled build is also added as a Hydra job, and to
`nix flake check`.
Change-Id: I667c8685b13b7bab91e281053f807a11616ae3d4
2024-03-21 19:41:23 +00:00
|
|
|
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)',
|
|
|
|
)
|
|
|
|
|
2024-03-21 21:38:11 +00:00
|
|
|
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',
|
|
|
|
)
|
|
|
|
|
2024-03-19 06:03:48 +00:00
|
|
|
option('profile-build', type : 'feature', value: 'disabled',
|
2024-08-01 03:37:27 +00:00
|
|
|
description : 'whether to enable -ftime-trace in clang builds, allowing for diagnosing the cause of build time.'
|
2024-03-19 06:03:48 +00:00
|
|
|
)
|
|
|
|
|
build: optionally build and install with meson
This commit adds several meson.build, which successfully build and
install Lix executables, libraries, and headers. Meson does not yet
build docs, Perl bindings, or run tests, which will be added in
following commits. As such, this commit does not remove the existing
build system, or make it the default, and also as such, this commit has
several FIXMEs and TODOs as notes for what should be done before the
existing autoconf + make buildsystem can be removed and Meson made the
default. This commit does not modify any source files.
A Meson-enabled build is also added as a Hydra job, and to
`nix flake check`.
Change-Id: I667c8685b13b7bab91e281053f807a11616ae3d4
2024-03-21 19:41:23 +00:00
|
|
|
option('store-dir', type : 'string', value : '/nix/store',
|
|
|
|
description : 'path of the Nix store',
|
|
|
|
)
|
|
|
|
|
2024-03-29 15:48:41 +00:00
|
|
|
option('state-dir', type : 'string', value : '/nix/var',
|
build: optionally build and install with meson
This commit adds several meson.build, which successfully build and
install Lix executables, libraries, and headers. Meson does not yet
build docs, Perl bindings, or run tests, which will be added in
following commits. As such, this commit does not remove the existing
build system, or make it the default, and also as such, this commit has
several FIXMEs and TODOs as notes for what should be done before the
existing autoconf + make buildsystem can be removed and Meson made the
default. This commit does not modify any source files.
A Meson-enabled build is also added as a Hydra job, and to
`nix flake check`.
Change-Id: I667c8685b13b7bab91e281053f807a11616ae3d4
2024-03-21 19:41:23 +00:00
|
|
|
description : 'path to store state in for Nix',
|
|
|
|
)
|
|
|
|
|
2024-04-10 22:14:02 +00:00
|
|
|
option('log-dir', type : 'string', value : '/nix/var/log/nix',
|
build: optionally build and install with meson
This commit adds several meson.build, which successfully build and
install Lix executables, libraries, and headers. Meson does not yet
build docs, Perl bindings, or run tests, which will be added in
following commits. As such, this commit does not remove the existing
build system, or make it the default, and also as such, this commit has
several FIXMEs and TODOs as notes for what should be done before the
existing autoconf + make buildsystem can be removed and Meson made the
default. This commit does not modify any source files.
A Meson-enabled build is also added as a Hydra job, and to
`nix flake check`.
Change-Id: I667c8685b13b7bab91e281053f807a11616ae3d4
2024-03-21 19:41:23 +00:00
|
|
|
description : 'path to store logs in for Nix',
|
|
|
|
)
|
2024-03-30 15:28:59 +00:00
|
|
|
|
|
|
|
option('enable-docs', type : 'boolean', value : true,
|
|
|
|
description : 'whether to build documentation',
|
|
|
|
)
|
2024-04-09 08:03:24 +00:00
|
|
|
|
2024-04-11 18:17:19 +00:00
|
|
|
option('internal-api-docs', type : 'feature', value : 'auto',
|
|
|
|
description : 'whether to build internal API documentation (requires doxygen)',
|
|
|
|
)
|
|
|
|
|
2024-04-09 08:03:24 +00:00
|
|
|
# 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',
|
|
|
|
)
|
2024-06-06 18:46:26 +00:00
|
|
|
|
|
|
|
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)',
|
|
|
|
)
|
2024-08-01 03:37:27 +00:00
|
|
|
|
|
|
|
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',
|
|
|
|
)
|