@@ -1,40 +1,63 @@
1−{ pkgs ? import <nixpkgs>{} } :
1+{ pkgs ? import <nixpkgs>{}, versionArg ? "" } :
3 buildPrybar = attrs: pkgs.callPackage(import ./build-prybar.nix attrs) {};
3 buildPrybar = attrs: pkgs.callPackage(import ./build-prybar.nix attrs) {};
5+ julia = import ./languages/julia/julia.nix { inherit pkgs; };
6+ clojureWithCP = import ./languages/clojure/wrappedClojure.nix { inherit pkgs; };
6− # TODO: These don't quite work yet
9− # prybar-R = buildPrybar { language = "R"; buildInputs = [ pkgs.R ]; };
9+ prybar-R = buildPrybar {
11− # Julia 1.1 doesn't seem to be on nix
11+ buildInputs = [ pkgs.R ];
12+ versionArg = versionArg;
12− # prybar-julia = buildPrybar { language = "julia"; buildInputs = [ julia_13 ]; };
17+ prybar-julia = buildPrybar {
13−
18+ language = "julia";
14− # Has problem reading from prybar_assets. Seems like a bug with the impl.
19+ buildInputs = [ julia ];
20+ versionArg = versionArg;
15− # prybar-nodejs = buildPrybar { language = "nodejs"; buildInputs = [ ]; };
24+ prybar-nodejs = buildPrybar { language = "nodejs"; binaries = [ pkgs.nodejs ]; versionArg = versionArg; };
17− # Ruby 2.5 is deprecated!
26+ # The official Ruby packages is running ruby 2.7
18− # prybar-ruby = buildPrybar { language = "ruby"; buildInputs = [ ruby_2_5 ]; };
27+ prybar-ruby = buildPrybar {
19−
28+ language = "ruby";
20− # Untested, spidermonkey not supported on darwin. Feel free to test on linux.
29+ buildInputs = [ pkgs.ruby ];
21− # prybar-spidermonkey = buildPrybar { language = "spidermonkey"; buildInputs = [ spidermonkey ]; };
30+ pkgName = "ruby-2.7";
22−
31+ versionArg = versionArg;
23− prybar-python2 = buildPrybar { language = "python2"; buildInputs = [ pkgs.python2 ]; };
35+ prybar-python2 = buildPrybar { language = "python2"; buildInputs = [ pkgs.python2 ]; versionArg = versionArg; };
25− prybar-python3 = buildPrybar { language = "python3"; buildInputs = [ pkgs.python3 ]; };
37+ prybar-python3 = buildPrybar { language = "python3"; buildInputs = [ pkgs.python3 ]; versionArg = versionArg; };
27− prybar-lua = buildPrybar { language = "lua"; buildInputs = [ pkgs.lua5_1 pkgs.readline ]; };
39+ prybar-lua = buildPrybar { language = "lua"; buildInputs = [ pkgs.lua5_1 pkgs.readline ]; versionArg = versionArg; };
29− prybar-clojure = buildPrybar { language = "clojure"; buildInputs = [ pkgs.clojure ]; };
41+ prybar-clojure = buildPrybar {
30−
42+ language = "clojure";
43+ buildInputs = [ clojureWithCP ];
44+ binaries = [ pkgs.jdk11_headless ];
45+ versionArg = versionArg;
31− prybar-elisp = buildPrybar { language = "elisp"; };
48+ prybar-elisp = buildPrybar { language = "elisp"; versionArg = versionArg; };
33− prybar-ocaml = buildPrybar { language = "ocaml"; };
50+ prybar-ocaml = buildPrybar {
34−
51+ language = "ocaml";
52+ # This has to be in the build inputs so it set-ups the library paths before the check phase
53+ # It will not be copied over to the final package.
54+ buildInputs = [ pkgs.opam pkgs.ocaml pkgs.ocamlPackages.findlib pkgs.ocamlPackages.topkg pkgs.ocamlPackages.reason ];
55+ versionArg = versionArg;
35− prybar-scala = buildPrybar { language = "scala"; };
58+ prybar-scala = buildPrybar { language = "scala"; versionArg = versionArg; };
37− prybar-sqlite = buildPrybar { language = "sqlite"; };
60+ prybar-sqlite = buildPrybar { language = "sqlite"; binaries = [ pkgs.sqlite ]; versionArg = versionArg; };
39− prybar-tcl = buildPrybar { language = "tcl"; buildInputs = [ pkgs.tcl ]; };
62+ prybar-tcl = buildPrybar { language = "tcl"; buildInputs = [ pkgs.tcl ]; versionArg = versionArg; };