summaryrefslogtreecommitdiff
blob: ecdf10a6fac820980819077098bed3da1a231f70 (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
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI="3"
JAVA_PKG_IUSE="doc source test contrib"
JAVA_PKG_BSFIX_ALL="no"
JAVA_PKG_BSFIX_NAME="build.xml common-build.xml contrib-build.xml"
#JAVA_PKG_DEBUG=1

inherit java-pkg-2 java-ant-2

DESCRIPTION="High-performance, full-featured text search engine library
written entirely in Java"
HOMEPAGE="http://lucene.apache.org"
SRC_URI="mirror://apache/lucene/java/${PV}/${P}-src.tgz"
LICENSE="Apache-2.0"
SLOT="${PV:0:3}"
KEYWORDS="~amd64 ~x86"
IUSE=""
RDEPEND=">=virtual/jdk-1.5
	contrib? (
			  dev-java/commons-beanutils:1.7
			  >=dev-java/commons-codec-1.6:0
	          dev-java/commons-collections:0
			  dev-java/commons-compress:0
	          dev-java/commons-digester:0
	          dev-java/commons-logging:0
	          dev-java/jakarta-regexp:1.4
	)"
DEPEND="${RDEPEND}
	dev-java/ant-nodeps:0
	test? ( >=dev-java/junit-4.12:4
			dev-java/hamcrest-core )
	dev-java/ant-junit:0
	>=dev-java/ant-ivy-2.2.0:2"

#dev-java/javacc:0 - no longer needed, files are prebuilt

java_prepare() {
	#find -name "*.jar" -type f | xargs rm -v
	sed -i \
		-e '/-Xmax/ d' \
		-e '/property="ivy.available"/s,resource="${ivy.resource}",file="." type="dir",g' \
		-e '/<ivy:retrieve/d' \
		common-build.xml
	mkdir -p {.,queries,benchmark,analyzers/phonetic}/lib
	java-pkg_jar-from --build-only --into lib \
		ant-core ant.jar ant-1.7.1.jar
	java-pkg_jar-from --build-only --into lib \
		ant-junit ant-junit.jar ant-junit-1.7.1.jar
	java-pkg_jar-from --build-only --into lib \
		ant-ivy:2
	java-pkg_jar-from --build-only --into lib \
		junit-4 junit.jar junit-4.10.jar
	java-pkg_jar-from --build-only --into lib \
		hamcrest-core
	# Always needed anyway
	cd "${S}"/test-framework/
	java-pkg_jar-from --build-only --into lib \
		ant-core ant.jar ant-1.7.1.jar
	java-pkg_jar-from --build-only --into lib \
		ant-junit ant-junit.jar ant-junit-1.7.1.jar
	java-pkg_jar-from --build-only --into lib \
		junit-4 junit.jar junit-4.10.jar
	java-pkg_jar-from --build-only --into lib \
		hamcrest-core

	if use contrib ; then
	    cd "${S}"/contrib/
		# queries
	    java-pkg_jar-from --build-only --into queries/lib \
	    	jakarta-regexp:1.4 jakarta-regexp.jar jakarta-regexp-1.4.jar
		# benchmark
	    java-pkg_jar-from --build-only --into benchmark/lib \
	    	commons-compress commons-compress.jar commons-compress-1.1.jar
	    java-pkg_jar-from --build-only --into benchmark/lib \
	    	commons-collections commons-collections.jar commons-collections-3.1.jar
	    java-pkg_jar-from --build-only --into benchmark/lib \
	    	commons-digester commons-digester.jar commons-digester-1.7.jar
	    java-pkg_jar-from --build-only --into benchmark/lib \
	    	commons-logging commons-logging.jar commons-logging-1.0.4.jar
	    java-pkg_jar-from --build-only --into benchmark/lib \
	    	commons-beanutils:1.7 commons-beanutils.jar commons-beanutils-1.7.0.jar
		# analyzers/phonetic
	    java-pkg_jar-from --build-only --into analyzers/phonetic/lib \
	    	commons-codec commons-codec.jar commons-codec-1.6.jar
	fi
}

src_compile() {
	# FIXME: docs do not build if behind a proxy, -autoproxy does not work
	einfo "Building main"
	ANT_TASKS="none" eant -Dversion=${PV} \
		-Dfailonjavadocwarning=false \
		jar-core $(use_doc javadocs-core )
	if use contrib ; then
	  einfo "Building contrib"
	 ANT_TASKS="none" eant -Dversion=${PV} \
		-Dfailonjavadocwarning=false \
		build-contrib $(use_doc javadocs-all )
	fi
}

src_test() {
	# FIXME: test does not get run, even when selected
	java-ant_rewrite-classpath common-build.xml
	EANT_GENTOO_CLASSPATH="junit ant-core ant-junit" ANT_TASKS="ant-junit" eant test-core
}

src_install() {
	dodoc CHANGES.txt README.txt NOTICE.txt CHANGES.txt \
	    JRE_VERSION_MIGRATION.txt|| die
	java-pkg_newjar build/core/${PN}-core-${PV}.jar ${PN}-core.jar
	if use contrib; then
		for i in `find  build/contrib -name \*-${PV}.jar`
		do
		    j=${i##*/}
			java-pkg_newjar $i ${j%%-${PV}.jar}.jar
		done
	fi
	if use doc; then
		dohtml -r docs/* || die
		java-pkg_dohtml -r build/docs/api
	fi
	if use source; then
	     java-pkg_dosrc core/src/java/org || die
	  	 if use contrib; then
	    	java-pkg_dosrc  contrib  || die
	  	 fi
	fi
}