flake.nix 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. {
  2. description = "Nix flake for packaging and developing on VCMI, an open source reimplementation of HoMM III";
  3. inputs = {
  4. nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
  5. flake-parts.url = "github:hercules-ci/flake-parts";
  6. };
  7. #My beloved submodules...
  8. inputs.self.submodules = true;
  9. outputs = inputs @ {
  10. flake-parts,
  11. self,
  12. ...
  13. }:
  14. flake-parts.lib.mkFlake {inherit inputs;} {
  15. systems = [
  16. "x86_64-linux"
  17. "aarch64-linux"
  18. "aarch64-darwin"
  19. "x86_64-darwin"
  20. ];
  21. perSystem = {
  22. config,
  23. self',
  24. inputs',
  25. pkgs,
  26. system,
  27. ...
  28. }: let src = (with pkgs.lib.fileset;
  29. toSource {
  30. root = ./..;
  31. fileset = gitTrackedWith {recurseSubmodules = true;} ./..;
  32. }) // ((if self ? rev then { inherit (self) rev; } else {}) // (if self ? dirtyRev then { inherit (self) dirtyRev;} else {})); in {
  33. devShells.default = import ./shell.nix {
  34. inherit pkgs;
  35. generator = pkgs.ninja;
  36. inherit src;
  37. };
  38. packages.default = import ./default.nix {
  39. inherit pkgs;
  40. generator = pkgs.ninja;
  41. inherit src;
  42. };
  43. formatter = pkgs.alejandra;
  44. };
  45. };
  46. }