feat(3p/nix): Add new Meson-based derivation for building Nix
This builds the mesonified Nix and is compatible with the depot structure and nix-shell.
This commit is contained in:
parent
9d865dbb1f
commit
8944370b7f
1 changed files with 71 additions and 0 deletions
71
third_party/nix/default.nix
vendored
Normal file
71
third_party/nix/default.nix
vendored
Normal file
|
@ -0,0 +1,71 @@
|
|||
{ pkgs ? (import <nixpkgs> {}).third_party, ... }:
|
||||
|
||||
let
|
||||
stdenv = with pkgs; overrideCC clangStdenv clang_9;
|
||||
|
||||
aws-s3-cpp = pkgs.aws-sdk-cpp.override {
|
||||
apis = ["s3" "transfer"];
|
||||
customMemoryManagement = false;
|
||||
};
|
||||
|
||||
# TODO(tazjin): this is copied from the original derivation, but what
|
||||
# is it for?
|
||||
largeBoehm = pkgs.boehmgc.override {
|
||||
enableLargeConfig = true;
|
||||
};
|
||||
in stdenv.mkDerivation {
|
||||
name = "nix";
|
||||
src = ./.;
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
bison
|
||||
meson
|
||||
ninja
|
||||
pkgconfig
|
||||
libxml2
|
||||
libxslt
|
||||
];
|
||||
|
||||
# TODO(tazjin): Some of these might only be required for native inputs
|
||||
buildInputs = with pkgs; [
|
||||
aws-s3-cpp
|
||||
boost
|
||||
brotli
|
||||
bzip2
|
||||
curl
|
||||
editline
|
||||
flex
|
||||
libseccomp
|
||||
libsodium
|
||||
openssl
|
||||
sqlite
|
||||
xz
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
largeBoehm
|
||||
];
|
||||
|
||||
# Install the various symlinks to the Nix binary which users expect
|
||||
# to exist.
|
||||
postInstall = ''
|
||||
ln -s $out/bin/nix $out/bin/nix-build
|
||||
ln -s $out/bin/nix $out/bin/nix-channel
|
||||
ln -s $out/bin/nix $out/bin/nix-collect-garbage
|
||||
ln -s $out/bin/nix $out/bin/nix-copy-closure
|
||||
ln -s $out/bin/nix $out/bin/nix-daemon
|
||||
ln -s $out/bin/nix $out/bin/nix-env
|
||||
ln -s $out/bin/nix $out/bin/nix-hash
|
||||
ln -s $out/bin/nix $out/bin/nix-instantiate
|
||||
ln -s $out/bin/nix $out/bin/nix-prefetch-url
|
||||
ln -s $out/bin/nix $out/bin/nix-shell
|
||||
ln -s $out/bin/nix $out/bin/nix-store
|
||||
|
||||
mkdir -p $out/libexec/nix
|
||||
ln -s $out/bin/nix $out/libexec/nix/remote-build
|
||||
'';
|
||||
|
||||
# TODO(tazjin): equivalent of --enable-gc
|
||||
# TODO(tazjin): integration test setup?
|
||||
# TODO(tazjin): docs generation?
|
||||
}
|
Loading…
Reference in a new issue