summaryrefslogtreecommitdiff
blob: b78e8297326f424915f5aeeb9a68e6810ca9388d (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
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-java/fop/fop-2.0.ebuild,v 1.3 2015/06/27 13:04:00 monsieurp Exp $

# TODO: if 'doc' use flag is used then should build also extra docs ('docs' ant target), currently it cannot
#       be built as it needs forrest which we do not have
# TODO: package and use optional dependency jeuclid

EAPI="5"

JAVA_PKG_IUSE="doc examples source test"
WANT_ANT_TASKS="ant-trax"

inherit eutils java-pkg-2 java-ant-2

DESCRIPTION="Formatting Objects Processor is a print formatter driven by XSL"
HOMEPAGE="http://xmlgraphics.apache.org/fop/"
SRC_URI="mirror://apache/xmlgraphics/${PN}/source/${P}-src.zip"

KEYWORDS="~amd64 ~x86 ~amd64-linux ~ppc-macos ~sparc-solaris ~x86-linux ~x86-macos ~x86-solaris"
IUSE="hyphenation jai"
LICENSE="Apache-2.0"
SLOT="2"

# Doesn't work with java.awt.headless, requires Mockito.
RESTRICT="test"

CDEPEND="
	dev-java/batik:1.8
	dev-java/ant-core:0
	dev-java/fontbox:1.7
	dev-java/commons-io:1
	dev-java/commons-logging:0
	java-virtuals/servlet-api:3.0
	dev-java/avalon-framework:4.2
	dev-java/xmlgraphics-commons:2
	dev-java/xml-commons-external:1.3
	jai? ( dev-java/sun-jai-bin:0 )"

RDEPEND=">=virtual/jre-1.6
	${CDEPEND}"

DEPEND=">=virtual/jdk-1.6
	dev-java/qdox:1.12
	hyphenation? ( dev-java/offo-hyphenation:0 )
	app-arch/unzip
	${CDEPEND}
	test? (
		dev-java/ant-junit:0
		dev-java/junit:4
		dev-java/xmlunit:1
		dev-java/mockito:0
	)"

java_prepare() {
	find "${S}" -name '*.jar' -print -delete || die
}

JAVA_ANT_REWRITE_CLASSPATH="true"
EANT_DOC_TARGET="javadocs"
EANT_BUILD_TARGET="package"
EANT_GENTOO_CLASSPATH="
	ant-core
	batik-1.8
	fontbox-1.7
	commons-io-1
	commons-logging
	servlet-api-3.0
	avalon-framework-4.2
	xmlgraphics-commons-2
	xml-commons-external-1.3
"

EANT_TEST_GENTOO_CLASSPATH="${EANT_GENTOO_CLASSPATH}
	mockito
	junit-4
	xmlunit-1
"

EANT_EXTRA_ARGS="-Djce.present=true"
EANT_DOC_TARGET="javadocs"
EANT_TEST_TARGET="junit"
#EANT_TEST_EXTRA_ARGS="-Djunit.present=true -Dxmlunit.present=true"

src_compile() {
	EANT_GENTOO_CLASSPATH_EXTRA+="$(java-pkg_getjars --build-only qdox-1.12)"

	if use jai; then
		EANT_EXTRA_ARGS+=" -Djai.present=true"
		EANT_GENTOO_CLASSPATH+=" sun-jai-bin"
	fi

	if use hyphenation; then
		EANT_EXTRA_ARGS+=" -Dhyphenation.present=true -Duser.hyph.dir=${EPREFIX}/usr/share/offo-hyphenation/hyph/"
	fi

	java-pkg-2_src_compile
}

# Tests are broken even in 2.0
src_test() {
	EANT_ANT_TASKS="ant-junit" \
		java-pkg-2_src_test
}

src_install() {
	java-pkg_dojar build/fop.jar build/fop-sandbox.jar

	if use hyphenation; then
		java-pkg_dojar build/fop-hyph.jar
		insinto /usr/share/${P}/
		doins -r hyph
	fi

	# Doesn't support everything upstream launcher does...
	java-pkg_dolauncher ${P} --main org.apache.fop.cli.Main

	dodoc NOTICE README

	if use doc; then
		java-pkg_dojavadoc \
			build/javadocs
	fi

	if use examples; then
		java-pkg_doexamples \
			examples/* conf
	fi

	if use source; then
		java-pkg_dosrc \
			src/java/org \
			src/sandbox/org
	fi
}