You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.3 KiB
49 lines
1.3 KiB
# |
|
# This file defines a development shell containing: |
|
# - hardware synthesis and simulation tools |
|
# - riscv32 cross-compiling toolchain |
|
# |
|
# Enable this shell by calling 'nix develop' in the same directory as this file. |
|
# |
|
|
|
{ |
|
description = "InField project development shell"; |
|
|
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs/release-25.11"; |
|
|
|
outputs = { self, nixpkgs }: |
|
let |
|
systems = [ "x86_64-darwin" "aarch64-darwin" "x86_64-linux" "aarch64-linux" ]; |
|
forAllSystems = nixpkgs.lib.genAttrs systems; |
|
in { |
|
devShells = forAllSystems (system: |
|
let |
|
pkgs = nixpkgs.legacyPackages.${system}; |
|
crossPkgs = pkgs.pkgsCross.riscv32-embedded; |
|
in { |
|
default = crossPkgs.pkgsStatic.callPackage ({ pkgs }: pkgs.mkShell { |
|
|
|
nativeBuildInputs = with pkgs; [ pkg-config file ]; |
|
|
|
buildInputs = with pkgs; [ zlib ]; |
|
|
|
depsBuildBuild = with nixpkgs.legacyPackages.${system}; [ |
|
(python3.withPackages (p: [ p.pillow ])) |
|
uv |
|
gcc |
|
yosys |
|
sby |
|
nextpnr |
|
arachne-pnr |
|
icestorm |
|
z3 |
|
boolector |
|
yices |
|
iverilog |
|
verilator |
|
]; |
|
}) {}; |
|
} |
|
); |
|
}; |
|
}
|
|
|