diff --git a/runtimes/default.nix b/runtimes/default.nix index 140fd83..47bd12f 100644 --- a/runtimes/default.nix +++ b/runtimes/default.nix @@ -51,4 +51,5 @@ args: { "gcc-fortran" = import ./gcc-fortran.nix args; "yabasic" = import ./yabasic.nix args; "emacs" = import ./emacs.nix args; + "gnat-ada" = import ./gnat-ada.nix args; } diff --git a/runtimes/gnat-ada.nix b/runtimes/gnat-ada.nix new file mode 100644 index 0000000..ef7695b --- /dev/null +++ b/runtimes/gnat-ada.nix @@ -0,0 +1,41 @@ +{pkgs, piston, ...}: +let + pkg = pkgs.gnat; +in piston.mkRuntime { + language = "ada"; + version = pkg.version; + runtime = "gnat"; + + aliases = [ + "adb" + "ads" + ]; + + compile = '' + ${pkg}/bin/gnatmake "$@" -o a.out + ''; + + run = '' + shift + ./a.out "$@" + ''; + + tests = [ + (piston.mkTest { + files = { + "test.adb" = '' + with Text_IO; use Text_IO; + with Ada.Command_line; use Ada.Command_Line; + procedure hello is + begin + Put_Line(Argument(1)); + end hello; + ''; + }; + args = ["OK"]; + stdin = ""; + packages = []; + main = "test.adb"; + }) + ]; +}