about summary refs log tree commit diff
path: root/pkgs/development/compilers/lobster/default.nix
diff options
context:
space:
mode:
authorFrancesco Gazzetta <fgaz@fgaz.me>2020-01-26 16:52:00 +0100
committerFrancesco Gazzetta <fgaz@fgaz.me>2020-07-29 14:48:21 +0200
commitd42700700dee774157d64ddf1e1e3c40dbc763c4 (patch)
tree97fe1f5a9a4f2b57a06dd1f62b322976e0ac39b6 /pkgs/development/compilers/lobster/default.nix
parent55f52680f977a54c42d7aeb8e9439b5398cc0e50 (diff)
lobster: init at unstable-2020-07-27
Diffstat (limited to 'pkgs/development/compilers/lobster/default.nix')
-rw-r--r--pkgs/development/compilers/lobster/default.nix66
1 files changed, 66 insertions, 0 deletions
diff --git a/pkgs/development/compilers/lobster/default.nix b/pkgs/development/compilers/lobster/default.nix
new file mode 100644
index 0000000000000..f8d31f12cd457
--- /dev/null
+++ b/pkgs/development/compilers/lobster/default.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, callPackage
+
+# Linux deps
+, libGL
+, xorg
+
+# Darwin deps
+, cf-private
+, Cocoa
+, AudioToolbox
+, OpenGL
+, Foundation
+, ForceFeedback
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lobster";
+  version = "unstable-2020-07-27";
+
+  src = fetchFromGitHub {
+    owner = "aardappel";
+    repo = pname;
+    rev = "9d68171494a79c83931426b624a0249a9c51882c";
+    sha256 = "0d4gn71jym662i00rdmynv53ng1lgl81s5lw1sdddgn41wzs28dd";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = if stdenv.isDarwin
+    then [
+      cf-private
+      Cocoa
+      AudioToolbox
+      OpenGL
+      Foundation
+      ForceFeedback
+    ]
+    else [
+      libGL
+      xorg.libX11
+      xorg.libXext
+    ];
+
+  preConfigure = "cd dev";
+  enableParallelBuilding = true;
+
+  passthru.tests = {
+    can-run-hello-world = callPackage ./test-can-run-hello-world.nix {};
+  };
+
+  meta = with stdenv.lib; {
+    homepage = "http://strlen.com/lobster";
+    description = "The Lobster programming language";
+    longDescription = ''
+      Lobster is a programming language that tries to combine the advantages of
+      very static typing and memory management with a very lightweight,
+      friendly and terse syntax, by doing most of the heavy lifting for you.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
+