Adding eclass for java-gnome.
authorJoshua Nichols <nichoj@gentoo.org>
Sun, 8 Oct 2006 03:23:17 +0000 (03:23 +0000)
committerJoshua Nichols <nichoj@gentoo.org>
Sun, 8 Oct 2006 03:23:17 +0000 (03:23 +0000)
eclass/java-gnome.eclass [new file with mode: 0644]

diff --git a/eclass/java-gnome.eclass b/eclass/java-gnome.eclass
new file mode 100644 (file)
index 0000000..add9d22
--- /dev/null
@@ -0,0 +1,85 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/java-gnome.eclass,v 1.1 2006/10/08 03:23:17 nichoj Exp $
+
+#
+# Original Author: Joshua Nichols <nichoj@gentoo.org>
+# Purpose:  Reduce repeated code between the java-gnome packages to
+#                      to facilitate ease of maintenance.
+#
+
+# Must be before the gnome.org inherit
+GNOME_TARBALL_SUFFIX=${GNOME_TARBALL_SUFFIX:=gz}
+inherit java-pkg-2 eutils gnome.org
+
+
+ECLASS="java-gnome"
+INHERITED="${INHERITED} ${ECLASS}"
+
+HOMEPAGE="http://java-gnome.sourceforge.net/"
+LICENSE="LGPL-2.1"
+
+IUSE="gcj doc source"
+RDEPEND=">=virtual/jre-1.4"
+DEPEND=">=virtual/jdk-1.4
+       source? ( app-arch/zip )
+       dev-util/pkgconfig"
+
+# Do some heuristics to figure out what bindings this package is for
+# This may be overriden when needed from each ebuild
+if [[ -z ${JAVA_GNOME_BINDINGS} ]]; then 
+       JAVA_GNOME_BINDINGS=${PN}
+       JAVA_GNOME_BINDINGS=${JAVA_GNOME_BINDINGS/-java/}
+       # skip over glib because it's too good for our heuristic
+       [[ ${JAVA_GNOME_BINDINGS} != "glib" ]] && 
+               JAVA_GNOME_BINDINGS=${JAVA_GNOME_BINDINGS/lib/}
+fi
+
+# Filename of the jar that will be built/installed
+if [[ ${SLOT} != "0" ]]; then
+       JAVA_GNOME_JARNAME="${JAVA_GNOME_BINDINGS}${SLOT}.jar"
+else
+       JAVA_GNOME_JARNAME="${JAVA_GNOME_BINDINGS}.jar"
+fi
+
+# Full path to installed jar 
+JAVA_GNOME_JARPATH="${JAVA_PKG_JARDEST}/${JARNAME}"
+
+# pkgconfig file for the package
+JAVA_GNOME_PC=${JAVA_GNOME_PC:="${JAVA_GNOME_BINDINGS}-java.pc"}
+
+# Override arguments to econf, by calling java-gnome_src_compile
+# with the extra args
+
+java-gnome_pkg_setup() {
+       java-pkg-2_pkg_setup
+       use gcj && java-pkg_ensure-gcj
+}
+
+java-gnome_src_compile() {
+       JNI_INCLUDES=$(java-pkg_get-jni-cflags) \
+       JAVAC="javac $(java-pkg_javac-args)" econf \
+               $(use_with doc javadocs) \
+               $(use_with gcj gcj-compile) \
+               --with-jardir=${JAVA_PKG_JARDEST} \
+               "$@" || die "configure failed"
+
+       emake || die "emake failed"
+
+       # Fix the broken pkgconfig file
+       sed -i \
+               -e "s:classpath.*$:classpath=\${prefix}/share/${JAVA_PKG_NAME}/lib/${JAVA_GNOME_JARNAME}:" \
+               ${S}/${JAVA_GNOME_PC} || die "failed to tweak ${JAVA_NOME_PC}"
+}
+
+java-gnome_src_install() {
+       emake DESTDIR=${D} install || die "install failed"
+
+       java-pkg_regjar ${JAVA_GNOME_JARPATH}
+       # Examples as documentation
+       ! use doc && rm -rf ${D}/usr/share/doc/${PF}/examples
+
+       use source && java-pkg_dosrc ${S}/src/java/*
+}
+
+EXPORT_FUNCTIONS pkg_setup src_compile src_install