diff options
author | 2023-11-02 00:02:54 +0100 | |
---|---|---|
committer | 2023-11-27 09:54:31 +0100 | |
commit | 61abf46d6542f7963e053001e4e0c23c3054c54f (patch) | |
tree | 516b9ce0ba02a5cefc021a6edf4000f006fe19d6 /dev-java/lz4-java | |
parent | www-client/qutebrowser: preemptively add pdfjs upper bound (diff) | |
download | gentoo-61abf46d6542f7963e053001e4e0c23c3054c54f.tar.gz gentoo-61abf46d6542f7963e053001e4e0c23c3054c54f.tar.bz2 gentoo-61abf46d6542f7963e053001e4e0c23c3054c54f.zip |
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@pogatzki.net>
Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
Diffstat (limited to 'dev-java/lz4-java')
-rw-r--r-- | dev-java/lz4-java/lz4-java-1.8.0-r3.ebuild | 92 |
1 files changed, 92 insertions, 0 deletions
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 +} |