commit:     0b7b119f84418307794df0c72708f5ab55c4bb46
Author:     Florian Schmaus <flow <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 30 08:38:05 2023 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Fri Jun 30 08:38:05 2023 +0000
URL:        https://gitweb.gentoo.org/proj/java.git/commit/?id=0b7b119f

gradle.eclass improvements after mailing list review

Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>

 dev-java/openjfx/openjfx-11.0.11_p1.ebuild |  4 +--
 eclass/gradle.eclass                       | 43 ++++++++++++++++++++----------
 eclass/tests/gradle.sh                     | 10 ++++---
 3 files changed, 37 insertions(+), 20 deletions(-)

diff --git a/dev-java/openjfx/openjfx-11.0.11_p1.ebuild 
b/dev-java/openjfx/openjfx-11.0.11_p1.ebuild
index a9911159..effbc824 100644
--- a/dev-java/openjfx/openjfx-11.0.11_p1.ebuild
+++ b/dev-java/openjfx/openjfx-11.0.11_p1.ebuild
@@ -129,7 +129,7 @@ pkg_setup() {
 
 src_unpack() {
        unpack "${P}.tar.bz2"
-       gradle-src_unpack
+       gradle_src_unpack
 
        mkdir "${T}/jars" || die
 
@@ -187,7 +187,7 @@ src_configure() {
 }
 
 src_compile() {
-       # FIXME: build.gradle believes $ANT_HOME/bin/ant shoud exist
+       # FIXME: build.gradle believes $ANT_HOME/bin/ant should exist
        unset ANT_HOME
 
        egradle zips $(usex doc "" "--exclude-task javadoc")

diff --git a/eclass/gradle.eclass b/eclass/gradle.eclass
index 91c8299d..e3de8b8d 100644
--- a/eclass/gradle.eclass
+++ b/eclass/gradle.eclass
@@ -20,7 +20,7 @@
 # EGRADLE_MIN=7.3
 # EGRADLE_MAX_EXCLUSIVE=8
 #
-# BDEPEND="|| (dev-java/gradle-bin:7.3 dev-java/gradle-bin:7.4)
+# 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
@@ -34,9 +34,13 @@
 # "
 # src_unpack() {
 #    default
-#    gradle-src_unpack
+#    gradle_src_unpack
 # }
 # @CODE
+# This "bundles" gradle as part of the ebuild, that is, a gradle
+# distribution with the version specified by EGRADLE_BUNDLED_VER
+# will be added to SRC_URI, unpacked by gradle_src_unpack, and then
+# later used by egradle.
 #
 # Afterwards, use egradle to invoke gradle.
 # @CODE
@@ -68,30 +72,41 @@ inherit edo
 # @ECLASS_VARIABLE: EGRADLE_EXACT_VER
 # @DEFAULT_UNSET
 # @DESCRIPTION:
-# The exact required gradle version.
+# The exact required gradle version.  If set, neither of EGRADLE_MIN
+# EGRADLE_MAX_EXCLUSIVE, nor EGRADLE_BUNDLED_VER should be set.
 
 # @ECLASS_VARIABLE: EGRADLE_BUNDLED_VER
 # @DEFAULT_UNSET
 # @DESCRIPTION:
-# The gradle version that will be bundled with this package.
+# The gradle version that will be bundled with this package.  If set,
+# neither of EGRADLE_MIN, EGRADLE_MAX_EXCLUSIVE, nor
+# EGRADLE_EXACT_VER should be set.
 
 # @ECLASS_VARIABLE: EGRADLE_PARALLEL
 # @DESCRIPTION:
-# Set to the 'true', the default, to invoke gradle with --parallel. Set
+# Set to the 'true', the default, to invoke gradle with --parallel.  Set
 # to 'false' to disable parallel gradle builds.
 : "${EGRADLE_PARALLEL=true}"
 
 # @ECLASS_VARIABLE: EGRADLE_USER_HOME
 # @DESCRIPTION:
-# Directroy used as the user's home directory by gradle. Defaults to
+# Directory used as the user's home directory by gradle. Defaults to
 # ${T}/gradle_user_home
 : "${EGRADLE_USER_HOME="${T}/gradle_user_home"}"
 
-# @ECLASS_VARIABLE: EGRADLE_OVERWRITE
+# @ECLASS_VARIABLE: EGRADLE_OVERRIDE
 # @USER_VARIABLE
 # @DEFAULT_UNSET
 # @DESCRIPTION:
-# User-specified overwrite of the used gradle binary.
+# User-specified override of the used gradle binary.
+
+# @ECLASS_VARIABLE: EGRADLE_SEARCH_PATH
+# @USER_VARIABLE
+# @DESCRIPTION:
+# Path in which gradle installations are searched.  This path is
+# prefixed with BROOT. Defaults to /usr/bin.  Mostly used for
+# testing this eclass.
+: "${EGRADLE_SEARCH_PATH=/usr/bin}"
 
 # @FUNCTION: gradle-set_EGRADLE
 # @DESCRIPTION:
@@ -99,8 +114,8 @@ inherit edo
 gradle-set_EGRADLE() {
        [[ -n ${EGRADLE} ]] && return
 
-       if [[ -n ${EGRADLE_OVERWRITE} ]]; then
-               EGRADLE="${EGRADLE_OVERWRITE}"
+       if [[ -n ${EGRADLE_OVERRIDE} ]]; then
+               EGRADLE="${EGRADLE_OVERRIDE}"
                return
        fi
 
@@ -111,7 +126,7 @@ gradle-set_EGRADLE() {
 
        local candidate selected selected_ver ver
 
-       for candidate in "${BROOT}"/usr/bin/gradle-; do
+       for candidate in "${BROOT}${EGRADLE_SEARCH_PATH}"/gradle-*; do
                if [[ ${candidate} != */gradle?(-bin)-+([.0-9]) ]]; then
                        continue
                fi
@@ -164,13 +179,13 @@ gradle-src_uri() {
        echo 
"https://services.gradle.org/distributions/gradle-${EGRADLE_BUNDLED_VER}-bin.zip";
 }
 
-# @FUNCTION: gradle-src_unpack
+# @FUNCTION: gradle_src_unpack
 # @DESCRIPTION:
 # Unpack the "bundled" gradle version.  You must have
 # EGRADLE_BUNDLED_VER set when calling this function.
-gradle-src_unpack() {
+gradle_src_unpack() {
        if [[ -z ${EGRADLE_BUNDLED_VER} ]]; then
-               die "Must set EGRADLE_BUNDLED_VER when calling 
gradle-src_unpack"
+               die "Must set EGRADLE_BUNDLED_VER when calling 
gradle_src_unpack"
        fi
 
        unpack "gradle-${EGRADLE_BUNDLED_VER}-bin.zip"

diff --git a/eclass/tests/gradle.sh b/eclass/tests/gradle.sh
index 61666c1b..8cadb521 100755
--- a/eclass/tests/gradle.sh
+++ b/eclass/tests/gradle.sh
@@ -27,8 +27,7 @@ test_set_EGRADLE() {
                chmod 755 "${pseudo_gradle_path}"
        done
 
-       local saved_PATH="${PATH}"
-       PATH="${tmpdir}"
+       EGRADLE_SEARCH_PATH="${tmpdir}"
 
        local test_desc=(
                test_set_EGRADLE
@@ -43,9 +42,13 @@ test_set_EGRADLE() {
        local saved_EGRADLE="${EGRADLE}"
        unset EGRADLE
 
-       PATH="${saved_PATH}"
        rm -rf "${tmpdir}"
 
+       # The saved_EGRADLE variable will contain something like
+       # /tmp/tmp.vTN7A1l6C7/gradle-2.0, but we only want to compare the
+       # name of the binary.
+       saved_EGRADLE=$(basename ${saved_EGRADLE})
+
        [[ "${saved_EGRADLE}" == "${expected_EGRADLE}" ]]
        tend $?
 
@@ -58,5 +61,4 @@ test_set_EGRADLE gradle-2.0 gradle-1.0 gradle-2.0
 EGRADLE_MIN=2.0 test_set_EGRADLE gradle-2.2.3 gradle-1.0 gradle-2.0 
gradle-2.2.3
 EGRADLE_MAX_EXCLUSIVE=2.2 test_set_EGRADLE gradle-2.0 gradle-1.0 gradle-2.0 
gradle-2.2.3
 
-
 texit

Reply via email to