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>
