use overlay instead of passing llvm/rustc/cargo around

This commit is contained in:
Sebastien Bourdeauducq 2019-06-06 12:05:48 +08:00
parent 78f67f82d3
commit 85f7b2bf15
4 changed files with 16 additions and 16 deletions

View File

@ -16,18 +16,5 @@ rec {
heavycomps = pkgs.callPackage ./heavycomps.nix { inherit nmigen; }; heavycomps = pkgs.callPackage ./heavycomps.nix { inherit nmigen; };
binutils-riscv = pkgs.callPackage ./compilers/binutils.nix { platform = "riscv32"; }; binutils-riscv = pkgs.callPackage ./compilers/binutils.nix { platform = "riscv32"; };
llvm_7 = pkgs.llvm_7.overrideAttrs(oa: { rust-riscv32imc-crates = pkgs.callPackage ./compilers/rust-riscv32imc-crates.nix { };
name = oa.name + "-riscv";
cmakeFlags = oa.cmakeFlags ++ ["-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=RISCV"];
});
rustc = (pkgs.rustc.overrideAttrs(oa: {
name = "${oa.pname}-${oa.version}-riscv";
})).override {
inherit llvm_7;
pkgsBuildBuild = pkgs.pkgsBuildBuild // { inherit llvm_7; };
pkgsBuildHost = pkgs.pkgsBuildHost // { inherit llvm_7; };
pkgsBuildTarget = pkgs.pkgsBuildTarget // { inherit llvm_7; };
};
rust-riscv32imc-crates = pkgs.callPackage ./compilers/rust-riscv32imc-crates.nix { inherit rustc; };
cargo = pkgs.cargo.override { inherit rustc; };
} }

7
overlay.nix Normal file
View File

@ -0,0 +1,7 @@
self: super:
{
llvm_7 = super.llvm_7.overrideAttrs(oa: {
name = oa.name + "-riscv";
cmakeFlags = oa.cmakeFlags ++ ["-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=RISCV"];
});
}

View File

@ -1,7 +1,12 @@
{ pkgs ? import <nixpkgs> {}}: { }:
let let
pkgs = import <nixpkgs> { overlays = [ import ./overlay.nix ]; };
derivations = import ./derivations.nix { inherit pkgs; }; derivations = import ./derivations.nix { inherit pkgs; };
jobs = derivations // { jobs = derivations // {
rustc = pkgs.rustc;
cargo = pkgs.cargo;
cargo-vendor = pkgs.cargo-vendor;
helloworld_ecp5 = import ./examples/helloworld_ecp5.nix { inherit pkgs; }; helloworld_ecp5 = import ./examples/helloworld_ecp5.nix { inherit pkgs; };
helloworld_kintex7 = import ./examples/helloworld_kintex7.nix { inherit pkgs; }; helloworld_kintex7 = import ./examples/helloworld_kintex7.nix { inherit pkgs; };
simplesoc_ecp5 = import ./examples/simplesoc_ecp5.nix { inherit pkgs; }; simplesoc_ecp5 = import ./examples/simplesoc_ecp5.nix { inherit pkgs; };

View File

@ -1,5 +1,6 @@
{ pkgs ? import <nixpkgs> {}}: { }:
let let
pkgs = import <nixpkgs> { overlays = [ import ./overlay.nix ]; };
hx = import ./derivations.nix { inherit pkgs; }; hx = import ./derivations.nix { inherit pkgs; };
in in
pkgs.mkShell { pkgs.mkShell {