From: Joshua Nichols Date: Sun, 8 Oct 2006 03:23:17 +0000 (+0000) Subject: Adding eclass for java-gnome. X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=7a3e3f6fcf462fd81ebc1a95c2d20e71d6ca1815;p=gentoo.git Adding eclass for java-gnome. --- diff --git a/eclass/java-gnome.eclass b/eclass/java-gnome.eclass new file mode 100644 index 000000000000..add9d223116f --- /dev/null +++ b/eclass/java-gnome.eclass @@ -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 +# 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