diff --git a/dev-java/gluegen/Manifest b/dev-java/gluegen/Manifest new file mode 100644 index 0000000000..352a9d8bfa --- /dev/null +++ b/dev-java/gluegen/Manifest @@ -0,0 +1,2 @@ +DIST gluegen-2.3.2.gh.tar.gz 77819799 BLAKE2B ec8b628fcd0663aa83609ea04db6a2fb7bc6a16e223a88a4849d8128949b18e48af77904d767b5355679518f59c266aaef969bd460db36587ce46ecac6d5d883 SHA512 1871ff479de52eab5d8d80537de94debfe601379e9f2539478e11bbaa6c970856a3ed2d8d96e0a293482d80021b0d5304bf7d13b65bc96514042fa4b2f8bdd95 +DIST gluegen-jcpp-2.3.2.gh.tar.gz 47485 BLAKE2B f8d26f9e6656400089b4e82b3e8ce1e589e731eb1269d110426588c7790a08e51f7ec2852b8e520cf8a7b7807a86180204b8dece4a1d579c7ce13be89625455e SHA512 1825caf95bdd3009b9b096ac7cec94711c30e55c2fc48812b41622e4a60e34fc888b959ad47cc5e22b8ae9134d01a5b5b089ceb8ba30985f599714650fecb65d diff --git a/dev-java/gluegen/files/gluegen-2.2.4-dont-copy-jars.patch b/dev-java/gluegen/files/gluegen-2.2.4-dont-copy-jars.patch new file mode 100644 index 0000000000..ca972dcfc1 --- /dev/null +++ b/dev-java/gluegen/files/gluegen-2.2.4-dont-copy-jars.patch @@ -0,0 +1,15 @@ +--- a/make/build.xml ++++ b/make/build.xml +@@ -806,12 +806,6 @@ + + + +- +- +- + + diff --git a/dev-java/gluegen/files/gluegen-2.2.4-dont-strip.patch b/dev-java/gluegen/files/gluegen-2.2.4-dont-strip.patch new file mode 100644 index 0000000000..2e4ed462f6 --- /dev/null +++ b/dev-java/gluegen/files/gluegen-2.2.4-dont-strip.patch @@ -0,0 +1,20 @@ +--- a/make/gluegen-cpptasks-base.xml ++++ b/make/gluegen-cpptasks-base.xml +@@ -1511,17 +1511,6 @@ + - Helper strip.libraries for stripping off debug information + --> + +- +- +- +- +- +- +- +- +- +- + + + diff --git a/dev-java/gluegen/files/gluegen-2.2.4-dont-test-archive.patch b/dev-java/gluegen/files/gluegen-2.2.4-dont-test-archive.patch new file mode 100644 index 0000000000..a4f4507cf5 --- /dev/null +++ b/dev-java/gluegen/files/gluegen-2.2.4-dont-test-archive.patch @@ -0,0 +1,14 @@ +--- a/make/build-test.xml ++++ b/make/build-test.xml +@@ -614,9 +614,11 @@ chmod 644 ${results}/* \${line.separator} + + + ++ + + + diff --git a/dev-java/gluegen/files/gluegen-2.3.2-remove-static-lib.patch b/dev-java/gluegen/files/gluegen-2.3.2-remove-static-lib.patch new file mode 100644 index 0000000000..1b43c67213 --- /dev/null +++ b/dev-java/gluegen/files/gluegen-2.3.2-remove-static-lib.patch @@ -0,0 +1,106 @@ +--- a/make/gluegen-cpptasks-base.xml ++++ b/make/gluegen-cpptasks-base.xml +@@ -1216,21 +1216,12 @@ + + + +- +- +- +- +- + + +- +- + + + + +- +- + + + + + +@@ -1324,8 +1305,6 @@ + + + +- +- + + + +@@ -1334,16 +1313,12 @@ + + + +- +- + + + + + + +- +- + + + +@@ -1351,8 +1326,6 @@ + + + +- +- + + + +@@ -1360,8 +1333,6 @@ + + + +- +- + + + diff --git a/dev-java/gluegen/files/gluegen-2.3.2-respect-flags.patch b/dev-java/gluegen/files/gluegen-2.3.2-respect-flags.patch new file mode 100644 index 0000000000..1f5ab7d907 --- /dev/null +++ b/dev-java/gluegen/files/gluegen-2.3.2-respect-flags.patch @@ -0,0 +1,23 @@ +--- a/Makefile ++++ b/Makefile +@@ -1,18 +1,16 @@ + BITS=32 + + ifeq ($(BITS),32) +- CC=gcc32 + NS=win-x86 + SCFLAGS= + else + BITS=64 +- CC=gcc64 + NS=win-x64 + SCFLAGS=-D_MSC_VER=1400 + endif + +-CFLAGS=-m$(BITS) -shared -c -fno-rtti -fPIC $(SCFLAGS) -I/usr/lib/jvm/java-6-sun/include -I../common/platform-libs/jre-include/win32 +-LFLAGS=-m$(BITS) -shared -fno-rtti -fPIC ++CFLAGS += -m$(BITS) -shared -c -fPIC $(SCFLAGS) -I/usr/lib/jvm/java-6-sun/include -I../common/platform-libs/jre-include/win32 ++LFLAGS = $(LDFLAGS) -m$(BITS) -shared -fPIC + + SRC1=src/native/common/CPU.c + SRC2=src/native/windows/WindowsDynamicLinkerImpl_JNI.c diff --git a/dev-java/gluegen/gluegen-2.3.2.ebuild b/dev-java/gluegen/gluegen-2.3.2.ebuild new file mode 100644 index 0000000000..af18e61b69 --- /dev/null +++ b/dev-java/gluegen/gluegen-2.3.2.ebuild @@ -0,0 +1,95 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +EANT_BUILD_TARGET="all.no_junit" +EANT_BUILD_XML="make/build.xml" +EANT_DOC_TARGET="" +EANT_EXTRA_ARGS="-Dc.strip.libraries=false" +EANT_GENTOO_CLASSPATH="antlr,ant-core,jsr305" +EANT_GENTOO_CLASSPATH_EXTRA="${S}/build/${PN}{,-rt}.jar" +EANT_NEEDS_TOOLS="yes" +EANT_TEST_GENTOO_CLASSPATH="${EANT_GENTOO_CLASSPATH},junit-4" +EANT_TEST_TARGET="junit.run" +JAVA_ANT_REWRITE_CLASSPATH="yes" +JAVA_PKG_IUSE="doc source test" +WANT_ANT_TASKS="ant-antlr ant-contrib dev-java/cpptasks:0" + +inherit java-pkg-2 java-ant-2 toolchain-funcs + +DESCRIPTION="Automatically generate the JNI code necessary to call C libraries" +HOMEPAGE=" + https://jogamp.org/gluegen/www/ + https://github.com/sgothel/gluegen +" +SRC_URI=" + https://github.com/sgothel/gluegen/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz + https://github.com/sgothel/jcpp/archive/refs/tags/v${PV}.tar.gz -> gluegen-jcpp-${PV}.gh.tar.gz +" +#TODO: unbundle jcpp if possible + +LICENSE="BSD Apache-2.0" +SLOT="2.3" +KEYWORDS="~amd64" + +COMMON_DEP=" + dev-java/ant-core:0 + dev-java/antlr:0 + dev-java/jsr305:0 +" +RDEPEND=" + ${COMMON_DEP} + >=virtual/jre-1.8:* +" +DEPEND=" + ${COMMON_DEP} + >=virtual/jdk-1.8:* + dev-java/cpptasks:0 + test? ( + dev-java/junit:4 + dev-java/ant-junit4 + ) +" +BDEPEND="dev-vcs/git" + +PATCHES=( + "${FILESDIR}/${PN}-2.2.4-dont-copy-jars.patch" + "${FILESDIR}/${PN}-2.2.4-dont-strip.patch" + "${FILESDIR}/${PN}-2.2.4-dont-test-archive.patch" + "${FILESDIR}/${P}-remove-static-lib.patch" + "${FILESDIR}/${P}-respect-flags.patch" +) + +src_prepare() { + tc-export CC + mv "${WORKDIR}"/jcpp-${PV}/* jcpp/ || die + rm -rf make/lib || die + default + java-ant_bsfix_files "${S}/make/build-test.xml" + + #it want a git repo + git init || die + git config --global user.email "you@example.com" || die + git config --global user.name "Your Name" || die + git add . || die + git commit -m 'init' || die +} + +src_test() { + EANT_TASKS="ant-junit4" java-pkg-2_src_test +} + +src_install() { + java-pkg_dojar build/${PN}{,-rt}.jar + java-pkg_doso build/obj/*.so + + use doc && dodoc -r doc/manual + use source && java-pkg_dosrc src/java/* + + # for building jogl + insinto /usr/share/${PN}-${SLOT}/make + doins -r make/* + insinto /usr/share/${PN}-${SLOT}/build + doins build/artifact.properties +} diff --git a/dev-java/gluegen/metadata.xml b/dev-java/gluegen/metadata.xml new file mode 100644 index 0000000000..cb03c9e5c9 --- /dev/null +++ b/dev-java/gluegen/metadata.xml @@ -0,0 +1,23 @@ + + + + + co-maintainers welcome + Alessandro Barbieri + lssndrbarbieri@gmail.com + + +GlueGen is a tool which automatically generates the Java and JNI code necessary +to call C libraries. It reads as input ANSI C header files and separate +configuration files which provide control over many aspects of the glue code +generation. GlueGen uses a complete ANSI C parser and an internal representation +(IR) capable of representing all C types to represent the APIs for which it +generates interfaces. It has the ability to perform significant transformations +on the IR before glue code emission. GlueGen is currently powerful enough to +bind even low-level APIs such as the Java Native Interface (JNI) and the AWT +Native Interface (JAWT) back up to the Java programming language. + + + sgothel/gluegen + +