{ description = "tmz - a library for loading Tiled Maps and Tilesets"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; devshell.url = "github:numtide/devshell"; treefmt-nix.url = "github:numtide/treefmt-nix"; }; outputs = inputs @ {flake-parts, ...}: flake-parts.lib.mkFlake {inherit inputs;} { imports = [ inputs.devshell.flakeModule inputs.treefmt-nix.flakeModule ]; systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin"]; perSystem = { config, self', inputs', pkgs, system, ... }: { treefmt.config = { projectRootFile = "flake.nix"; flakeCheck = true; flakeFormatter = true; programs.zig.enable = true; programs.alejandra.enable = true; }; devshells.default = { commands = [ { name = "fmt"; help = "format the repo"; command = "nix fmt"; } { name = "docs"; help = "generate auto docs"; command = "zig test -femit-docs src/tmz.zig"; } ]; packages = [ pkgs.zig_0_12 pkgs.kcov ]; }; }; }; }