blob: 46cd7d62372e2871ac8e283dd4f102f76d94571a [file] [log] [blame]
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
JAVA_PKG_IUSE="source doc"
inherit eutils java-pkg-2 java-ant-2
DESCRIPTION="CUP Parser Generator for Java"
HOMEPAGE="http://www2.cs.tum.edu/projects/cup/"
# We cannot put the actual SRC_URI because it causes conflicts with Gentoo mirroring system
# No better URI is available, waiting until it hits actual Gentoo mirrors
MY_PV=${PV/_beta/-}
MY_PV=${MY_PV##0.}
SRC_URI="http://www2.cs.tum.edu/projects/cup/releases/java-cup-src-${MY_PV}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="userland_BSD system-jflex"
# find for bug #214664
DEPEND=">=virtual/jdk-1.5
system-jflex? ( dev-java/jflex:0 )
!userland_BSD? ( >=sys-apps/findutils-4.4 )
>=dev-java/ant-core-1.7.0:0"
RDEPEND=">=virtual/jre-1.5"
S="${WORKDIR}"
src_prepare() {
epatch "${FILESDIR}"/${P}-build-xml.patch
epatch "${FILESDIR}"/${P}-build-xml-svn.patch
find . -name '*.class' -delete || die
if use system-jflex; then # break the circular dependency
rm bin/JFlex.jar || die
java-pkg_jar-from --build-only jflex JFlex.jar bin/JFlex.jar
fi
java-ant_rewrite-classpath
}
src_compile() {
local classpath="$(java-pkg_getjars --build-only ant-core)"
eant -Dgentoo.classpath="${classpath}"
rm bin/java-cup-11.jar || die
cp dist/java-cup-11b.jar bin/java-cup-11.jar || die
eant clean
einfo "Recompiling with newly generated javacup"
eant -Dgentoo.classpath="${classpath}"
use doc && javadoc -sourcepath src/ java_cup -d javadoc
}
src_install() {
java-pkg_newjar dist/java-cup-11b.jar
java-pkg_newjar dist/java-cup-11b-runtime.jar ${PN}-runtime.jar
java-pkg_register-ant-task
dodoc changelog.txt || die
dohtml manual.html || die
use source && java-pkg_dosrc java/*
use doc && java-pkg_dojavadoc javadoc
}