fpga-starter-project-uart/flake.nix

86 lines
2.1 KiB
Nix
Raw Permalink Normal View History

2025-01-17 16:22:02 +00:00
{
inputs = {
nixpkgs = {
url = "github:NixOS/nixpkgs/nixpkgs-unstable";
};
utils.url = "github:numtide/flake-utils";
flake-compat = {
url = "github:edolstra/flake-compat";
flake = false;
};
};
outputs =
inputs:
inputs.utils.lib.eachDefaultSystem (
system:
let
pkgs = import inputs.nixpkgs {
localSystem = system;
overlays = [
(final: prev: {
bluespec-joh-template = prev.callPackage (
{
stdenv,
bluespec,
nextpnr,
openfpgaloader,
trellis,
which,
yosys,
}:
stdenv.mkDerivation {
pname = "bluespec-joh-template";
version = "0.1.0";
src = inputs.self;
# Versions can be checked with
# `nix eval --json ".#bluespec-joh-template.nativeBuildInputs" | nix-shell -p jq --run jq`
nativeBuildInputs = [
bluespec
nextpnr
openfpgaloader
trellis
which
yosys
];
makeFlags = [
"-C"
"ulx3s_fpga"
"mkTop.bit"
];
installPhase = ''
runHook preInstall
mkdir -p $out
cp ./ulx3s_fpga/mkTop.bit $out/
runHook postInstall
'';
}
) { };
})
];
};
in
{
packages = {
default = inputs.self.packages."${system}".bluespec-joh-template;
bluespec-joh-template = pkgs.bluespec-joh-template;
};
devShells.default = pkgs.callPackage (
{
mkShell,
bluespec-joh-template,
}:
mkShell {
inputsFrom = [ bluespec-joh-template ];
}
) { };
}
);
}