commit:     dc41685a8022e842dc7d34140655f0d4da3dec25
Author:     Yuan Liao <liaoyuan <AT> gmail <DOT> com>
AuthorDate: Fri Jan 28 20:39:08 2022 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Fri Feb  4 08:17:41 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dc41685a

dev-java/antlr-tool: Add 4.9.3

Signed-off-by: Yuan Liao <liaoyuan <AT> gmail.com>
Closes: 
https://github.com/gentoo/gentoo/pull/24006/commits/ac3c4a909a1d95ac41a1d9e4c57aa2d989028ecd
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 dev-java/antlr-tool/Manifest                     |   2 +
 dev-java/antlr-tool/antlr-tool-4.9.3.ebuild      | 142 +++++++++++++++++++++++
 dev-java/antlr-tool/files/4.9.3-test-fixes.patch |  26 +++++
 dev-java/antlr-tool/metadata.xml                 |   1 +
 4 files changed, 171 insertions(+)

diff --git a/dev-java/antlr-tool/Manifest b/dev-java/antlr-tool/Manifest
index 5af9733be86b..165df95f41e4 100644
--- a/dev-java/antlr-tool/Manifest
+++ b/dev-java/antlr-tool/Manifest
@@ -1,2 +1,4 @@
 DIST antlr-3.5.2.tar.gz 6927126 BLAKE2B 
1907229549434dfea6ef1fa915137a2f733bd61f0a40aacb131689df619d1c92e125453ec3d1febc5d92da1841ffbde060af196cff1ca8fb6f4684600375e161
 SHA512 
e2a0520093fb2a77dcd9d44f26a9fdd612dceaffb398c53b2b8cd29f4630830647ede29e8dd55b434cb2c165b0fd1d77968ec6e6de0798f14d9cdfd9e6fccd99
+DIST antlr-4.9.3.tar.gz 4640242 BLAKE2B 
fb58f5e533051cb2c439c32f0462c1d463c99df862ba7e1a37a1c61378ab36a9edb9525c2a342de5b517da6f02d8291de5976c550932314f3464aad1a778afb9
 SHA512 
61452404c9639b5a0908cda16605f17c0fed0c9adfc3278c7408f9971420e9d1fe8f9e974e0826c2e3e780fdd83324094c0246cd5b28fa63f5686b094ea08127
 DIST antlr-tool-3.5.2-sources.jar 957096 BLAKE2B 
39b75824e129c8111f302eb71407a683c59e91e79a3fa13c5386c4ba4aa322e706deb10b36df3591ab0843faff5702091d543272ee85d63cd92cb36cc72e1ceb
 SHA512 
50fece361b69299be0c0941e6fe2bfacfc39c0b3dad3320126a9a80cd0f053fbaa6332612e2bab2872db122025d6abfe4b35a4636ef1c101e9131bbd2cdf5e28
+DIST antlr-tool-4.9.3-sources.jar 961749 BLAKE2B 
294c7ba6dff9a1039d3e570d7d49f46a564302d1e7a25ac9f662a2c293cbabadd6a5a4a94d026c4e5fcca37c407e104956badbd1cbbf71b957e464dc67cf823e
 SHA512 
7d70e80714b673eb8301def5e66a7133b2ac477e3cc219e37877ef9df673e0599a1148a8c1929ca8eab081d4e7375c9079241765a1f38832b21cfe8608ef4429

diff --git a/dev-java/antlr-tool/antlr-tool-4.9.3.ebuild 
b/dev-java/antlr-tool/antlr-tool-4.9.3.ebuild
new file mode 100644
index 000000000000..bf1ef9d555c6
--- /dev/null
+++ b/dev-java/antlr-tool/antlr-tool-4.9.3.ebuild
@@ -0,0 +1,142 @@
+# Copyright 1999-2022 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.9.3/tool/pom.xml#L14
+MAVEN_ID="org.antlr:antlr4:4.9.3"
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+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
+"
+
+LICENSE="BSD"
+SLOT="4"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos 
~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+CP_DEPEND="
+       ~dev-java/antlr-runtime-${PV}:${SLOT}
+       dev-java/antlr-runtime:3.5
+       dev-java/jakarta-json-api:1
+       dev-java/icu4j:70
+       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}
+"
+
+S="${WORKDIR}/${MY_PN}4-${PV}"
+
+JAVA_SRC_DIR=(
+       tool/src
+       ../src/org # For UnicodeData.java
+)
+JAVA_RESOURCE_DIRS=( tool/resources )
+
+JAVA_TEST_GENTOO_CLASSPATH="junit-4,jol-core"
+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
+       eapply "${FILESDIR}/${PV}-test-fixes.patch"
+       java-pkg-2_src_prepare
+}
+
+src_compile() {
+       ebegin "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
+               jakarta-json-api-1
+               icu4j-70
+               stringtemplate-4
+               treelayout
+       )
+       local CP="${S}/${JAVA_JAR_FILENAME}"
+       for test_dep in "${test_deps[@]}"; do
+               CP+=":$(java-pkg_getjars --with-dependencies "${test_dep}")"
+       done
+       for res_dir in "${JAVA_TEST_RESOURCE_DIRS[@]}"; do
+               CP+=":${res_dir}"
+       done
+
+       ebegin "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}"
+
+       ejunit4 -classpath "${classes}:${CP}" ${TESTS}
+}

diff --git a/dev-java/antlr-tool/files/4.9.3-test-fixes.patch 
b/dev-java/antlr-tool/files/4.9.3-test-fixes.patch
new file mode 100644
index 000000000000..9cb6884ba194
--- /dev/null
+++ b/dev-java/antlr-tool/files/4.9.3-test-fixes.patch
@@ -0,0 +1,26 @@
+From 3eabbddff69dcbcaf9a59f407cc8bef4be8e215b Mon Sep 17 00:00:00 2001
+From: Yuan Liao <[email protected]>
+Date: Thu, 3 Feb 2022 11:51:53 -0800
+Subject: [PATCH] Use 1.8 as javac -source/-target for running tests on Java 17
+
+Signed-off-by: Yuan Liao <[email protected]>
+---
+ .../test/org/antlr/v4/test/runtime/java/BaseJavaTest.java       | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git 
a/runtime-testsuite/test/org/antlr/v4/test/runtime/java/BaseJavaTest.java 
b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/BaseJavaTest.java
+index cc03bdc11..82061135e 100644
+--- a/runtime-testsuite/test/org/antlr/v4/test/runtime/java/BaseJavaTest.java
++++ b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/BaseJavaTest.java
+@@ -137,7 +137,7 @@ public class BaseJavaTest extends BaseRuntimeTestSupport 
implements RuntimeTestS
+                       fileManager.getJavaFileObjectsFromFiles(files);
+ 
+               Iterable<String> compileOptions =
+-                      Arrays.asList("-g", "-source", "1.6", "-target", "1.6", 
"-implicit:class", "-Xlint:-options", "-d", getTempDirPath(), "-cp", 
getTempDirPath() + PATH_SEP + CLASSPATH);
++                      Arrays.asList("-g", "-source", "1.8", "-target", "1.8", 
"-implicit:class", "-Xlint:-options", "-d", getTempDirPath(), "-cp", 
getTempDirPath() + PATH_SEP + CLASSPATH);
+ 
+               JavaCompiler.CompilationTask task =
+                       compiler.getTask(null, fileManager, null, 
compileOptions, null,
+-- 
+2.34.1
+

diff --git a/dev-java/antlr-tool/metadata.xml b/dev-java/antlr-tool/metadata.xml
index ad571d3247b8..61e37d49ba13 100644
--- a/dev-java/antlr-tool/metadata.xml
+++ b/dev-java/antlr-tool/metadata.xml
@@ -6,6 +6,7 @@
                <name>Java</name>
        </maintainer>
        <upstream>
+               <remote-id type="github">antlr/antlr4</remote-id>
                <remote-id type="github">antlr/antlr3</remote-id>
        </upstream>
 </pkgmetadata>

Reply via email to