mirror of
https://github.com/nix-community/naersk
synced 2024-11-26 13:30:17 +00:00
136 lines
4.5 KiB
Nix
136 lines
4.5 KiB
Nix
with rec
|
|
{ sources = import ./nix/sources.nix ;
|
|
pkgs = import sources.nixpkgs {};
|
|
rustPackages =
|
|
with sources;
|
|
(pkgs.callPackage rust-nightly {}).rust {inherit (rust-nightly) date; };
|
|
|
|
naersk = pkgs.callPackage ./default.nix
|
|
# We need a more recent rustc for building cargo:
|
|
# error: internal compiler error: src/librustc/ty/subst.rs:491: Type
|
|
# parameter `T/#1` (T/1) out of range when substituting (root type=Some(T))
|
|
# substs=[T]
|
|
{ cargo = rustPackages; rustc = rustPackages;
|
|
};
|
|
};
|
|
|
|
with
|
|
{ builtinz = builtins // pkgs.callPackage ./builtins {}; };
|
|
|
|
rec
|
|
{ rustfmt = naersk.buildPackage sources.rustfmt { doDocFail = false; };
|
|
rustfmt_test = pkgs.runCommand "rustfmt-test"
|
|
{ buildInputs = [ rustfmt ]; }
|
|
"rustfmt --help && cargo-fmt --help && touch $out";
|
|
|
|
ripgrep = naersk.buildPackage sources.ripgrep { usePureFromTOML = false; };
|
|
# XXX: the `rg` executable is missing because we don't do `cargo install
|
|
# --path .`.
|
|
# ripgrep_test = pkgs.runCommand "ripgrep-test"
|
|
# { buildInputs = [ ripgrep ]; }
|
|
# "rg --help && touch $out";
|
|
|
|
ripgrep-all = naersk.buildPackage sources.ripgrep-all {};
|
|
ripgrep-all_test = pkgs.runCommand "ripgrep-all-test"
|
|
{ buildInputs = [ ripgrep-all ]; }
|
|
"rga --help && touch $out";
|
|
|
|
lorri = naersk.buildPackage sources.lorri
|
|
{ override = _oldAttrs:
|
|
{ BUILD_REV_COUNT = 1;
|
|
RUN_TIME_CLOSURE = "${sources.lorri}/nix/runtime.nix";
|
|
};
|
|
doCheck = false;
|
|
};
|
|
lorri_test = pkgs.runCommand "lorri-test" { buildInputs = [ lorri ]; }
|
|
"lorri --help && touch $out";
|
|
|
|
talent-plan-1 = naersk.buildPackage "${sources.talent-plan}/rust/projects/project-1" {};
|
|
talent-plan-2 = naersk.buildPackage "${sources.talent-plan}/rust/projects/project-2" {};
|
|
talent-plan-3 = naersk.buildPackage
|
|
"${sources.talent-plan}/rust/projects/project-3"
|
|
{ doCheck = false; };
|
|
|
|
# TODO: support for git deps
|
|
#test_talent-plan-4 = buildPackage "${sources.talent-plan}/rust/projects/project-4" {};
|
|
#test_talent-plan-5 = buildPackage "${sources.talent-plan}/rust/projects/project-5" {};
|
|
|
|
# TODO: change this when niv finally supports submodules
|
|
lucetSrc = pkgs.fetchFromGitHub
|
|
{ inherit (sources.lucet) owner repo rev;
|
|
fetchSubmodules = true;
|
|
sha256 = "1vwz7gijq4pcs2dvaazmzcdyb8d64y5qss6s4j2wwigsgqmpfdvs";
|
|
} ;
|
|
lucet = naersk.buildPackage lucetSrc
|
|
{ nativeBuildInputs = [ pkgs.cmake pkgs.python3 ] ;
|
|
doDoc = false;
|
|
doCheck = false;
|
|
targets =
|
|
[ "lucetc"
|
|
"lucet-runtime"
|
|
"lucet-runtime-internals"
|
|
"lucet-module-data"
|
|
];
|
|
};
|
|
|
|
# error in readTOML (remarshal):
|
|
# Error: Cannot parse as TOML (<string>(92, 14): msg)
|
|
#rust = naersk.buildPackage sources.rust {};
|
|
|
|
rustlings = naersk.buildPackage sources.rustlings {};
|
|
|
|
simple-dep = naersk.buildPackage
|
|
(pkgs.lib.cleanSource ./test/simple-dep)
|
|
{};
|
|
|
|
workspace = naersk.buildPackage
|
|
(pkgs.lib.cleanSource ./test/workspace)
|
|
{ doDoc = false; };
|
|
|
|
# Fails with some remarshal error
|
|
#servo = naersk.buildPackage
|
|
#sources.servo
|
|
#{ inherit cargo; };
|
|
|
|
# TODO: fix toml
|
|
cargo =
|
|
with rec
|
|
{ cargoSrc = sources.cargo;
|
|
# cannot use the pure readTOML
|
|
cargoCargoToml = builtinz.readTOML false "${cargoSrc}/Cargo.toml";
|
|
|
|
# XXX: this works around some hack that breaks the build. For more info
|
|
# on the hack, see
|
|
# https://github.com/rust-lang/rust/blob/b43eb4235ac43c822d903ad26ed806f34cc1a14a/Cargo.toml#L63-L65
|
|
cargoCargoToml' = cargoCargoToml //
|
|
{ dependencies = pkgs.lib.filterAttrs (k: _:
|
|
k != "rustc-workspace-hack")
|
|
cargoCargoToml.dependencies;
|
|
};
|
|
|
|
cargoCargoLock = builtinz.readTOML true "${sources.rust}/Cargo.lock";
|
|
};
|
|
naersk.buildPackage cargoSrc
|
|
{ cargolock = cargoCargoLock;
|
|
cargotoml = cargoCargoToml';
|
|
|
|
# Tests fail, although cargo seems to operate normally
|
|
doCheck = false;
|
|
|
|
override = oldAttrs:
|
|
{ buildInputs = oldAttrs.buildInputs ++
|
|
[ pkgs.pkgconfig
|
|
pkgs.openssl
|
|
pkgs.libgit2
|
|
pkgs.libiconv
|
|
pkgs.curl
|
|
pkgs.git
|
|
];
|
|
LIBGIT2_SYS_USE_PKG_CONFIG = 1;
|
|
} // pkgs.lib.optionalAttrs pkgs.stdenv.isDarwin
|
|
{
|
|
NIX_LDFLAGS="-F${pkgs.darwin.apple_sdk.frameworks.CoreFoundation}/Library/Frameworks -framework CoreFoundation ";
|
|
|
|
};
|
|
};
|
|
}
|