summaryrefslogtreecommitdiff
blob: e3efa38cc6386ac94bb6bf11060c66ac29f99979 (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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI="6"
inherit eutils java-pkg-2 java-ant-2

DESCRIPTION="Netbeans IDE"
HOMEPAGE="https://netbeans.org/"
SLOT="9999"
SOURCE_URL="http://bits.netbeans.org/download/trunk/nightly/2018-02-08_00-02-34/zip/netbeans-trunk-nightly-201802080002-src.zip"
PATCHES_URL="https://dev.gentoo.org/~fordfrog/distfiles/netbeans-9999-r21-build.xml.patch.bz2"
L10N_URL="https://dev.gentoo.org/~fordfrog/distfiles/netbeans-l10n-9999-20160920.tar.bz2"
ALL_URLS="${SOURCE_URL} ${PATCHES_URL} ${L10N_URL}"
SRC_URI="l10n_af? ( ${ALL_URLS} )
	l10n_ar? ( ${ALL_URLS} )
	l10n_bg? ( ${ALL_URLS} )
	l10n_ca? ( ${ALL_URLS} )
	l10n_cs? ( ${ALL_URLS} )
	l10n_de? ( ${ALL_URLS} )
	l10n_el? ( ${ALL_URLS} )
	l10n_es? ( ${ALL_URLS} )
	l10n_fil? ( ${ALL_URLS} )
	l10n_fr? ( ${ALL_URLS} )
	l10n_gl? ( ${ALL_URLS} )
	l10n_hi? ( ${ALL_URLS} )
	l10n_id? ( ${ALL_URLS} )
	l10n_it? ( ${ALL_URLS} )
	l10n_ja? ( ${ALL_URLS} )
	l10n_ko? ( ${ALL_URLS} )
	l10n_lt? ( ${ALL_URLS} )
	l10n_nl? ( ${ALL_URLS} )
	l10n_pl? ( ${ALL_URLS} )
	l10n_pt-BR? ( ${ALL_URLS} )
	l10n_pt-PT? ( ${ALL_URLS} )
	l10n_ro? ( ${ALL_URLS} )
	l10n_ru? ( ${ALL_URLS} )
	l10n_si? ( ${ALL_URLS} )
	l10n_sq? ( ${ALL_URLS} )
	l10n_sr? ( ${ALL_URLS} )
	l10n_sv? ( ${ALL_URLS} )
	l10n_ta? ( ${ALL_URLS} )
	l10n_tr? ( ${ALL_URLS} )
	l10n_vi? ( ${ALL_URLS} )
	l10n_zh-CN? ( ${ALL_URLS} )
	l10n_zh-TW? ( ${ALL_URLS} )
"
LICENSE="|| ( CDDL GPL-2-with-linking-exception )"
KEYWORDS="~amd64 ~x86"
IUSE_NETBEANS_MODULES="
	+netbeans_modules_apisupport
	netbeans_modules_cnd
	netbeans_modules_dlight
	netbeans_modules_enterprise
	netbeans_modules_ergonomics
	netbeans_modules_extide
	netbeans_modules_groovy
	+netbeans_modules_java
	netbeans_modules_javacard
	+netbeans_modules_javafx
	netbeans_modules_mobility
	netbeans_modules_php
	+netbeans_modules_profiler
	netbeans_modules_webcommon
	+netbeans_modules_websvccommon"
IUSE_L10N="
	l10n_af
	l10n_ar
	l10n_bg
	l10n_ca
	l10n_cs
	l10n_de
	l10n_el
	l10n_es
	l10n_fil
	l10n_fr
	l10n_gl
	l10n_hi
	l10n_id
	l10n_it
	l10n_ja
	l10n_ko
	l10n_lt
	l10n_nl
	l10n_pl
	l10n_pt-BR
	l10n_pt-PT
	l10n_ro
	l10n_ru
	l10n_si
	l10n_sq
	l10n_sr
	l10n_sv
	l10n_ta
	l10n_tr
	l10n_vi
	l10n_zh-CN
	l10n_zh-TW"
IUSE="doc ${IUSE_NETBEANS_MODULES} ${IUSE_L10N}"
S="${WORKDIR}"

CDEPEND="virtual/jdk:1.8"
DEPEND="${CDEPEND}
	dev-java/javahelp:0"
RDEPEND="${CDEPEND}
	~dev-java/netbeans-harness-${PV}
	~dev-java/netbeans-ide-${PV}
	~dev-java/netbeans-nb-${PV}
	~dev-java/netbeans-platform-${PV}
	netbeans_modules_apisupport? ( ~dev-java/netbeans-apisupport-${PV} )
	netbeans_modules_cnd? ( ~dev-java/netbeans-cnd-${PV} )
	netbeans_modules_dlight? ( ~dev-java/netbeans-dlight-${PV} )
	netbeans_modules_enterprise? ( ~dev-java/netbeans-enterprise-${PV} )
	netbeans_modules_ergonomics? ( ~dev-java/netbeans-ergonomics-${PV} )
	netbeans_modules_extide? ( ~dev-java/netbeans-extide-${PV} )
	netbeans_modules_groovy? ( ~dev-java/netbeans-groovy-${PV} )
	netbeans_modules_java? ( ~dev-java/netbeans-java-${PV} )
	netbeans_modules_javacard? ( ~dev-java/netbeans-javacard-${PV} )
	netbeans_modules_javafx? ( ~dev-java/netbeans-javafx-${PV} )
	netbeans_modules_mobility? ( ~dev-java/netbeans-mobility-${PV} )
	netbeans_modules_php? ( ~dev-java/netbeans-php-${PV} )
	netbeans_modules_profiler? ( ~dev-java/netbeans-profiler-${PV} )
	netbeans_modules_webcommon? ( ~dev-java/netbeans-webcommon-${PV} )
	netbeans_modules_websvccommon? ( ~dev-java/netbeans-websvccommon-${PV} )
	doc? ( ~dev-java/netbeans-javadoc-${PV} )"

JAVA_PKG_BSFIX="off"
NBLOCALES=""

pkg_setup() {
	for lingua in ${IUSE_L10N} ; do
		if use ${lingua} ; then
			local lang=${lingua/l10n_/}
			lang=${lang/-/_}

			case ${lang} in
				ar)  lang="ar_EG,ar_SA" ;;
				es)  lang="es,es_CO"    ;;
				fil) lang="fil_PH"	;;
				gl)  lang="gl_ES"	;;
				hi)  lang="hi_IN"	;;
				id)  lang="in_ID"	;;
				nl)  lang="nl_BE,nl_NL" ;;
				ta)  lang="ta_IN"	;;
			esac

			if [ -z "${NBLOCALES}" ] ; then
				NBLOCALES="${lang}"
			else
				NBLOCALES="${NBLOCALES},${lang}"
			fi
		fi
	done

	java-pkg-2_pkg_setup
}

src_unpack() {
	if [ -n "${NBLOCALES}" ] ; then
		unpack $(basename ${SOURCE_URL})
		unpack $(basename ${L10N_URL})

		einfo "Deleting bundled jars..."
		find -name "*.jar" -type f -delete

		unpack netbeans-9999-r21-build.xml.patch.bz2
	fi
}

src_prepare() {
	if [ -n "${NBLOCALES}" ] ; then
		einfo "Deleting bundled class files..."
		find -name "*.class" -type f | xargs rm -vf

		epatch netbeans-9999-r21-build.xml.patch

		einfo "Symlinking external libraries..."
		java-pkg_jar-from --build-only --into javahelp/external javahelp jhall.jar jhall-2.0_05.jar
	fi

	java-pkg-2_src_prepare
	default
}

src_compile() {
	if [ -n "${NBLOCALES}" ] ; then
		einfo "Compiling support for locales: ${NBLOCALES}"
		eant -f nbbuild/build.xml bootstrap || die
		eant -Dlocales=${NBLOCALES} -Ddist.dir=../nbbuild/netbeans -Dnbms.dir="" -Dnbms.dist.dir="" \
			-Dpermit.jdk7.builds=true -f l10n/build.xml build || die
	fi
}

src_install() {
	if [ -n "${NBLOCALES}" ] ; then
		pushd "${S}"/nbbuild/netbeans >/dev/null || die

		for cluster in apisupport cnd dlight enterprise ergonomics groovy harness ide java javacard javafx mobility php platform profiler webcommon websvccommon ; do
			if [ -d "${cluster}" ] ; then
				insinto /usr/share/netbeans-${cluster}-${SLOT}
				doins -r ${cluster}/*
			fi
		done

		if [ -d nb ] ; then
			insinto /usr/share/netbeans-nb-${SLOT}/nb
			doins -r nb/*
		fi

		popd >/dev/null || die

		make_desktop_entry "netbeans-${SLOT} --locale en" "Netbeans ${PV} en" netbeans-${SLOT} Development

		for lingua in ${IUSE_L10N}; do
			if use ${lingua} ; then
				local locales=${lingua/l10n_/}
				locales=${locales/-/:}

				case ${locales} in
					ar)  lang="ar:EG ar:SA" ;;
					es)  lang="es es:CO"    ;;
					fil) lang="fil:PH"	;;
					gl)  lang="gl:ES"	;;
					hi)  lang="hi:IN"	;;
					id)  lang="in:ID"	;;
					nl)  lang="nl:BE nl:NL" ;;
					ta)  lang="ta:IN"	;;
				esac

				for locale in ${locales}; do
					make_desktop_entry "netbeans-${SLOT} --locale ${locale}" "Netbeans ${PV} ${locale}" netbeans-${SLOT} Development
				done
			fi
		done
	fi
}