diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..5792e34 --- /dev/null +++ b/flake.nix @@ -0,0 +1,61 @@ +{ + description = "Ada development environment with Alire"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = + { + self, + nixpkgs, + flake-utils, + }: + flake-utils.lib.eachDefaultSystem ( + system: + let + pkgs = import nixpkgs { + inherit system; + }; + in + { + devShells.default = pkgs.mkShell { + packages = with pkgs; [ + # Ada + gnat + gprbuild + alire + + # Toolchain + gcc + binutils + + # Build Tools + gnumake + cmake + pkg-config + + # Debugging + gdb + + # Utilities + git + which + file + ]; + + shellHook = '' + export ADA_PROJECT_PATH="$PWD''${ADA_PROJECT_PATH:+:$ADA_PROJECT_PATH}" + + echo "Ada + Alire development shell" + echo "--------------------------------" + + command -v alr >/dev/null && alr --version + command -v gnat >/dev/null && gnat --version | head -n1 + command -v gprbuild >/dev/null && gprbuild --version | head -n1 + ''; + }; + } + ); +}