# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 # Don't depend on itself. JAVA_ANT_DISABLE_ANT_CORE_DEP="true" # Rewriting build.xml files for the testcases has no use at the moment. JAVA_PKG_BSFIX_ALL="no" JAVA_PKG_IUSE="doc source" inherit java-pkg-2 java-ant-2 prefix MY_P="apache-ant-${PV}" DESCRIPTION="Java-based build tool similar to 'make' that uses XML configuration files" HOMEPAGE="https://ant.apache.org/" SRC_URI="https://archive.apache.org/dist/ant/source/${MY_P}-src.tar.bz2 https://dev.gentoo.org/~fordfrog/distfiles/ant-${PV}-gentoo.tar.bz2" LICENSE="Apache-2.0" SLOT="0" KEYWORDS="amd64 ~arm arm64 ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" CDEPEND=">=virtual/jdk-1.8:*" DEPEND="${CDEPEND} doc? ( dev-java/bcel:0 dev-java/bsf:2.3 dev-java/commons-logging:0 dev-java/commons-net:0 dev-java/jakarta-activation-api:1 dev-java/jakarta-regexp:1.4 dev-java/jakarta-oro:2.0 dev-java/jdepend:0 dev-java/jsch:0 dev-java/log4j-12-api:2 dev-java/javax-mail:0 dev-java/sun-jai-bin:0 dev-java/xalan:0 dev-java/xml-commons-resolver:0 dev-java/xz-java:0 )" RDEPEND="${CDEPEND}" S="${WORKDIR}/${MY_P}" RESTRICT="test" PATCHES=( "${WORKDIR}/${PV}-build.patch" "${WORKDIR}/${PV}-launch.patch" ) src_prepare() { default eprefixify "${S}/src/script/ant" # Fixes bug 556008. java-ant_xml-rewrite -f build.xml \ -c -e javadoc \ -a failonerror \ -v "false" # See bug #196080 for more details. java-ant_bsfix_one build.xml java-pkg-2_src_prepare # Remove JDK9+ stuff einfo "Removing JDK9+ classes (Jmod and Link)" rm "${S}"/src/main/org/apache/tools/ant/taskdefs/modules/{Jmod,Link}.java } src_compile() { export ANT_HOME="" # Avoid error message that package ant-core was not found export ANT_TASKS="none" local bsyscp # This ensures that when building ant with bootstrapped ant, # only the source is used for resolving references, and not # the classes in bootstrapped ant but jikes in kaffe has issues with this... if ! java-pkg_current-vm-matches kaffe; then bsyscp="-Dbuild.sysclasspath=ignore" fi CLASSPATH="$(java-config -t)" ./build.sh ${bsyscp} jars dist-internal || die "build failed" if use doc; then # All Java packages imported by the source files need to present in # the classpath, otherwise it would be https://bugs.gentoo.org/780531 local doc_deps=( bcel bsf-2.3 commons-logging commons-net jakarta-activation-api-1 jakarta-oro-2.0 jakarta-regexp-1.4 jdepend jsch log4j-12-api-2 javax-mail sun-jai-bin xalan xml-commons-resolver xz-java ) for dep in "${doc_deps[@]}"; do java-pkg_jar-from --build-only --into lib/optional/ "${dep}" done # This file imports netrexx.lang.Rexx, which is not available # from ::gentoo. Fortunately, there is not a dev-java/ant-* # package for it, so even if we could generate documentation # for it, it would be irrelevant rm src/main/org/apache/tools/ant/taskdefs/optional/NetRexxC.java || die "Failed to remove Java source file blocking Javadoc generation" ./build.sh ${bsyscp} javadocs || die "Javadoc build failed" fi } src_install() { dodir /usr/share/ant/lib for jar in ant.jar ant-bootstrap.jar ant-launcher.jar ; do java-pkg_dojar build/lib/${jar} dosym ../../${PN}/lib/${jar} /usr/share/ant/lib/${jar} done dobin src/script/ant dodir /usr/share/${PN}/bin for each in antRun antRun.pl runant.pl runant.py ; do dobin "${S}/src/script/${each}" dosym ../../../bin/${each} /usr/share/${PN}/bin/${each} done dosym ../${PN}/bin /usr/share/ant/bin insinto /usr/share/${PN} doins -r dist/etc dosym ../${PN}/etc /usr/share/ant/etc echo "ANT_HOME=\"${EPREFIX}/usr/share/ant\"" > "${T}/20ant" doenvd "${T}/20ant" dodoc NOTICE README WHATSNEW KEYS if use doc; then dodoc -r manual/* java-pkg_dojavadoc --symlink manual/api build/javadocs fi use source && java-pkg_dosrc src/main/* }