diff --git a/flake.nix b/flake.nix index 5021819..3307ec8 100644 --- a/flake.nix +++ b/flake.nix @@ -167,6 +167,10 @@ }; }; + templates."ada" = { + path = ./templates/ada; + description = "Ada template."; + }; templates."go" = { path = ./templates/go; description = "Go template."; diff --git a/templates/ada/.envrc b/templates/ada/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/templates/ada/.envrc @@ -0,0 +1 @@ +use flake diff --git a/templates/ada/flake.nix b/templates/ada/flake.nix new file mode 100644 index 0000000..617c2b0 --- /dev/null +++ b/templates/ada/flake.nix @@ -0,0 +1,41 @@ +{ + description = "thing: stuff and things"; + + inputs.nixpkgs.url = "nixpkgs/nixos-22.05"; + + outputs = { self, nixpkgs }: + let + supportedSystems = + [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; + forAllSystems = nixpkgs.lib.genAttrs supportedSystems; + nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); + in { + packages = forAllSystems (system: + let pkgs = nixpkgsFor.${system}; + in { + thing = pkgs.stdenv.mkDerivation { + pname = "thing"; + version = "v0.0.0"; + src = ./.; + }; + + buildPhase = '' + gprbuild + ''; + }); + + defaultPackage = forAllSystems (system: self.packages.${system}.thing); + devShells = forAllSystems (system: + let pkgs = nixpkgsFor.${system}; + in { + default = pkgs.mkShell { + shellHook = '' + PS1='\u@\h:\@; ' + echo "Ada `${pkgs.gnat12}/bin/gnatmake --version`" + ''; + nativeBuildInputs = with pkgs; [ gnat12 gprbuild ]; + }; + }); + }; +} +