Select Git revision
default.nix
Forked from
Astro / rust-card10
Source project has a limited visibility.
default.nix 1.42 KiB
let
mozillaOverlay = import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz);
pkgs = import <nixpkgs> { overlays = [ mozillaOverlay ]; };
in
with pkgs;
let
openocd = callPackage ./openocd.nix {};
rust = rustChannelOfTargets "nightly" null [ "thumbv7em-none-eabi" ];
rustPlatform = makeRustPlatform {
rustc = rust;
cargo = rust;
};
epic-stubs = stdenv.mkDerivation {
name = "epic-stubs";
src = ./c;
buildInputs = [ gcc python3 ];
buildPhase = ''
${python3}/bin/python epicardium/api/genapi.py -H epicardium/epicardium.h -c client.c -s server.c
'';
installPhase = ''
mkdir $out
cp client.c server.c $out/
'';
};
firmware = rustPlatform.buildRustPackage rec {
name = "rust-card10";
version = "0.0.0";
src = ./.;
cargoSha256 = "10qv30p3kr570glnyn37b6r8pgx48zj0mr9qf84m4wk4sjp3wxsd";
buildInputs = [ pkgsCross.arm-embedded.stdenv.cc glibc_multi ];
prePatch = ''
cp ${epic-stubs}/client.c l0dable/src/
'';
preBuild = ''
export LIBCLANG_PATH=${llvmPackages.libclang}/lib
export CPATH=${glibc_multi.dev}/include
export CARGO_HOME=$(mktemp -d cargo-home.XXX)
cd example
'';
doCheck = false;
installPhase = ''
mkdir -p $out/lib
cp target/thumbv7em-none-eabi/release/example $out/lib/example.elf
'';
};
in {
inherit rust rustPlatform firmware epic-stubs;
}