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 <gen...@pogatzki.net>
---
 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
-- 
2.41.0


Reply via email to