gradle: expose gradle-packages.mkGradle and gradle-packages.wrapGradle

Users may want to use a completely custom version of Gradle. Add
mkGradle and wrapGradle as non-toplevel APIs for this.
This commit is contained in:
Morgan Jones
2025-11-02 15:03:21 -08:00
parent 38fff9c039
commit 2788f37f64

View File

@@ -87,7 +87,8 @@ let
}; };
}; };
gen = # Creates a Gradle without calling the package.
mkGradle' =
{ {
version, version,
hash, hash,
@@ -275,7 +276,7 @@ let
}; };
passthru.jdk = defaultJava; passthru.jdk = defaultJava;
passthru.wrapped = callPackage wrapGradle { passthru.wrapped = callPackage wrapGradle {
gradle-unwrapped = gen' genArgs; gradle-unwrapped = mkGradle genArgs;
}; };
passthru.updateScript = passthru.updateScript =
if enableUpdateScript then if enableUpdateScript then
@@ -324,26 +325,31 @@ let
}); });
# Calls the generated Gradle package with default arguments. # Calls the generated Gradle package with default arguments.
gen' = args: callPackage (gen args) { }; mkGradle = args: callPackage (mkGradle' args) { };
in in
rec { rec {
# Keep these exposed (but not at toplevel) so users can call
# `gradle-packages.mkGradle` as we do below,
# and still have wrapGradle available if necessary.
inherit mkGradle wrapGradle;
# NOTE: Default JDKs that are hardcoded below must be LTS versions # NOTE: Default JDKs that are hardcoded below must be LTS versions
# and respect the compatibility matrix at # and respect the compatibility matrix at
# https://docs.gradle.org/current/userguide/compatibility.html # https://docs.gradle.org/current/userguide/compatibility.html
gradle_9 = gen' { gradle_9 = mkGradle {
version = "9.1.0"; version = "9.1.0";
hash = "sha256-oX3dhaJran9d23H/iwX8UQTAICxuZHgkKXkMkzaGyAY="; hash = "sha256-oX3dhaJran9d23H/iwX8UQTAICxuZHgkKXkMkzaGyAY=";
defaultJava = jdk21; defaultJava = jdk21;
}; };
gradle_8 = gen' { gradle_8 = mkGradle {
version = "8.14.3"; version = "8.14.3";
hash = "sha256-vXEQIhNJMGCVbsIp2Ua+7lcVjb2J0OYrkbyg+ixfNTE="; hash = "sha256-vXEQIhNJMGCVbsIp2Ua+7lcVjb2J0OYrkbyg+ixfNTE=";
defaultJava = jdk21; defaultJava = jdk21;
# Only enable this on *one* version to avoid duplicate PRs. # Only enable this on *one* version to avoid duplicate PRs.
enableUpdateScript = true; enableUpdateScript = true;
}; };
gradle_7 = gen' { gradle_7 = mkGradle {
version = "7.6.6"; version = "7.6.6";
hash = "sha256-Zz2XdvMDvHBI/DMp0jLW6/EFGweJO9nRFhb62ahnO+A="; hash = "sha256-Zz2XdvMDvHBI/DMp0jLW6/EFGweJO9nRFhb62ahnO+A=";
defaultJava = jdk17; defaultJava = jdk17;