summaryrefslogtreecommitdiff
blob: 8185a2c3e4e61726326f9def348ac297ae8d370d (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
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/scala/scala-2.6.0.ebuild,v 1.1 2007/12/17 17:48:13 caleb Exp $

JAVA_PKG_IUSE="doc examples source"
WANT_ANT_TASKS="ant-nodeps"
inherit check-reqs java-pkg-2 java-ant-2 versionator

MY_P="${P}-final"

DESCRIPTION="The Scala Programming Language"
HOMEPAGE="http://www.scala-lang.org/"
SRC_URI="http://www.scala-lang.org/downloads/distrib/files/${MY_P}-sources.tgz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
DEPEND=">=virtual/jdk-1.5
	dev-java/ant-contrib"
RDEPEND=">=virtual/jre-1.5"

S="${WORKDIR}/${MY_P}"

pkg_setup() {
	java-pkg-2_pkg_setup

	debug-print "Checking for sufficient physical RAM"

	if use amd64; then
		CHECKREQS_MEMORY="1024"
	else
		CHECKREQS_MEMORY="512"
	fi
	check_reqs
}

src_unpack() {
	unpack ${A}
	cd "${S}"

	# remove check for ant-nodeps.jar in ant-core/lib; make docs opt-in;
	# don't increase version; don't create dist archives
	epatch "${FILESDIR}/${P}-build.xml.patch"

	cd lib || die
	# other jars are needed for bootstrap
	rm -v ant-contrib.jar || die
	java-pkg_jar-from --build-only ant-contrib
}

src_compile() {
	if use amd64; then
		export ANT_OPTS="-Xmx1024M -Xms1024M"
	else
		export ANT_OPTS="-Xmx512M -Xms512M -Xss1024k"
	fi
	local target
	if [[ "$(get_version_component_range 3)"  == "0" ]];
	then
		target="minor"
	else
		target="patch"
	fi
	eant dist.${target} $(use_doc -Ddo.docs=true)
}

src_test() {
	bash ${S}/test/scalatest || die "Some tests aren't passed"
}

scala_launcher() {
	local SCALADIR="/usr/share/${PN}"
	local bcp="${SCALADIR}/lib/scala-library.jar"
	java-pkg_dolauncher "${1}" --main "${2}" ${3} \
		--java_args "-Xmx256M -Xms16M -Xbootclasspath/a:\\\"${bcp}\\\" -Dscala.home=\\\"${SCALADIR}\\\" -Denv.classpath=\\\"\${CLASSPATH}\\\""
}

src_install() {
	cd dists/${MY_P} || die
	local SCALADIR="/usr/share/${PN}/"

	# sources are .scala so no use for java-pkg_dosrc
	if use source; then
		dodir "${SCALADIR}/src"
		insinto "${SCALADIR}/src"
		doins lib/*-src.jar
	fi

	rm lib/*-src.jar
	java-pkg_dojar lib/*.jar

	doman man/man1/*.1 || die
	local docdir="doc/${PN}"
	dodoc "${docdir}"/{LICENSE,README} ../../docs/TODO || die
	if use doc; then
		java-pkg_dojavadoc "${docdir}/api"
		dohtml -r "${docdir}/tools" || die
	fi
	use examples && java-pkg_doexamples "${docdir}/examples"

	scala_launcher fsc scala.tools.nsc.CompileClient
	scala_launcher scala scala.tools.nsc.MainGenericRunner
	scala_launcher scalac scala.tools.nsc.Main
	scala_launcher scaladoc scala.tools.nsc.Main "--pkg_args -doc"
}