1 |
commit: 8cee4d41c1eae351bd98dea5afb310e12b9b20f0 |
2 |
Author: Florian Schmaus <flow <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Mar 16 10:45:09 2023 +0000 |
4 |
Commit: Florian Schmaus <flow <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Mar 16 10:45:09 2023 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/java.git/commit/?id=8cee4d41 |
7 |
|
8 |
gradle.eclass: add EGRADLE_BUNDLED_VER |
9 |
|
10 |
Signed-off-by: Florian Schmaus <flow <AT> gentoo.org> |
11 |
|
12 |
eclass/gradle.eclass | 44 ++++++++++++++++++++++++++++++++++++++++++++ |
13 |
1 file changed, 44 insertions(+) |
14 |
|
15 |
diff --git a/eclass/gradle.eclass b/eclass/gradle.eclass |
16 |
index 488c265d..e4087f7a 100644 |
17 |
--- a/eclass/gradle.eclass |
18 |
+++ b/eclass/gradle.eclass |
19 |
@@ -9,6 +9,30 @@ |
20 |
# @BLURB: utility functions for the gradle build system. |
21 |
# @DESCRIPTION: |
22 |
# Utility functions for the gradle build system. |
23 |
+# There are currently two approaches to using gradle in ebuilds. You can either |
24 |
+# depend on a gradle system-wide installation from a gradle ebuild, typically |
25 |
+# dev-java/gradle-bin, or, bundle gradle with the ebuild. |
26 |
+# |
27 |
+# To use a system-wide gradle installation, set EGRADLE_MIN and |
28 |
+# EGRADLE_MAX_EXCLUSIVE and declare a BDEPEND on the gradle package. |
29 |
+# @CODE |
30 |
+# inherit gradle |
31 |
+# EGRADLE_MIN=7.3 |
32 |
+# EGRADLE_MAX_EXCLUSIVE=8 |
33 |
+# |
34 |
+# BDEPEND="|| (dev-java/gradle-bin:7.3 dev-java/gradle-bin:7.4) |
35 |
+# @CODE |
36 |
+# |
37 |
+# To use a bundled gradle version, set EGRADLE_BUNDLED_VER and add |
38 |
+# $(gradle_src_uri) to SRC_URI. |
39 |
+# @CODE |
40 |
+# inherit gradle |
41 |
+# EGRADLE_BUNDLED_VER=7.6 |
42 |
+# SRC_URI=" |
43 |
+# ... |
44 |
+# $(gradle_src_uri) |
45 |
+# " |
46 |
+# @CODE |
47 |
|
48 |
case ${EAPI} in |
49 |
7|8) ;; |
50 |
@@ -35,6 +59,11 @@ inherit edo |
51 |
# @DESCRIPTION: |
52 |
# The exact required gradle version. |
53 |
|
54 |
+# @ECLASS_VARIABLE: EGRADLE_BUNDLED_VER |
55 |
+# @DEFAULT_UNSET |
56 |
+# @DESCRIPTION: |
57 |
+# The gradle version that will be bundled with this package. |
58 |
+ |
59 |
# @ECLASS_VARIABLE: EGRADLE_PARALLEL |
60 |
# @DESCRIPTION: |
61 |
# Set to the 'true', the default, to invoke gradle with --parallel. Set |
62 |
@@ -64,6 +93,11 @@ gradle-set_EGRADLE() { |
63 |
return |
64 |
fi |
65 |
|
66 |
+ if [[ -n ${EGRADLE_BUNDLED_VER} ]]; then |
67 |
+ export EGRADLE="${WORKDIR}/gradle-${EGRADLE_BUNDLED_VER}/bin/gradle" |
68 |
+ return |
69 |
+ fi |
70 |
+ |
71 |
local candidates candidate selected selected_ver |
72 |
|
73 |
candidates=$(compgen -c gradle-) |
74 |
@@ -115,6 +149,16 @@ gradle-set_EGRADLE() { |
75 |
export EGRADLE="${selected}" |
76 |
} |
77 |
|
78 |
+# @FUNCTION: gradle-src_uri |
79 |
+# @DESCRIPTION: |
80 |
+# Generate SRC_URI data from EGRADLE_BUNDLED_VER. |
81 |
+gradle-src_uri() { |
82 |
+ if [[ -z ${EGRADLE_BUNDLED_VER} ]]; then |
83 |
+ die "Must set EGRADLE_BUNDLED_VER when calling gradle-src_uri" |
84 |
+ fi |
85 |
+ echo "https://services.gradle.org/distributions/gradle-${EGRADLE_BUNDLED_VER}-bin.zip" |
86 |
+} |
87 |
+ |
88 |
# @FUNCTION: egradle |
89 |
# @USAGE: [gradle-args] |
90 |
# @DESCRIPTION: |