nixpkgs/pkgs/development/compilers/graalvm/community-edition/default.nix
2023-02-22 10:47:02 +01:00

241 lines
7.5 KiB
Nix

{ lib
, stdenv
, callPackage
, fetchurl
}:
let
buildGraalvm = callPackage ./buildGraalvm.nix;
buildGraalvmProduct = callPackage ./buildGraalvmProduct.nix;
javaPlatform = {
"aarch64-linux" = "linux-aarch64";
"x86_64-linux" = "linux-amd64";
"aarch64-darwin" = "darwin-aarch64";
"x86_64-darwin" = "darwin-amd64";
};
javaPlatformVersion = javaVersion:
"${javaVersion}-${javaPlatform.${stdenv.system} or (throw "Unsupported platform: ${stdenv.system}")}";
source = product: javaVersion: (import ./hashes.nix).${product}.${javaPlatformVersion javaVersion}
or (throw "Unsupported product combination: product=${product} java=${javaVersion} system=${stdenv.system}");
in
rec {
inherit buildGraalvm buildGraalvmProduct;
### Java 11 ###
# Mostly available for build purposes, not to be exposed at the top level
graalvm11-ce-bare = buildGraalvm rec {
version = "22.3.1";
javaVersion = "11";
src = fetchurl (source "graalvm-ce" javaVersion);
meta.platforms = builtins.attrNames javaPlatform;
products = [ ];
};
graalvm11-ce = graalvm11-ce-bare.override {
products = [ native-image-installable-svm-java11 ];
};
# Mostly available for testing, not to be exposed at the top level
graalvm11-ce-full = graalvm11-ce-bare.override {
products = [
js-installable-svm-java11
llvm-installable-svm-java11
native-image-installable-svm-java11
nodejs-installable-svm-java11
python-installable-svm-java11
ruby-installable-svm-java11
wasm-installable-svm-java11
];
};
js-installable-svm-java11 = callPackage ./js-installable-svm.nix rec {
javaVersion = "11";
version = "22.3.1";
src = fetchurl (source "js-installable-svm" javaVersion);
};
llvm-installable-svm-java11 = callPackage ./llvm-installable-svm.nix rec {
javaVersion = "11";
version = "22.3.1";
src = fetchurl (source "llvm-installable-svm" javaVersion);
};
native-image-installable-svm-java11 = callPackage ./native-image-installable-svm.nix rec {
javaVersion = "11";
version = "22.3.1";
src = fetchurl (source "native-image-installable-svm" javaVersion);
};
nodejs-installable-svm-java11 = callPackage ./nodejs-installable-svm.nix rec {
javaVersion = "11";
version = "22.3.1";
src = fetchurl (source "nodejs-installable-svm" javaVersion);
graalvm-ce = graalvm11-ce-bare;
};
python-installable-svm-java11 = callPackage ./python-installable-svm.nix rec {
javaVersion = "11";
version = "22.3.1";
src = fetchurl (source "python-installable-svm" javaVersion);
};
ruby-installable-svm-java11 = callPackage ./ruby-installable-svm.nix rec {
javaVersion = "11";
version = "22.3.1";
src = fetchurl (source "ruby-installable-svm" javaVersion);
llvm-installable-svm = llvm-installable-svm-java11;
};
wasm-installable-svm-java11 = callPackage ./wasm-installable-svm.nix rec {
javaVersion = "11";
version = "22.3.1";
src = fetchurl (source "wasm-installable-svm" javaVersion);
};
### Java 17 ###
# Mostly available for build purposes, not to be exposed at the top level
graalvm17-ce-bare = buildGraalvm rec {
version = "22.3.1";
javaVersion = "17";
src = fetchurl (source "graalvm-ce" javaVersion);
meta.platforms = builtins.attrNames javaPlatform;
products = [ ];
};
graalvm17-ce = graalvm17-ce-bare.override {
products = [ native-image-installable-svm-java17 ];
};
# Mostly available for testing, not to be exposed at the top level
graalvm17-ce-full = graalvm17-ce-bare.override {
products = [
js-installable-svm-java17
llvm-installable-svm-java17
native-image-installable-svm-java17
nodejs-installable-svm-java17
python-installable-svm-java17
ruby-installable-svm-java17
wasm-installable-svm-java17
];
};
js-installable-svm-java17 = callPackage ./js-installable-svm.nix rec {
javaVersion = "17";
version = "22.3.1";
src = fetchurl (source "js-installable-svm" javaVersion);
};
llvm-installable-svm-java17 = callPackage ./llvm-installable-svm.nix rec {
javaVersion = "17";
version = "22.3.1";
src = fetchurl (source "llvm-installable-svm" javaVersion);
};
native-image-installable-svm-java17 = callPackage ./native-image-installable-svm.nix rec {
javaVersion = "17";
version = "22.3.1";
src = fetchurl (source "native-image-installable-svm" javaVersion);
};
nodejs-installable-svm-java17 = callPackage ./nodejs-installable-svm.nix rec {
javaVersion = "17";
version = "22.3.1";
src = fetchurl (source "nodejs-installable-svm" javaVersion);
graalvm-ce = graalvm17-ce-bare;
};
python-installable-svm-java17 = callPackage ./python-installable-svm.nix rec {
javaVersion = "17";
version = "22.3.1";
src = fetchurl (source "python-installable-svm" javaVersion);
};
ruby-installable-svm-java17 = callPackage ./ruby-installable-svm.nix rec {
javaVersion = "17";
version = "22.3.1";
src = fetchurl (source "ruby-installable-svm" javaVersion);
llvm-installable-svm = llvm-installable-svm-java17;
};
wasm-installable-svm-java17 = callPackage ./wasm-installable-svm.nix rec {
javaVersion = "17";
version = "22.3.1";
src = fetchurl (source "wasm-installable-svm" javaVersion);
};
### Java 19 ###
# Mostly available for build purposes, not to be exposed at the top level
graalvm19-ce-bare = buildGraalvm rec {
version = "22.3.1";
javaVersion = "19";
src = fetchurl (source "graalvm-ce" javaVersion);
meta.platforms = builtins.attrNames javaPlatform;
products = [ ];
};
graalvm19-ce = graalvm19-ce-bare.override {
products = [ native-image-installable-svm-java19 ];
};
# Mostly available for testing, not to be exposed at the top level
graalvm19-ce-full = graalvm19-ce-bare.override {
products = [
js-installable-svm-java19
llvm-installable-svm-java19
native-image-installable-svm-java19
nodejs-installable-svm-java19
python-installable-svm-java19
ruby-installable-svm-java19
wasm-installable-svm-java19
];
};
js-installable-svm-java19 = callPackage ./js-installable-svm.nix rec {
javaVersion = "19";
version = "22.3.1";
src = fetchurl (source "js-installable-svm" javaVersion);
};
llvm-installable-svm-java19 = callPackage ./llvm-installable-svm.nix rec {
javaVersion = "19";
version = "22.3.1";
src = fetchurl (source "llvm-installable-svm" javaVersion);
};
native-image-installable-svm-java19 = callPackage ./native-image-installable-svm.nix rec {
javaVersion = "19";
version = "22.3.1";
src = fetchurl (source "native-image-installable-svm" javaVersion);
};
nodejs-installable-svm-java19 = callPackage ./nodejs-installable-svm.nix rec {
javaVersion = "19";
version = "22.3.1";
src = fetchurl (source "nodejs-installable-svm" javaVersion);
graalvm-ce = graalvm19-ce-bare;
};
python-installable-svm-java19 = callPackage ./python-installable-svm.nix rec {
javaVersion = "19";
version = "22.3.1";
src = fetchurl (source "python-installable-svm" javaVersion);
};
ruby-installable-svm-java19 = callPackage ./ruby-installable-svm.nix rec {
javaVersion = "19";
version = "22.3.1";
src = fetchurl (source "ruby-installable-svm" javaVersion);
llvm-installable-svm = llvm-installable-svm-java19;
};
wasm-installable-svm-java19 = callPackage ./wasm-installable-svm.nix rec {
javaVersion = "19";
version = "22.3.1";
src = fetchurl (source "wasm-installable-svm" javaVersion);
};
}