mirror of
https://github.com/NixOS/nix.git
synced 2025-12-07 01:21:00 +01:00
This does not include any automation for the release branch, but is based on the configuration of https://github.com/NixOS/nix/pull/12349 pre-commit run -a nixfmt-rfc-style
111 lines
2 KiB
Nix
111 lines
2 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
mkMesonDerivation,
|
|
releaseTools,
|
|
|
|
meson,
|
|
ninja,
|
|
pkg-config,
|
|
|
|
nix-util,
|
|
nix-store,
|
|
nix-fetchers,
|
|
nix-expr,
|
|
nix-flake,
|
|
nix-main,
|
|
editline,
|
|
readline,
|
|
lowdown,
|
|
nlohmann_json,
|
|
|
|
# Configuration Options
|
|
|
|
version,
|
|
|
|
# Whether to enable Markdown rendering in the Nix binary.
|
|
enableMarkdown ? !stdenv.hostPlatform.isWindows,
|
|
|
|
# Which interactive line editor library to use for Nix's repl.
|
|
#
|
|
# Currently supported choices are:
|
|
#
|
|
# - editline (default)
|
|
# - readline
|
|
readlineFlavor ? if stdenv.hostPlatform.isWindows then "readline" else "editline",
|
|
}:
|
|
|
|
let
|
|
inherit (lib) fileset;
|
|
in
|
|
|
|
mkMesonDerivation (finalAttrs: {
|
|
pname = "nix-cmd";
|
|
inherit version;
|
|
|
|
workDir = ./.;
|
|
fileset = fileset.unions [
|
|
../../build-utils-meson
|
|
./build-utils-meson
|
|
../../.version
|
|
./.version
|
|
./meson.build
|
|
./meson.options
|
|
(fileset.fileFilter (file: file.hasExt "cc") ./.)
|
|
(fileset.fileFilter (file: file.hasExt "hh") ./.)
|
|
];
|
|
|
|
outputs = [
|
|
"out"
|
|
"dev"
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
meson
|
|
ninja
|
|
pkg-config
|
|
];
|
|
|
|
buildInputs = [
|
|
({ inherit editline readline; }.${readlineFlavor})
|
|
] ++ lib.optional enableMarkdown lowdown;
|
|
|
|
propagatedBuildInputs = [
|
|
nix-util
|
|
nix-store
|
|
nix-fetchers
|
|
nix-expr
|
|
nix-flake
|
|
nix-main
|
|
nlohmann_json
|
|
];
|
|
|
|
preConfigure =
|
|
# "Inline" .version so it's not a symlink, and includes the suffix.
|
|
# Do the meson utils, without modification.
|
|
''
|
|
chmod u+w ./.version
|
|
echo ${version} > ../../.version
|
|
'';
|
|
|
|
mesonFlags = [
|
|
(lib.mesonEnable "markdown" enableMarkdown)
|
|
(lib.mesonOption "readline-flavor" readlineFlavor)
|
|
];
|
|
|
|
env =
|
|
lib.optionalAttrs
|
|
(stdenv.isLinux && !(stdenv.hostPlatform.isStatic && stdenv.system == "aarch64-linux"))
|
|
{
|
|
LDFLAGS = "-fuse-ld=gold";
|
|
};
|
|
|
|
separateDebugInfo = !stdenv.hostPlatform.isStatic;
|
|
|
|
hardeningDisable = lib.optional stdenv.hostPlatform.isStatic "pie";
|
|
|
|
meta = {
|
|
platforms = lib.platforms.unix ++ lib.platforms.windows;
|
|
};
|
|
|
|
})
|