|
@@ -0,0 +1,60 @@
|
|
|
|
|
+let
|
|
|
|
|
+ # Pin nixpkgs to a specific revision for reproducibility.
|
|
|
|
|
+ # See ./utils/update-nix-pin.sh for how to update pin.
|
|
|
|
|
+ nixpkgs_rev = "0b4defa25843";
|
|
|
|
|
+ nixpkgs_hash = "0p3rrd8wwlk0iwgzm7frkw1k98ywrh0avi7fqjjk87i68n3inxrs";
|
|
|
|
|
+
|
|
|
|
|
+ pkgs =
|
|
|
|
|
+ if builtins.getEnv "PINNED_NIXPKGS" == "1"
|
|
|
|
|
+ then import (builtins.fetchTarball {
|
|
|
|
|
+ url = "https://github.com/NixOS/nixpkgs/archive/${nixpkgs_rev}.tar.gz";
|
|
|
|
|
+ sha256 = nixpkgs_hash;
|
|
|
|
|
+ }) {}
|
|
|
|
|
+ else import <nixpkgs> { };
|
|
|
|
|
+
|
|
|
|
|
+ pico_sdk_rev = "v2.2.0-smaller-cyw43-spi-pio-rel";
|
|
|
|
|
+ pico_extras_rev = "sdk-2.2.0";
|
|
|
|
|
+
|
|
|
|
|
+ # Fetch pico-sdk from GitHub, including its submodules.
|
|
|
|
|
+ # Using a specific revision for reproducibility.
|
|
|
|
|
+ pico-sdk = pkgs.fetchFromGitHub {
|
|
|
|
|
+ owner = "bluescsi";
|
|
|
|
|
+ repo = "pico-sdk-internal";
|
|
|
|
|
+ rev = pico_sdk_rev;
|
|
|
|
|
+ fetchSubmodules = true;
|
|
|
|
|
+ # nix-prefetch-git --url https://github.com/raspberrypi/pico-sdk --rev 2.2.0 --fetch-submodules
|
|
|
|
|
+ hash = "sha256-RrJ1IIipggajM6MX+VXMILwfGdHt4o6Rj+utRxWE+mY=";
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ pico-extras = pkgs.fetchFromGitHub {
|
|
|
|
|
+ owner = "raspberrypi";
|
|
|
|
|
+ repo = "pico-extras";
|
|
|
|
|
+ rev = pico_extras_rev;
|
|
|
|
|
+ fetchSubmodules = true;
|
|
|
|
|
+ # nix-prefetch-git --url https://github.com/raspberrypi/pico-extras --rev sdk-2.2.0 --fetch-submodules
|
|
|
|
|
+ hash = "sha256-AfMycI+CMl76OERyRN8xQer7erh0wxpJnD4fu/Sl18c=";
|
|
|
|
|
+ };
|
|
|
|
|
+in
|
|
|
|
|
+pkgs.mkShell {
|
|
|
|
|
+ shellHook = ''
|
|
|
|
|
+ BLUE='[1;34m'
|
|
|
|
|
+ GREEN='[1;32m'
|
|
|
|
|
+ YELLOW='[1;33m'
|
|
|
|
|
+ NC='[0m'
|
|
|
|
|
+ export PICO_SDK_PATH="${pico-sdk}"
|
|
|
|
|
+ export PICO_EXTRAS_PATH="${pico-extras}"
|
|
|
|
|
+ echo -e "$BLUE""BlueSCSI development environment activated.""$NC"
|
|
|
|
|
+ echo -e "$GREEN""PICO_SDK_PATH"\(${pico_sdk_rev}\)"$NC"" set to: ""$YELLOW""$PICO_SDK_PATH""$NC"
|
|
|
|
|
+ echo -e "$GREEN""PICO_EXTRAS_PATH"\(${pico_extras_rev}\)"$NC"" set to: ""$YELLOW""$PICO_EXTRAS_PATH""$NC"
|
|
|
|
|
+ echo -e "$(pio --version)"
|
|
|
|
|
+ echo -e -n "$(arm-none-eabi-g++ --version | head -n1)\n"
|
|
|
|
|
+ echo -e "$GREEN""nixpkgs version: ""$YELLOW""${pkgs.lib.version}""$NC"
|
|
|
|
|
+ echo -e "$GREEN""nixpkgs hash: ""$YELLOW""${if builtins.getEnv "PINNED_NIXPKGS" == "1" then nixpkgs_hash else "unpinned"}""$NC"
|
|
|
|
|
+ '';
|
|
|
|
|
+ buildInputs = with pkgs;
|
|
|
|
|
+ [
|
|
|
|
|
+ pkgs.platformio
|
|
|
|
|
+ pkgs.gcc-arm-embedded
|
|
|
|
|
+ # pkgs.picotool # waiting on update in nixpkgs
|
|
|
|
|
+ ];
|
|
|
|
|
+}
|