commit: 61abf46d6542f7963e053001e4e0c23c3054c54f Author: Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net> AuthorDate: Wed Nov 1 23:02:54 2023 +0000 Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org> CommitDate: Mon Nov 27 08:54:31 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=61abf46d
dev-java/lz4-java: switch to java-pkg-simple - uses java-pkg-simple.eclass instead of java-ant-2.eclass - Java code generation with mvel translated to ebuild - Building headers translated to ebuild using ejavac -h - Building shared object file translated to ebuild with gcc according to https://github.com/lz4/lz4-java/blob/1.8.0/build.xml#L206-L227 - Tests restricted. Would need sofile built into jar. Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net> Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org> dev-java/lz4-java/lz4-java-1.8.0-r3.ebuild | 92 ++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/dev-java/lz4-java/lz4-java-1.8.0-r3.ebuild b/dev-java/lz4-java/lz4-java-1.8.0-r3.ebuild new file mode 100644 index 000000000000..36385b98f07f --- /dev/null +++ b/dev-java/lz4-java/lz4-java-1.8.0-r3.ebuild @@ -0,0 +1,92 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +JAVA_PKG_IUSE="doc source test" +MAVEN_ID="org.lz4:lz4-java:${PV}" +JAVA_TESTING_FRAMEWORKS="junit-4" + +inherit java-pkg-2 java-pkg-simple toolchain-funcs + +DESCRIPTION="LZ4 compression for Java" +HOMEPAGE="https://github.com/lz4/lz4-java" +SRC_URI="https://github.com/lz4/lz4-java/archive/${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${P}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +# tests want sofile built into jar. +# cannot find /net/jpountz/util/linux/amd64/liblz4-java.so +RESTRICT="test" + +DEPEND=" + app-arch/lz4:= + dev-java/mvel:2.5 + dev-libs/xxhash:0 + >=virtual/jdk-1.8:* + test? ( dev-java/randomized-runner:0 )" +RDEPEND=" + app-arch/lz4:= + >=virtual/jre-1.8:*" + +DOCS=( CHANGES.md README.md ) + +JAVA_AUTOMATIC_MODULE_NAME="org.lz4.java" +JAVA_SRC_DIR=( src/java{,-unsafe} ) +JAVA_TEST_GENTOO_CLASSPATH="junit-4 randomized-runner" +JAVA_TEST_RESOURCE_DIRS="src/test-resources" +JAVA_TEST_SRC_DIR="src/test" + +src_compile() { + # remove precompiled native libraries + rm -r src/resources || die + + # cannot include template 'decompressor.template': file not found.] + cp src/build/source_templates/* . || die + + einfo "Code generation" + "$(java-config -J)" \ + -Dout.dir="src/java" \ + -cp "$(java-pkg_getjars --build-only mvel-2.5)" \ + org.mvel2.sh.Main \ + src/build/gen_sources.mvel \ + || die + + java-pkg-simple_src_compile + + einfo "Generate headers" # build.xml lines 194-204 + ejavac -h build/jni-headers -classpath "target/classes" \ + src/java/net/jpountz/xxhash/XXHashJNI.java \ + src/java/net/jpountz/lz4/LZ4JNI.java || die + + einfo "Generate native library" + # https://devmanual.gentoo.org/ebuild-writing/functions/src_compile/no-build-system + mkdir -p build/objects/src/jni + mkdir -p build/jni/net/jpountz/util/linux/amd64 + "$(tc-getCC)" ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} \ + -I$(java-config -O)/../include -I$(java-config -O)/../include/linux \ + -I$(java-config -O)/include -I$(java-config -O)/include/linux \ + -Ibuild/jni-headers \ + -c -o build/objects/src/jni/net_jpountz_lz4_LZ4JNI.o \ + src/jni/net_jpountz_lz4_LZ4JNI.c + "$(tc-getCC)" ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} \ + -I$(java-config -O)/../include -I$(java-config -O)/../include/linux \ + -I$(java-config -O)/include -I$(java-config -O)/include/linux \ + -Ibuild/jni-headers \ + -c -o build/objects/src/jni/net_jpountz_xxhash_XXHashJNI.o \ + src/jni/net_jpountz_xxhash_XXHashJNI.c + + "$(tc-getCC)" ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} \ + -shared \ + -Wl,-soname,liblz4-java.so \ + -o liblz4-java.so \ + build/objects/src/jni/net_jpountz_lz4_LZ4JNI.o \ + build/objects/src/jni/net_jpountz_xxhash_XXHashJNI.o -llz4 +} + +src_install() { + java-pkg-simple_src_install + java-pkg_doso liblz4-java.so +}
