shell.nix 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. let
  2. # Pin nixpkgs to a specific revision for reproducibility.
  3. # See ./utils/update-nix-pin.sh for how to update pin.
  4. nixpkgs_rev = "0b4defa25843";
  5. nixpkgs_hash = "0p3rrd8wwlk0iwgzm7frkw1k98ywrh0avi7fqjjk87i68n3inxrs";
  6. pkgs =
  7. if builtins.getEnv "PINNED_NIXPKGS" == "1"
  8. then import (builtins.fetchTarball {
  9. url = "https://github.com/NixOS/nixpkgs/archive/${nixpkgs_rev}.tar.gz";
  10. sha256 = nixpkgs_hash;
  11. }) {}
  12. else import <nixpkgs> { };
  13. pico_sdk_rev = "v2.2.0-smaller-cyw43-spi-pio-rel";
  14. pico_extras_rev = "sdk-2.2.0";
  15. # Fetch pico-sdk from GitHub, including its submodules.
  16. # Using a specific revision for reproducibility.
  17. pico-sdk = pkgs.fetchFromGitHub {
  18. owner = "bluescsi";
  19. repo = "pico-sdk-internal";
  20. rev = pico_sdk_rev;
  21. fetchSubmodules = true;
  22. # nix-prefetch-git --url https://github.com/raspberrypi/pico-sdk --rev 2.2.0 --fetch-submodules
  23. hash = "sha256-RrJ1IIipggajM6MX+VXMILwfGdHt4o6Rj+utRxWE+mY=";
  24. };
  25. pico-extras = pkgs.fetchFromGitHub {
  26. owner = "raspberrypi";
  27. repo = "pico-extras";
  28. rev = pico_extras_rev;
  29. fetchSubmodules = true;
  30. # nix-prefetch-git --url https://github.com/raspberrypi/pico-extras --rev sdk-2.2.0 --fetch-submodules
  31. hash = "sha256-AfMycI+CMl76OERyRN8xQer7erh0wxpJnD4fu/Sl18c=";
  32. };
  33. in
  34. pkgs.mkShell {
  35. shellHook = ''
  36. BLUE=''
  37. GREEN=''
  38. YELLOW=''
  39. NC=''
  40. export PICO_SDK_PATH="${pico-sdk}"
  41. export PICO_EXTRAS_PATH="${pico-extras}"
  42. echo -e "$BLUE""BlueSCSI development environment activated.""$NC"
  43. echo -e "$GREEN""PICO_SDK_PATH"\(${pico_sdk_rev}\)"$NC"" set to: ""$YELLOW""$PICO_SDK_PATH""$NC"
  44. echo -e "$GREEN""PICO_EXTRAS_PATH"\(${pico_extras_rev}\)"$NC"" set to: ""$YELLOW""$PICO_EXTRAS_PATH""$NC"
  45. echo -e "$(pio --version)"
  46. echo -e -n "$(arm-none-eabi-g++ --version | head -n1)\n"
  47. echo -e "$GREEN""nixpkgs version: ""$YELLOW""${pkgs.lib.version}""$NC"
  48. echo -e "$GREEN""nixpkgs hash: ""$YELLOW""${if builtins.getEnv "PINNED_NIXPKGS" == "1" then nixpkgs_hash else "unpinned"}""$NC"
  49. '';
  50. buildInputs = with pkgs;
  51. [
  52. pkgs.platformio
  53. pkgs.gcc-arm-embedded
  54. # pkgs.picotool # waiting on update in nixpkgs
  55. ];
  56. }