commit: 8cee4d41c1eae351bd98dea5afb310e12b9b20f0
Author: Florian Schmaus <flow <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 16 10:45:09 2023 +0000
Commit: Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Thu Mar 16 10:45:09 2023 +0000
URL: https://gitweb.gentoo.org/proj/java.git/commit/?id=8cee4d41
gradle.eclass: add EGRADLE_BUNDLED_VER
Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>
eclass/gradle.eclass | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/eclass/gradle.eclass b/eclass/gradle.eclass
index 488c265d..e4087f7a 100644
--- a/eclass/gradle.eclass
+++ b/eclass/gradle.eclass
@@ -9,6 +9,30 @@
# @BLURB: utility functions for the gradle build system.
# @DESCRIPTION:
# Utility functions for the gradle build system.
+# There are currently two approaches to using gradle in ebuilds. You can either
+# depend on a gradle system-wide installation from a gradle ebuild, typically
+# dev-java/gradle-bin, or, bundle gradle with the ebuild.
+#
+# To use a system-wide gradle installation, set EGRADLE_MIN and
+# EGRADLE_MAX_EXCLUSIVE and declare a BDEPEND on the gradle package.
+# @CODE
+# inherit gradle
+# EGRADLE_MIN=7.3
+# EGRADLE_MAX_EXCLUSIVE=8
+#
+# BDEPEND="|| (dev-java/gradle-bin:7.3 dev-java/gradle-bin:7.4)
+# @CODE
+#
+# To use a bundled gradle version, set EGRADLE_BUNDLED_VER and add
+# $(gradle_src_uri) to SRC_URI.
+# @CODE
+# inherit gradle
+# EGRADLE_BUNDLED_VER=7.6
+# SRC_URI="
+# ...
+# $(gradle_src_uri)
+# "
+# @CODE
case ${EAPI} in
7|8) ;;
@@ -35,6 +59,11 @@ inherit edo
# @DESCRIPTION:
# The exact required gradle version.
+# @ECLASS_VARIABLE: EGRADLE_BUNDLED_VER
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# The gradle version that will be bundled with this package.
+
# @ECLASS_VARIABLE: EGRADLE_PARALLEL
# @DESCRIPTION:
# Set to the 'true', the default, to invoke gradle with --parallel. Set
@@ -64,6 +93,11 @@ gradle-set_EGRADLE() {
return
fi
+ if [[ -n ${EGRADLE_BUNDLED_VER} ]]; then
+ export
EGRADLE="${WORKDIR}/gradle-${EGRADLE_BUNDLED_VER}/bin/gradle"
+ return
+ fi
+
local candidates candidate selected selected_ver
candidates=$(compgen -c gradle-)
@@ -115,6 +149,16 @@ gradle-set_EGRADLE() {
export EGRADLE="${selected}"
}
+# @FUNCTION: gradle-src_uri
+# @DESCRIPTION:
+# Generate SRC_URI data from EGRADLE_BUNDLED_VER.
+gradle-src_uri() {
+ if [[ -z ${EGRADLE_BUNDLED_VER} ]]; then
+ die "Must set EGRADLE_BUNDLED_VER when calling gradle-src_uri"
+ fi
+ echo
"https://services.gradle.org/distributions/gradle-${EGRADLE_BUNDLED_VER}-bin.zip"
+}
+
# @FUNCTION: egradle
# @USAGE: [gradle-args]
# @DESCRIPTION: