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:

Reply via email to