summaryrefslogtreecommitdiff
path: root/dev-java/asm/asm-9.11.1.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java/asm/asm-9.11.1.ebuild')
-rw-r--r--dev-java/asm/asm-9.11.1.ebuild102
1 files changed, 102 insertions, 0 deletions
diff --git a/dev-java/asm/asm-9.11.1.ebuild b/dev-java/asm/asm-9.11.1.ebuild
new file mode 100644
index 000000000000..d48da71cdae0
--- /dev/null
+++ b/dev-java/asm/asm-9.11.1.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=9
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+
+inherit java-pkg-2 java-pkg-simple junit5
+
+MY_P="ASM_${PV//./_}"
+
+DESCRIPTION="Bytecode manipulation framework for Java"
+HOMEPAGE="https://asm.ow2.io"
+SRC_URI="https://gitlab.ow2.org/asm/asm/-/archive/${MY_P}/asm-${MY_P}.tar.bz2"
+S="${WORKDIR}/asm-${MY_P}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x64-macos"
+
+DEPEND="
+ >=virtual/jdk-11:*
+ test? (
+ >=dev-java/janino-3.1.9:0
+ >=dev-java/opentest4j-1.3.0-r1:0
+ )
+"
+RDEPEND=">=virtual/jre-1.8:*"
+
+PATCHES=(
+ "${FILESDIR}"/asm-9.10-gentoo.patch
+ "${FILESDIR}"/asm-9.11.1-skipFailingTests.patch
+)
+
+ASM_MODULES=( "asm" "asm-tree" "asm-analysis" "asm-commons" "asm-util" )
+JAVADOC_SRC_DIRS=( asm{-analysis,-commons,,-tree,-util}/src/main/java )
+JAVA_TEST_GENTOO_CLASSPATH="janino opentest4j"
+JAVA_TEST_RESOURCE_DIRS=( asm{-analysis,-commons,,-tree,-util}/src/test/resources )
+
+# The junit:5 version is too old, compilation of LambdaRemapTest.java fails with:
+# asm-commons/src/test/java/org/objectweb/asm/commons/LambdaRemapTest.java:9: error: cannot find symbol
+# import org.junit.jupiter.params.Parameter;
+# ^
+# symbol: class Parameter
+
+JAVA_TEST_SRC_DIR=( asm{-analysis,-commons,,-test,-tree,-util}/src/test/java \
+ ! -name LambdaRemapTest.java )
+
+src_compile() {
+ local module
+ for module in "${ASM_MODULES[@]}"; do
+ einfo "Compiling ${module}"
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":${module}.jar"
+ JAVA_INTERMEDIATE_JAR_NAME="org.objectweb.${module/-/.}"
+ JAVA_JAR_FILENAME="${module}.jar"
+ JAVA_MODULE_INFO_OUT="${module}/src/main"
+ JAVA_MODULE_INFO_RELEASE=9
+ JAVA_SRC_DIR="${module}/src/main/java"
+ java-pkg-simple_src_compile
+ rm -r target || die
+ done
+
+ # upstream generates module-info into root of the jars
+ for module in "${ASM_MODULES[@]}"; do
+ einfo "Adjust mudule-info in ${module}"
+ mkdir target || die
+ pushd target >/dev/null || die
+ jar xf ../${module}.jar || die
+ rm -v ../${module}.jar || die
+ mv {META-INF/versions/9/,}module-info.class || die
+ rm -rv META-INF || die
+ popd >/dev/null || die
+ jar cf ${module}.jar -C target . || die
+ rm -r target || die
+ done
+
+ use doc && ejavadoc
+}
+
+src_test() {
+ JAVAC_ARGS="-g"
+ JAVA_CLASSPATH_EXTRA="junit-5"
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":asm-test.jar"
+ JAVA_JAR_FILENAME="asm-test.jar"
+ JAVA_RESOURCE_DIRS=( asm-test/src/main/resources )
+ JAVA_SRC_DIR=( asm-test/src/main/java )
+ java-pkg-simple_src_compile
+ junit5_src_test
+}
+
+src_install() {
+ JAVA_JAR_FILENAME="asm.jar"
+ java-pkg-simple_src_install
+ local module
+ for module in asm-{analysis,commons,tree,util}; do
+ java-pkg_dojar ${module}.jar
+ if use source; then
+ java-pkg_dosrc "${module}/src/main/java/*"
+ fi
+ done
+}