commit:     cb202546d81ed4e591c366d192e7b15d4c184ffa
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Mon Dec 11 20:52:41 2023 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Thu Jan 11 09:48:49 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cb202546

java-utils-2.eclass: enhance ejavadoc

This patch enhances the ejavadoc function so that it can be called
without arguments if the JAVADOC_SRC_DIRS array is set in the ebuild.

Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 eclass/java-utils-2.eclass | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/eclass/java-utils-2.eclass b/eclass/java-utils-2.eclass
index 814b4957d52c..31f7932a16fd 100644
--- a/eclass/java-utils-2.eclass
+++ b/eclass/java-utils-2.eclass
@@ -2192,9 +2192,27 @@ ejavadoc() {
                einfo "javadoc ${javadoc_args} ${@}"
        fi
 
-       local args=( javadoc ${javadoc_args} "${@}" )
-       echo "${args[@]}" >&2
-       "${args[@]}" || die "ejavadoc failed"
+       if [[ "${JAVADOC_SRC_DIRS[@]}" ]]; then
+               mkdir -p target/api || die "cannot create target/api"
+               local dependency
+               for dependency in ${JAVADOC_CLASSPATH}; do
+                       classpath="${classpath}:$(java-pkg_getjars \
+                               --build-only \
+                               --with-dependencies \
+                               ${dependency})"
+               done
+               find "${JAVADOC_SRC_DIRS[@]}" -name '*.java' > sources
+               javadoc \
+                       "${javadoc_args}" \
+                       -d target/api \
+                       -cp "${classpath}" \
+                       -quiet \
+                       @sources || die "ejavadoc failed"
+       else
+               local args=( javadoc ${javadoc_args} "${@}" )
+               echo "${args[@]}" >&2
+               "${args[@]}" || die "ejavadoc failed"
+       fi
 }
 
 # @FUNCTION: java-pkg_filter-compiler

Reply via email to