commit:     ed3f79f845a092e3722737c1ffa748406f92a848
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Sat Mar 13 09:30:24 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Oct  3 16:24:36 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ed3f79f8

dev-java/jflex: add 1.9.1

- now DEPEND instead of PDEPEND on dev-java/javacup
  because upstream stops providing a bundled javacup

- builds with auto-value annotation processor
- keeps 'manual' selection of tests

Package-Manager: Portage-3.0.13, Repoman-3.0.2
Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Part-of: https://github.com/gentoo/gentoo/pull/44017
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-java/jflex/Manifest           |   1 +
 dev-java/jflex/jflex-1.9.1.ebuild | 144 ++++++++++++++++++++++++++++++++++++++
 dev-java/jflex/metadata.xml       |   6 ++
 3 files changed, 151 insertions(+)

diff --git a/dev-java/jflex/Manifest b/dev-java/jflex/Manifest
index dc9f2fde4025..ff6b6d0feb28 100644
--- a/dev-java/jflex/Manifest
+++ b/dev-java/jflex/Manifest
@@ -1 +1,2 @@
 DIST jflex-1.6.1.tar.gz 3027791 BLAKE2B 
4262f75c16a847314db8cb175901658ff6b424469e66523b41564179fa30f0e64bcf2d7ad0e06ad918336e5a41e166a74d55f19f7451662d19fbcaa29f716dce
 SHA512 
436840c90d906042205d27e1d3c56dec724bf62cc3d8c8d3445f217af0a50c9ca2bb56ed91f0cd3c37a930f7ca22f4cc50e8c28dbe905f02adf695c8e96fb07b
+DIST jflex-1.9.1.tar.gz 4944916 BLAKE2B 
7976e17c0a75f84fc09a431ae100ea5061694edeffb5a8bc14b8afbb93a07296b7826b4540634ea0cb4db761a600603925a4489e49ea9b8a1d948d4cad9919be
 SHA512 
2f7dc057741fb76309cd83042301cfcd73ff1e9e2e5330cdd88d96b8aa45d66cbb73a2a3e1020613d717ccd8aece21afe98b92c6d718d73337baa28c142a031f

diff --git a/dev-java/jflex/jflex-1.9.1.ebuild 
b/dev-java/jflex/jflex-1.9.1.ebuild
new file mode 100644
index 000000000000..31acca3718ce
--- /dev/null
+++ b/dev-java/jflex/jflex-1.9.1.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="JFlex is a lexical analyzer generator for Java"
+HOMEPAGE="https://www.jflex.de/";
+SRC_URI="https://github.com/jflex-de/jflex/releases/download/v${PV}/${P}.tar.gz";
+S="${WORKDIR}/${P}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc-macos ~x64-macos"
+IUSE="ant-task examples test vim-syntax"
+REQUIRED_USE="test? ( ant-task )"
+
+# <dev-java/ognl-3.1.25:0 because of test failures with 3.1.25 or higher
+DEPEND="
+       >=virtual/jdk-1.8:*
+       dev-java/auto-value:0
+       dev-java/escapevelocity:0
+       dev-java/incap:0
+       >=dev-java/javacup-11b_p20160615-r2:0
+       dev-java/javapoet:0
+       dev-java/jsr305:0
+       ant-task? ( >=dev-java/ant-1.10.15:0 )
+       test? (
+               dev-java/antlr-runtime:3.5
+               dev-java/generics-resolver:0
+               >=dev-java/guava-33.4.8:0
+               dev-java/javaruntype:0
+               dev-java/junit-quickcheck:0
+               <dev-java/ognl-3.1.25:0
+               dev-java/slf4j-simple:0
+               dev-java/truth:0
+       )
+"
+
+RDEPEND="
+       >=virtual/jre-1.8:*
+       ant-task? ( >=dev-java/ant-1.10.15:0 )
+       vim-syntax? ( || ( app-editors/vim app-editors/gvim ) )
+"
+
+DOCS=( {changelog,README}.md )
+JAVA_CLASSPATH_EXTRA="auto-value,javacup,jsr305"
+JAVA_MAIN_CLASS="jflex.Main"
+JAVA_RESOURCE_DIRS="src/main/resources"
+JAVA_SRC_DIR="src/main/java"
+
+JAVA_TEST_GENTOO_CLASSPATH="
+       ant
+       antlr-runtime-3.5
+       generics-resolver
+       guava
+       javaruntype
+       junit-4
+       junit-quickcheck
+       ognl
+       slf4j-simple
+       truth
+"
+
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+
+src_prepare() {
+       java-pkg-2_src_prepare
+
+       # Keep pre-compiled jar for generating LexScan.java
+       # It includes java_cup/runtime
+       java-pkg_clean ! -path "./lib/jflex-full-${PV}.jar"
+
+       # No need for that stuff
+       rm -r src/generated || die "rm generated"
+
+       # Providing ant-task would require dev-java/ant in dependencies.
+       if use ant-task; then
+               JAVA_GENTOO_CLASSPATH_EXTRA+=":$(java-pkg_getjar --build-only 
ant ant.jar)"
+       else
+               rm src/main/java/jflex/anttask/JFlexTask.java || die
+       fi
+}
+
+jflex_compile() {
+       $(java-config -J) "${@}" jflex.Main \
+               -d src/main/java \
+               --skel src/main/jflex/skeleton.nested \
+               src/main/jflex/LexScan.flex || die
+       java-pkg-simple_src_compile
+}
+
+src_compile() {
+       # get processorpath
+       local pp="$(java-pkg_getjar --build-only auto-value auto-value.jar)"
+       pp="${pp}:$(java-pkg_getjar --build-only auto-value auto-common.jar)"
+       pp="${pp}:$(java-pkg_getjars --build-only 
escapevelocity,guava,incap,javapoet)"
+
+       JAVAC_ARGS="-processorpath ${pp} -s src/main/java"
+
+       JAVACUP=$(java-pkg_getjar --build-only javacup javacup.jar)
+       java -jar "${JAVACUP}" -destdir ${JAVA_SRC_DIR} -package ${PN} \
+               -parser LexParse -interface src/main/cup/LexParse.cup || die
+
+       einfo "Generate LexScan.java using pre-compiled jar"
+       jflex_compile -cp "lib/jflex-full-${PV}.jar"
+
+       einfo "Remove and re-generate LexScan.java using the freshly built jar"
+       rm -v src/main/java/LexScan.java || die "rm LexScan.java"
+       rm -r target || die
+       jflex_compile -cp "${JAVACUP}:jflex.jar"
+}
+
+src_test() {
+       local TESTS=$(find src/test/java \( -name "*Test.java" -o -name 
"*Quickcheck.java" \) -printf "%P\n")
+       TESTS="${TESTS//.java}"
+       JAVA_TEST_RUN_ONLY="${TESTS//\//.}"
+
+       java-pkg-simple_src_test
+}
+
+src_install() {
+       java-pkg-simple_src_install
+
+       use ant-task && java-pkg_register-ant-task
+
+       use examples && java-pkg_doexamples examples
+
+       if use doc; then
+               dodoc doc/*.pdf
+               docinto html
+               dodoc doc/*.{css,html,png} doc/COPYRIGHT
+       fi
+
+       if use vim-syntax; then
+               insinto /usr/share/vim/vimfiles/syntax
+               doins lib/${PN}.vim
+       fi
+}

diff --git a/dev-java/jflex/metadata.xml b/dev-java/jflex/metadata.xml
index 3c0e0377e098..038f42e996dc 100644
--- a/dev-java/jflex/metadata.xml
+++ b/dev-java/jflex/metadata.xml
@@ -8,4 +8,10 @@
        <use>
                <flag name="ant-task">Build and register the ant-task</flag>
        </use>
+       <upstream>
+               <remote-id type="github">jflex-de/jflex</remote-id>
+               <changelog>https://jflex.de/changelog.html</changelog>
+               <bugs-to>https://github.com/jflex-de/jflex/issues/</bugs-to>
+               <doc>https://jflex.de/docu.html</doc>
+       </upstream>
 </pkgmetadata>

Reply via email to