shells (artiq-fast): change artiqpkgs, vivado to arguments

This allows overriding the artiqpkgs used downstream.
The issue is that previously artiqpkgs required <artiqSrc> to be defined,
and overriding that required setting paths, added complexity, and possible impurities.

This solution allows reuse of the shell[-dev], from a given version of
ARTIQ, without necessarily specifying source or a local source repo.
This commit is contained in:
Drew Risinger 2022-01-10 09:26:11 -05:00
parent 9a8a59c525
commit 47960f539b
2 changed files with 25 additions and 27 deletions

View File

@ -1,21 +1,20 @@
{ pkgs ? import <nixpkgs> {}}: { pkgs ? import <nixpkgs> {}
, artiqpkgs ? import ./default.nix { inherit pkgs; }
, vivado ? import ./vivado.nix { inherit pkgs; }
}:
let assert pkgs.lib.asserts.assertMsg (!pkgs.lib.strings.versionAtLeast artiqpkgs.artiq.version "7.0") "For ARTIQ 7+, use 'nix develop' on the flake instead.";
artiqpkgs = import ./default.nix { inherit pkgs; }; pkgs.mkShell {
vivado = import ./vivado.nix { inherit pkgs; }; buildInputs = [
in vivado
assert pkgs.lib.asserts.assertMsg (!pkgs.lib.strings.versionAtLeast artiqpkgs.artiq.version "7.0") "For ARTIQ 7+, use 'nix develop' on the flake instead."; pkgs.gnumake
pkgs.mkShell { (pkgs.python3.withPackages(ps: (with ps; [ jinja2 jsonschema numpy paramiko ]) ++ (with artiqpkgs; [ migen microscope misoc jesd204b migen-axi artiq ])))
buildInputs = [ artiqpkgs.cargo-legacy
vivado artiqpkgs.rustc-legacy
pkgs.gnumake artiqpkgs.binutils-or1k
(pkgs.python3.withPackages(ps: (with ps; [ jinja2 jsonschema numpy paramiko ]) ++ (with artiqpkgs; [ migen microscope misoc jesd204b migen-axi artiq ]))) artiqpkgs.binutils-arm
artiqpkgs.cargo-legacy artiqpkgs.llvm-or1k
artiqpkgs.rustc-legacy artiqpkgs.openocd
artiqpkgs.binutils-or1k ];
artiqpkgs.binutils-arm TARGET_AR="or1k-linux-ar";
artiqpkgs.llvm-or1k }
artiqpkgs.openocd
];
TARGET_AR="or1k-linux-ar";
}

View File

@ -1,8 +1,7 @@
{ pkgs ? import <nixpkgs> {}}: { pkgs ? import <nixpkgs> {}
, artiqpkgs ? import ./default.nix { inherit pkgs; }
}:
let pkgs.mkShell {
artiqpkgs = import ./default.nix { inherit pkgs; }; buildInputs = [ (pkgs.python3.withPackages(ps: [artiqpkgs.artiq])) ];
in }
pkgs.mkShell {
buildInputs = [ (pkgs.python3.withPackages(ps: [artiqpkgs.artiq])) ];
}