mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-15 18:56:16 +02:00
130 lines
2.3 KiB
Nix
130 lines
2.3 KiB
Nix
|
{ lib
|
||
|
, stdenv
|
||
|
, mkMesonDerivation
|
||
|
, releaseTools
|
||
|
|
||
|
, meson
|
||
|
, ninja
|
||
|
, pkg-config
|
||
|
|
||
|
, nix-store
|
||
|
, nix-expr
|
||
|
, nix-main
|
||
|
, nix-cmd
|
||
|
|
||
|
, rapidcheck
|
||
|
, gtest
|
||
|
, runCommand
|
||
|
|
||
|
# Configuration Options
|
||
|
|
||
|
, version
|
||
|
}:
|
||
|
|
||
|
let
|
||
|
inherit (lib) fileset;
|
||
|
in
|
||
|
|
||
|
mkMesonDerivation (finalAttrs: {
|
||
|
pname = "nix";
|
||
|
inherit version;
|
||
|
|
||
|
workDir = ./.;
|
||
|
fileset = fileset.unions ([
|
||
|
../../build-utils-meson
|
||
|
./build-utils-meson
|
||
|
../../.version
|
||
|
./.version
|
||
|
./meson.build
|
||
|
# ./meson.options
|
||
|
|
||
|
# Symbolic links to other dirs
|
||
|
./build-remote
|
||
|
./doc
|
||
|
./nix-build
|
||
|
./nix-channel
|
||
|
./nix-collect-garbage
|
||
|
./nix-copy-closure
|
||
|
./nix-env
|
||
|
./nix-instantiate
|
||
|
./nix-store
|
||
|
|
||
|
# Doc nix files for --help
|
||
|
../../doc/manual/generate-manpage.nix
|
||
|
../../doc/manual/utils.nix
|
||
|
../../doc/manual/generate-settings.nix
|
||
|
../../doc/manual/generate-store-info.nix
|
||
|
|
||
|
# Other files to be included as string literals
|
||
|
../nix-channel/unpack-channel.nix
|
||
|
../nix-env/buildenv.nix
|
||
|
./get-env.sh
|
||
|
./help-stores.md
|
||
|
../../doc/manual/src/store/types/index.md.in
|
||
|
./profiles.md
|
||
|
../../doc/manual/src/command-ref/files/profiles.md
|
||
|
|
||
|
# Files
|
||
|
] ++ lib.concatMap
|
||
|
(dir: [
|
||
|
(fileset.fileFilter (file: file.hasExt "cc") dir)
|
||
|
(fileset.fileFilter (file: file.hasExt "hh") dir)
|
||
|
(fileset.fileFilter (file: file.hasExt "md") dir)
|
||
|
])
|
||
|
[
|
||
|
./.
|
||
|
../build-remote
|
||
|
../nix-build
|
||
|
../nix-channel
|
||
|
../nix-collect-garbage
|
||
|
../nix-copy-closure
|
||
|
../nix-env
|
||
|
../nix-instantiate
|
||
|
../nix-store
|
||
|
]
|
||
|
);
|
||
|
|
||
|
outputs = [ "out" "dev" ];
|
||
|
|
||
|
nativeBuildInputs = [
|
||
|
meson
|
||
|
ninja
|
||
|
pkg-config
|
||
|
];
|
||
|
|
||
|
buildInputs = [
|
||
|
nix-store
|
||
|
nix-expr
|
||
|
nix-main
|
||
|
nix-cmd
|
||
|
];
|
||
|
|
||
|
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 = [
|
||
|
];
|
||
|
|
||
|
env = lib.optionalAttrs (stdenv.isLinux && !(stdenv.hostPlatform.isStatic && stdenv.system == "aarch64-linux")) {
|
||
|
LDFLAGS = "-fuse-ld=gold";
|
||
|
};
|
||
|
|
||
|
enableParallelBuilding = true;
|
||
|
|
||
|
separateDebugInfo = !stdenv.hostPlatform.isStatic;
|
||
|
|
||
|
strictDeps = true;
|
||
|
|
||
|
hardeningDisable = lib.optional stdenv.hostPlatform.isStatic "pie";
|
||
|
|
||
|
meta = {
|
||
|
platforms = lib.platforms.unix ++ lib.platforms.windows;
|
||
|
};
|
||
|
|
||
|
})
|