summaryrefslogtreecommitdiff
blob: 049d336b20cc7b6639f9a6ad261a5ee249e79c13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-java/java-gnome/java-gnome-2.8.2-r2.ebuild,v 1.1 2004/12/28 12:54:11 axxo Exp $

inherit eutils

DESCRIPTION="A meta package for all the bindings libraries necessary to write GNOME/GTK applicatons in Java"
HOMEPAGE="http://java-gnome.sourceforge.net/"
DEPEND="!<dev-java/java-gnome-2.8
	>=dev-java/libgtk-java-2.4.6-r2
	>=dev-java/libgnome-java-2.8.2-r1
	>=dev-java/libgconf-java-2.8.2
	>=dev-java/libglade-java-2.8.2-r1
	doc? ( >=virtual/jdk-1.2 )"

SLOT="2.8"
LICENSE="as-is"
KEYWORDS="~x86 ~ppc"
IUSE="doc"

pkg_setup() {

	einfo ""
	einfo "The java-gnome project has made considerably changes to its internal"
	einfo "structure. Instead of one monolithic java-gnome package, there are"
	einfo "now indiviudal builds for libgtk-java, libgnome-java, libglade-java, etc"
	einfo ""
	einfo "This java-gnome ebuild is now a meta package which simply depends on"
	einfo "the various new ebuilds"
	einfo ""
	ewarn "While this ebuild is slotted 2.8, it is marked as being blocked by"
	ewarn "the presence of older versions of java-gnome if they exist on your"
	ewarn "system. Not only were the 2.6 bindings really buggy, but with the"
	ewarn "major re-organization of this package into modular pieces, the"
	ewarn "risk of library and/or jar naming collisions is too high."
	einfo ""
	einfo "By the time you see this message, the above issues have been"
	einfo "resolved (ie the new lib*-java packages will all be merged,"
	einfo "and any old java-gnome packages are now removed)."
	einfo ""
}

src_compile() {
	use doc || return

	#
	# Upstream's reorg led to a total mess with the generated Javadoc.
	# This attempts to replace it for the time being, creating Javadoc
	# for all the java-gnome libraries at one go (which makes way more sense
	# than one per library scattered all over)
	#

	cd ${WORKDIR}

	# Yes, this is terrible hard coding. I'd welcome someone telling me
	# how to do this better.

	unzip -o -q /usr/share/libgtk-java-2.4/src/libgtk-java-2.4.6.src.zip -d java
	unzip -o -q /usr/share/libgnome-java-2.8/src/libgnome-java-2.8.2.src.zip -d java
	unzip -o -q /usr/share/libgconf-java-2.8/src/libgconf-java-2.8.2.src.zip -d java
	unzip -o -q /usr/share/libglade-java-2.8/src/libglade-java-2.8.2.src.zip -d java

	javadoc \
		-public -use -version -author \
		-windowtitle "java-gnome ${PV} API Reference" \
		-doctitle "API reference for <B><TT>java-gnome</TT></B>, version ${PV}" \
		-d api \
		-sourcepath java \
			org.gnu.glib \
			org.gnu.pango \
			org.gnu.atk \
			org.gnu.gdk \
			org.gnu.gtk \
			org.gnu.gtk.event \
			org.gnu.gnome \
			org.gnu.gnome.event \
			org.gnu.glade \
			org.gnu.gconf
}

src_install() {
	einfo "creating symlinks for convenience and backwards compatability"

	#
	# This is just here for convenience and for legacy compatability.
	#
	# This isn't meant to be Java policy compliant. There is no
	# package.env file for this ebuild because the individual libraries
	# it depends on all have proper package.env (which this uses, in fact).
	#

	mkdir -p ${D}/usr/share/java-gnome/lib
	cd ${D}/usr/share/java-gnome/lib

	gtk_jar=`java-config -p libgtk-java-2.4`
	ln -s $gtk_jar `basename $gtk_jar`

	gnome_jar=`java-config -p libgnome-java-2.8`
	ln -s $gnome_jar `basename $gnome_jar`

	glade_jar=`java-config -p libglade-java-2.8`
	ln -s $glade_jar `basename $glade_jar`

	gconf_jar=`java-config -p libgconf-java-2.8`
	ln -s $gconf_jar `basename $gconf_jar`


	use doc || return

	mkdir -p ${D}/usr/share/doc/${PF}
	mv ${WORKDIR}/api ${D}/usr/share/doc/${PF}
}