commit:     a2ad06c3336b93f78b31cbd28aa42a8f292fce11
Author:     William L. Thomson Jr <wlt <AT> o-sinc <DOT> com>
AuthorDate: Fri Sep  9 23:20:50 2016 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Mon Oct 17 15:15:07 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a2ad06c3

java-utils-2.eclass: Added new function java-pkg_gen-cp

Java package generate classpath will create a classpath based on special
variable CP_DEPEND in the ebuild. This allows for automatic classpath
creation based on depends. Reduces chance of error in ebuild with slots
in deps not matching slots in classpath variable, etc. Not to most
elegant. Elected for multiple passes using bash vs external sed or awk.

Closes: https://github.com/gentoo/gentoo/pull/2286
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 eclass/java-utils-2.eclass | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/eclass/java-utils-2.eclass b/eclass/java-utils-2.eclass
index 9e0d2d5..61b338a 100644
--- a/eclass/java-utils-2.eclass
+++ b/eclass/java-utils-2.eclass
@@ -2886,3 +2886,28 @@ java-pkg_clean() {
                find "${@}" '(' -name '*.class' -o -name '*.jar' ')' -type f 
-delete -print || die
        fi
 }
+
+# @FUNCTION: java-pkg_gen-cp
+# @INTERNAL
+# @DESCRIPTION:
+# Java package generate classpath will create a classpath based on
+# special variable CP_DEPEND in the ebuild.
+#
+# @CODE
+# Parameters:
+# $1 - classpath variable either EANT_GENTOO_CLASSPATH or JAVA_GENTOO_CLASSPATH
+# @CODE
+java-pkg_gen-cp() {
+       debug-print-function ${FUNCNAME} "${@}"
+
+       if [[ ${CP_DEPEND} ]]; then
+               local cp="${!1}"
+               local p
+               for p in ${CP_DEPEND}; do
+                       p="${p/-[0-9]*:/-}"
+                       cp="${cp} ${p#*/}"
+               done
+               cp="${cp//:/-}"
+               [[ ${cp} ]] && export ${1}="${cp//-0/}"
+       fi
+}

Reply via email to