diff options
Diffstat (limited to 'dev-java')
| -rw-r--r-- | dev-java/antlr-tool/Manifest | 2 | ||||
| -rw-r--r-- | dev-java/antlr-tool/antlr-tool-4.13.2.ebuild | 138 |
2 files changed, 140 insertions, 0 deletions
diff --git a/dev-java/antlr-tool/Manifest b/dev-java/antlr-tool/Manifest index 3bd6f15319d5..e9cf35babb99 100644 --- a/dev-java/antlr-tool/Manifest +++ b/dev-java/antlr-tool/Manifest @@ -1,4 +1,6 @@ DIST antlr-3.5.3.tar.gz 6752328 BLAKE2B 8ebd098c9475122cddcadd5991b9f882b7fda5868ad979b29c9f4dab97e39cd31e7fc943476c3a854f3e3aee9c1c56384b7fcc893f87548482af5d5d0839fd30 SHA512 c565e1ade7a62bb127df707015afded9a9cea54cbf5488730a327671c57e8718f93f76c4fa28edd856810cb9c7ccbcb27b53a7c8f7e3efc8169e64cfcc535a4c +DIST antlr-4.13.2.tar.gz 4167326 BLAKE2B 709f3c18329e08a811d7a4e5258fc0183ba6fa6ab62fe83ab694360cf1ce2bb3aa3f30cc62a0339a6ff8b64dd0a766057fd6f751cfc34a4e05051e4d54a57fad SHA512 afd8ecab637a0e70cddf98f63c918eab2b907f87207624e20e80a79f885d6502d4ab734a602b1707969d61944410828b689ec2f8b09c15314fe991024cde1613 DIST antlr-4.9.3.tar.gz 4640242 BLAKE2B fb58f5e533051cb2c439c32f0462c1d463c99df862ba7e1a37a1c61378ab36a9edb9525c2a342de5b517da6f02d8291de5976c550932314f3464aad1a778afb9 SHA512 61452404c9639b5a0908cda16605f17c0fed0c9adfc3278c7408f9971420e9d1fe8f9e974e0826c2e3e780fdd83324094c0246cd5b28fa63f5686b094ea08127 DIST antlr-tool-3.5.3-sources.jar 949247 BLAKE2B f7afa52faae8324093206b7e56dfda58a79815cc2c13baca1cb93b3424c8b310325885ca8c86f0ca8a016a73e30740c2fa5f34ce71ed3a6cfc5fdeb6f2c4a9a7 SHA512 cfbc612c0257c4f0e09451cd76fe904680b6af132596696f2ef9c4e21dcfc53d53501e4d4d2b1c1cf4391355fa3766cf8dabc718dc3580728d24db3ebc14e696 +DIST antlr-tool-4.13.2-sources.jar 745908 BLAKE2B d8e19504e3c21cc32076d11a91aeacaaa6f4097f71e2a9dcc57e3f1b73b9db73d5da640a86b7ac802384aaf68c01e48ad63c98fe2f81a7a238dc8a6c7aa44665 SHA512 5d784a9093616d8867486a85538986c5c58e97f8813ed357dfd7891cea8e1209519e11123c5d186006041229d12a0e4b1da0e90d5d6b6dd63c6c0c7cf501b0c2 DIST antlr-tool-4.9.3-sources.jar 961749 BLAKE2B 294c7ba6dff9a1039d3e570d7d49f46a564302d1e7a25ac9f662a2c293cbabadd6a5a4a94d026c4e5fcca37c407e104956badbd1cbbf71b957e464dc67cf823e SHA512 7d70e80714b673eb8301def5e66a7133b2ac477e3cc219e37877ef9df673e0599a1148a8c1929ca8eab081d4e7375c9079241765a1f38832b21cfe8608ef4429 diff --git a/dev-java/antlr-tool/antlr-tool-4.13.2.ebuild b/dev-java/antlr-tool/antlr-tool-4.13.2.ebuild new file mode 100644 index 000000000000..c89d94df8305 --- /dev/null +++ b/dev-java/antlr-tool/antlr-tool-4.13.2.ebuild @@ -0,0 +1,138 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Artifact ID for antlr-tool is 'antlr4' +# https://github.com/antlr/antlr4/blob/4.13.2/tool/pom.xml#L14 +MAVEN_ID="org.antlr:antlr4:4.13.2" + +JAVA_PKG_IUSE="doc source test" +JAVA_TESTING_FRAMEWORKS="junit-jupiter" + +inherit java-pkg-2 java-pkg-simple junit5 + +MY_PN="${PN%-tool}" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="The ANTLR 4 grammar compiler" +HOMEPAGE="https://www.antlr.org/" +# Maven Central sources JAR for tool/src/org/antlr/v4/unicode/UnicodeData.java, +# which requires string-template-maven-plugin to generate; tarball for the rest +SRC_URI=" + https://github.com/antlr/antlr4/archive/${PV}.tar.gz -> ${MY_P}.tar.gz + https://repo1.maven.org/maven2/org/antlr/antlr4/${PV}/antlr4-${PV}-sources.jar -> ${P}-sources.jar +" +S="${WORKDIR}/${MY_PN}4-${PV}" + +LICENSE="BSD" +SLOT="4" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" + +CP_DEPEND=" + ~dev-java/antlr-runtime-${PV}:${SLOT} + dev-java/antlr-runtime:3.5 + >=dev-java/icu4j-77.1:0 + dev-java/stringtemplate:4 + dev-java/treelayout:0 +" + +DEPEND=" + >=virtual/jdk-1.8:* + ${CP_DEPEND} + dev-java/antlr-tool:3.5 + test? ( + dev-java/jol-core:0 + ) +" + +RDEPEND=" + >=virtual/jre-1.8:* + ${CP_DEPEND} +" + +JAVA_SRC_DIR=( + tool/src + ../src/org # For UnicodeData.java +) +JAVA_RESOURCE_DIRS=( tool/resources ) + +JAVA_TEST_GENTOO_CLASSPATH="jol-core,junit-5" +JAVA_TEST_SRC_DIR=( + tool-testsuite/test + # The runtime test suite is used as a library for tool test suite + runtime-testsuite/{annotations,test} +) +JAVA_TEST_RESOURCE_DIRS=( + # Some resources are mixed with test source files + "${JAVA_TEST_SRC_DIR[0]}" +) + +pkg_setup() { + java-pkg-2_pkg_setup + MY_JAVA="$(java-config -J)" +} + +src_prepare() { + java-pkg_clean + java-pkg-2_src_prepare +} + +src_compile() { + einfo "Generating ANTLR 3 parsers" + "${MY_JAVA}" -cp "$(java-pkg_getjars \ + --build-only --with-dependencies antlr-tool-3.5)" \ + org.antlr.Tool $(find "${JAVA_SRC_DIR[@]}" -name "*.g") || + die "Failed to generate ANTLR 3 parsers" + java-pkg-simple_src_compile +} + +src_test() { + # Build classpath for tests + local test_deps=( + "${JAVA_TEST_GENTOO_CLASSPATH}" + antlr-runtime-${SLOT} + antlr-runtime-3.5 + icu4j + stringtemplate-4 + treelayout + ) + local CP="${S}/${JAVA_JAR_FILENAME}" + for test_dep in "${test_deps[@]}"; do + CP+=":$(java-pkg_getjars --build-only --with-dependencies "${test_dep}")" + done + for res_dir in "${JAVA_TEST_RESOURCE_DIRS[@]}"; do + CP+=":${res_dir}" + done + + einfo "Generating ANTLR 4 parsers for tests" + pushd runtime-testsuite/test > /dev/null || + die "Failed to enter runtime test source directory" + g4_files=( $(find * -name "*.g4") ) + for file in "${g4_files[@]}"; do + java_pkg="${file%/*.g4}" + java_pkg="${java_pkg//\//.}" + "${MY_JAVA}" -cp "${CP}" org.antlr.v4.Tool \ + -visitor -package "${java_pkg}" "${file}" || + die "Failed to generate ANTLR 4 parser from ${file}" + done + popd > /dev/null || die "Failed to leave runtime test source directory" + + # Compile Java test sources + local classes="target/classes" + ejavac -d "${classes}" -cp "${CP}" \ + $(find "${JAVA_TEST_SRC_DIR[@]}" -name "*.java") + + # Create a list of tests to run + pushd "${JAVA_TEST_SRC_DIR[0]}" > /dev/null || + die "Failed to enter test source directory for ${PN}" + local TESTS=$(find * -type f \ + \( -name "Test*.java" -o -name "*Test.java" \) \ + -not -name "BaseJavaToolTest.java" # No runnable methods + ) + TESTS="${TESTS//.java}" + TESTS="${TESTS//\//.}" + popd > /dev/null || die "Failed to leave test source directory for ${PN}" + + ejunit5 -classpath "${classes}:${CP}" ${TESTS} +} |
