Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
185 | kardasa | 1 | # Copyright 1999-2013 Gentoo Foundation |
2 | # Distributed under the terms of the GNU General Public License v2 |
||
3 | # $Header: |
||
4 | |||
5 | EAPI="5" |
||
6 | |||
7 | inherit eutils flag-o-matic java-pkg-2 java-ant-2 toolchain-funcs java-osgi |
||
8 | |||
9 | MY_PV="${PV/_rc/RC}" |
||
10 | MY_DMF="http://download.eclipse.org/eclipse/downloads/drops4/R-${MY_PV}-201306052000" |
||
11 | MY_P="${PN}-${MY_PV}" |
||
12 | |||
13 | DESCRIPTION="GTK based SWT Library" |
||
14 | HOMEPAGE="http://www.eclipse.org/" |
||
15 | SRC_URI=" |
||
16 | amd64? ( ${MY_DMF}/${MY_P}-gtk-linux-x86_64.zip ) |
||
17 | ppc? ( ${MY_DMF}/${MY_P}-gtk-linux-x86.zip ) |
||
18 | ppc64? ( ${MY_DMF}/${MY_P}-gtk-linux-ppc64.zip ) |
||
19 | x86? ( ${MY_DMF}/${MY_P}-gtk-linux-x86.zip ) |
||
20 | x86-fbsd? ( ${MY_DMF}/${MY_P}-gtk-linux-x86.zip )" |
||
21 | |||
22 | LICENSE="CPL-1.0 LGPL-2.1 MPL-1.1" |
||
23 | SLOT="4.2" |
||
24 | KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" |
||
25 | IUSE="cairo gnome opengl webkit" |
||
26 | |||
27 | COMMON_DEP=" |
||
28 | >=dev-libs/atk-1.10.2 |
||
29 | >=dev-libs/glib-2.32 |
||
30 | >=x11-libs/gtk+-2.6.8:2 |
||
31 | x11-libs/libXtst |
||
32 | cairo? ( >=x11-libs/cairo-1.4.14 ) |
||
33 | gnome? ( |
||
34 | =gnome-base/gnome-vfs-2* |
||
35 | =gnome-base/libgnome-2* |
||
36 | =gnome-base/libgnomeui-2* |
||
37 | ) |
||
38 | opengl? ( |
||
39 | virtual/glu |
||
40 | virtual/opengl |
||
41 | ) |
||
42 | webkit? ( >=net-libs/webkit-gtk-1.2:2 )" |
||
43 | DEPEND="${COMMON_DEP} |
||
44 | >=virtual/jdk-1.4 |
||
45 | app-arch/unzip |
||
46 | virtual/pkgconfig |
||
47 | x11-libs/libX11 |
||
48 | x11-libs/libXrender |
||
49 | x11-libs/libXt |
||
50 | >=x11-libs/libXtst-1.1.0 |
||
51 | x11-proto/inputproto" |
||
52 | RDEPEND="${COMMON_DEP} |
||
53 | >=virtual/jre-1.4" |
||
54 | |||
55 | S="${WORKDIR}" |
||
56 | |||
57 | # JNI libraries don't need SONAME, bug #253756 |
||
58 | QA_SONAME="usr/$(get_libdir)/libswt-.*.so" |
||
59 | |||
60 | src_unpack() { |
||
61 | local DISTFILE=${A} |
||
62 | unzip -jq "${DISTDIR}"/${DISTFILE} "*src.zip" || die "Unable to extract distfile" |
||
63 | unpack "./src.zip" |
||
64 | |||
65 | # Cleanup the redirtied directory structure |
||
66 | rm -rf about_files/ || die |
||
67 | } |
||
68 | |||
69 | java_prepare() { |
||
70 | # Replace the build.xml to allow compilation without Eclipse tasks |
||
71 | cp "${FILESDIR}/build.xml" "${S}/build.xml" || die "Unable to update build.xml" |
||
72 | mkdir "${S}/src" && mv "${S}/org" "${S}/src" || die "Unable to restructure SWT sources" |
||
73 | |||
74 | # Fix Makefiles to respect flags and work with --as-needed |
||
75 | epatch "${FILESDIR}"/${P}-as-needed-and-flag-fixes.patch |
||
76 | |||
77 | # Define missing g_thread_supported() to be 0. |
||
78 | sed -i '1s/^/#define g_thread_supported() 0\n\n/' "${S}"/os_custom.h || die |
||
79 | } |
||
80 | |||
81 | src_compile() { |
||
82 | # Drop jikes support as it seems to be unfriendly with SWT |
||
83 | java-pkg_filter-compiler jikes |
||
84 | |||
85 | local AWT_ARCH |
||
86 | local JAWTSO="libjawt.so" |
||
87 | if [[ $(tc-arch) == 'x86' ]] ; then |
||
88 | AWT_ARCH="i386" |
||
89 | elif [[ $(tc-arch) == 'ppc' ]] ; then |
||
90 | AWT_ARCH="ppc" |
||
91 | elif [[ $(tc-arch) == 'ppc64' ]] ; then |
||
92 | AWT_ARCH="ppc64" |
||
93 | else |
||
94 | AWT_ARCH="amd64" |
||
95 | fi |
||
96 | if [[ -f "${JAVA_HOME}/jre/lib/${AWT_ARCH}/${JAWTSO}" ]]; then |
||
97 | export AWT_LIB_PATH="${JAVA_HOME}/jre/lib/${AWT_ARCH}" |
||
98 | elif [[ -f "${JAVA_HOME}/jre/bin/${JAWTSO}" ]]; then |
||
99 | export AWT_LIB_PATH="${JAVA_HOME}/jre/bin" |
||
100 | elif [[ -f "${JAVA_HOME}/$(get_libdir)/${JAWTSO}" ]] ; then |
||
101 | export AWT_LIB_PATH="${JAVA_HOME}/$(get_libdir)" |
||
102 | else |
||
103 | eerror "${JAWTSO} not found in the JDK being used for compilation!" |
||
104 | die "cannot build AWT library" |
||
105 | fi |
||
106 | |||
107 | # Fix the pointer size for AMD64 |
||
108 | [[ ${ARCH} == "amd64" || ${ARCH} == "ppc64" ]] && export SWT_PTR_CFLAGS=-DJNI64 |
||
109 | |||
110 | local platform="linux" |
||
111 | |||
112 | use elibc_FreeBSD && platform="freebsd" |
||
113 | |||
114 | # Bug #461784, g_thread_init is deprecated since glib-2.32. |
||
115 | append-cflags -DNO__1g_1thread_1init |
||
116 | |||
117 | local make="emake -f make_${platform}.mak NO_STRIP=y CC=$(tc-getCC) CXX=$(tc-getCXX)" |
||
118 | |||
119 | einfo "Building AWT library" |
||
120 | ${make} make_awt |
||
121 | |||
122 | einfo "Building SWT library" |
||
123 | ${make} make_swt |
||
124 | |||
125 | einfo "Building JAVA-AT-SPI bridge" |
||
126 | ${make} make_atk |
||
127 | |||
128 | if use gnome ; then |
||
129 | einfo "Building GNOME VFS support" |
||
130 | ${make} make_gnome |
||
131 | fi |
||
132 | |||
133 | if use cairo ; then |
||
134 | einfo "Building CAIRO support" |
||
135 | ${make} make_cairo |
||
136 | fi |
||
137 | |||
138 | if use opengl ; then |
||
139 | einfo "Building OpenGL component" |
||
140 | ${make} make_glx |
||
141 | fi |
||
142 | |||
143 | if use webkit ; then |
||
144 | einfo "Building the WebKitGTK+ component" |
||
145 | |||
146 | ${make} make_webkit |
||
147 | fi |
||
148 | |||
149 | einfo "Building JNI libraries" |
||
150 | eant compile |
||
151 | |||
152 | einfo "Copying missing files" |
||
153 | cp -i "${S}/version.txt" "${S}/build/version.txt" |
||
154 | cp -i "${S}/src/org/eclipse/swt/internal/SWTMessages.properties" \ |
||
155 | "${S}/build/org/eclipse/swt/internal/" || die |
||
156 | |||
157 | einfo "Packing JNI libraries" |
||
158 | eant jar |
||
159 | } |
||
160 | |||
161 | src_install() { |
||
162 | swtArch=${ARCH} |
||
163 | use amd64 && swtArch=x86_64 |
||
164 | use x86-fbsd && swtArch=x86 |
||
165 | |||
166 | sed "s/SWT_ARCH/${swtArch}/" "${FILESDIR}/${PN}-${SLOT}-manifest" > "MANIFEST_TMP.MF" || die |
||
167 | use cairo || sed -i -e "/ org.eclipse.swt.internal.cairo; x-internal:=true,/d" "MANIFEST_TMP.MF" |
||
168 | use gnome || sed -i -e "/ org.eclipse.swt.internal.gnome; x-internal:=true,/d" "MANIFEST_TMP.MF" |
||
169 | use opengl || sed -i -e "/ org.eclipse.swt.internal.opengl.glx; x-internal:=true,/d" "MANIFEST_TMP.MF" |
||
170 | use webkit || sed -i -e "/ org.eclipse.swt.internal.webkit; x-internal:=true,/d" "MANIFEST_TMP.MF" |
||
171 | java-osgi_newjar-fromfile "swt.jar" "MANIFEST_TMP.MF" "Standard Widget Toolkit for GTK 2.0" |
||
172 | |||
173 | java-pkg_sointo /usr/$(get_libdir) |
||
174 | java-pkg_doso *.so |
||
175 | |||
176 | dohtml about.html |
||
177 | } |