@@ -1,40 +1,63 @@
1−{ pkgs ? import <nixpkgs>{} } :
1+{ pkgs ? import <nixpkgs>{}, versionArg ? "" } :
22let
33 buildPrybar = attrs: pkgs.callPackage(import ./build-prybar.nix attrs) {};
4+
5+ julia = import ./languages/julia/julia.nix { inherit pkgs; };
6+ clojureWithCP = import ./languages/clojure/wrappedClojure.nix { inherit pkgs; };
47in
58{
6− # TODO: These don't quite work yet
7−
8− # Won't build
9− # prybar-R = buildPrybar { language = "R"; buildInputs = [ pkgs.R ]; };
10−
11− # Julia 1.1 doesn't seem to be on nix
12− # prybar-julia = buildPrybar { language = "julia"; buildInputs = [ julia_13 ]; };
13−
14− # Has problem reading from prybar_assets. Seems like a bug with the impl.
15− # prybar-nodejs = buildPrybar { language = "nodejs"; buildInputs = [ ]; };
16−
17− # Ruby 2.5 is deprecated!
18− # prybar-ruby = buildPrybar { language = "ruby"; buildInputs = [ ruby_2_5 ]; };
19−
20− # Untested, spidermonkey not supported on darwin. Feel free to test on linux.
21− # prybar-spidermonkey = buildPrybar { language = "spidermonkey"; buildInputs = [ spidermonkey ]; };
22−
23− prybar-python2 = buildPrybar { language = "python2"; buildInputs = [ pkgs.python2 ]; };
24−
25− prybar-python3 = buildPrybar { language = "python3"; buildInputs = [ pkgs.python3 ]; };
26−
27− prybar-lua = buildPrybar { language = "lua"; buildInputs = [ pkgs.lua5_1 pkgs.readline ]; };
28−
29− prybar-clojure = buildPrybar { language = "clojure"; buildInputs = [ pkgs.clojure ]; };
30−
31− prybar-elisp = buildPrybar { language = "elisp"; };
32−
33− prybar-ocaml = buildPrybar { language = "ocaml"; };
34−
35− prybar-scala = buildPrybar { language = "scala"; };
36−
37− prybar-sqlite = buildPrybar { language = "sqlite"; };
38−
39− prybar-tcl = buildPrybar { language = "tcl"; buildInputs = [ pkgs.tcl ]; };
9+ prybar-R = buildPrybar {
10+ language = "R";
11+ buildInputs = [ pkgs.R ];
12+ versionArg = versionArg;
13+ pkgName = "libR";
14+ setFlags = true;
15+ };
16+
17+ prybar-julia = buildPrybar {
18+ language = "julia";
19+ buildInputs = [ julia ];
20+ versionArg = versionArg;
21+ setFlags = true;
22+ };
23+
24+ prybar-nodejs = buildPrybar { language = "nodejs"; binaries = [ pkgs.nodejs ]; versionArg = versionArg; };
25+
26+ # The official Ruby packages is running ruby 2.7
27+ prybar-ruby = buildPrybar {
28+ language = "ruby";
29+ buildInputs = [ pkgs.ruby ];
30+ pkgName = "ruby-2.7";
31+ versionArg = versionArg;
32+ setFlags = true;
33+ };
34+
35+ prybar-python2 = buildPrybar { language = "python2"; buildInputs = [ pkgs.python2 ]; versionArg = versionArg; };
36+
37+ prybar-python3 = buildPrybar { language = "python3"; buildInputs = [ pkgs.python3 ]; versionArg = versionArg; };
38+
39+ prybar-lua = buildPrybar { language = "lua"; buildInputs = [ pkgs.lua5_1 pkgs.readline ]; versionArg = versionArg; };
40+
41+ prybar-clojure = buildPrybar {
42+ language = "clojure";
43+ buildInputs = [ clojureWithCP ];
44+ binaries = [ pkgs.jdk11_headless ];
45+ versionArg = versionArg;
46+ };
47+
48+ prybar-elisp = buildPrybar { language = "elisp"; versionArg = versionArg; };
49+
50+ prybar-ocaml = buildPrybar {
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;
56+ };
57+
58+ prybar-scala = buildPrybar { language = "scala"; versionArg = versionArg; };
59+
60+ prybar-sqlite = buildPrybar { language = "sqlite"; binaries = [ pkgs.sqlite ]; versionArg = versionArg; };
61+
62+ prybar-tcl = buildPrybar { language = "tcl"; buildInputs = [ pkgs.tcl ]; versionArg = versionArg; };
4063}