flake.nix 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. {
  2. description = "Darkfi Dev Environment";
  3. inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-22.05";
  4. inputs.flake-utils.url = "github:numtide/flake-utils";
  5. inputs.mozilla = { url = "github:mozilla/nixpkgs-mozilla"; flake = false; };
  6. outputs =
  7. { self
  8. , nixpkgs
  9. , mozilla
  10. , flake-utils
  11. , ...
  12. } @inputs:
  13. let rustOverlay = final: prev:
  14. let rustChannel = prev.rustChannelOf {
  15. channel = "1.60.0";
  16. sha256 = "sha256-otgm+7nEl94JG/B+TYhWseZsHV1voGcBsW/lOD2/68g=";
  17. };
  18. in
  19. { inherit rustChannel;
  20. rustc = rustChannel.rust;
  21. cargo = rustChannel.rust;
  22. };
  23. in flake-utils.lib.eachDefaultSystem
  24. (system:
  25. let
  26. pkgs = import nixpkgs {
  27. inherit system;
  28. overlays = [
  29. (import "${mozilla}/rust-overlay.nix")
  30. rustOverlay
  31. ];
  32. };
  33. in {
  34. devShell = pkgs.mkShell {
  35. #RUST_BACKTRACE=1;
  36. #RUST_LOG="trace";
  37. buildInputs = with pkgs; [
  38. openssl
  39. gnumake
  40. openssl
  41. clang
  42. libclang
  43. pkg-config
  44. cmake
  45. llvm
  46. freetype
  47. fontconfig
  48. (rustChannel.rust.override { extensions = [ "rust-src" ]; })
  49. ];
  50. LIBCLANG_PATH="${pkgs.libclang.lib}/lib";
  51. };
  52. });
  53. }