# Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI=5 JAVA_PKG_IUSE="doc source" inherit versionator gnome2-utils games java-pkg-2 java-ant-2 DESCRIPTION="D&D character generator" HOMEPAGE="http://pcgen.sourceforge.net/" SRC_URI="https://github.com/pcgen/pcgen-svn/archive/release-${PV}.zip -> pcgen-${PV}.zip" LICENSE="LGPL-2.1 OGL-1.0a" SLOT="0" KEYWORDS="~amd64" S="${WORKDIR}/${PN}-svn-release-${PV}" IUSE="test" COMMON_DEP="dev-java/jdom:1.0 dev-java/commons-lang:2.1 dev-java/commons-logging dev-java/skinlf dev-java/kunststoff:2.0" RDEPEND=">=virtual/jre-1.6 ${COMMON_DEP}" DEPEND=">=virtual/jdk-1.6 app-arch/unzip dev-java/javacc dev-java/emma test? ( dev-java/junit:4 dev-java/xmlunit:1 ) ${COMMON_DEP}" EANT_BUILD_TARGET="build" EANT_DOC_TARGET="" EANT_TEST_TARGET="test" EANT_EXTRA_ARGS="-Dbin.pcgen.sh=pcgen" src_prepare() { # The wrapper is generated by the Ant build script, and 'dirname' only # occurs in that part of it. sed -i "/dirname/ c\cd \"${GAMES_DATADIR}\/${PN}\"" build.xml || die cd "${S}/lib" rm -f javacc.jar javacc.LICENSE.txt jdom.jar jdom.LICENSE.txt || die java-pkg_jar-from --build-only javacc || die java-pkg_jar-from jdom-1.0 || die rm -f apache/commons-lang-2.4.jar || die java-pkg_jar-from --into apache/ commons-lang-2.1 commons-lang.jar \ commons-lang-2.4.jar || die # rm -f apache/commons-io-2.1.jar || die # java-pkg_jar-from --into apache/ commons-io-1 commons-io.jar \ # commons-io-2.1.jar || die rm -f emma/emma{.jar,_ant.jar,.LICENSE.txt} || die java-pkg_jar-from --build-only --into emma/ emma || die # rm -f fop/avalon-framework-cvs-20020806.jar fop/avalon.LICENSE.txt || die # java-pkg_jar-from --into fop/ avalon-framework-4.2 || die # rm -f fop/batik.{jar,LICENSE.txt} || die # java-pkg_jar-from --into fop/ || die rm -f spring/commons-logging-1.1.1.jar || die java-pkg_jar-from --into spring/ commons-logging commons-logging.jar \ commons-logging-1.1.1.jar || die rm -f lnf/skinlf.{jar,{,nanoxml.}LICENSE.txt} || die java-pkg_jar-from --into lnf/ skinlf || die rm -f lnf/kunststoff.{jar,LICENSE.txt} || die java-pkg_jar-from --into lnf/ kunststoff-2.0 kunststoff.jar kunststoff.jar || die rm -f test/junit{-4.1.jar,LICENSE.txt} || die use test && java-pkg_jar-from --build-only --into test/ junit-4 junit.jar \ junit-4.1.jar rm -f test/xmlunit{1.0.jar,-LICENSE.txt} || die use test && java-pkg_jar-from --build-only --into test/ xmlunit-1 xmlunit.jar \ xmlunit1.0.jar } src_test() { mkdir -p code/testsuite/output/ || die ANT_TASKS="ant-junit4" java-pkg-2_src_test || die } src_install() { use doc && mv docs/api . dogamesbin code/bin/${PN} dodir "${GAMES_DATADIR}"/${PN} dosym /usr/share/doc/${PF}/html "${GAMES_DATADIR}"/${PN}/docs dohtml -r docs/* # The release notes aren't included in the tagged revision, apparently ... # dohtml ${PN}-release-notes-$(delete_all_version_separators).html # dosym /usr/share/doc/${PF}/html \ # "${GAMES_DATADIR}"/${PN}/${PN}-release-notes-$(delete_all_version_separators).html insinto "${GAMES_DATADIR}"/${PN} doins -r data system outputsheets logging.properties preview doins code/bin/filepaths.ini # doins -r lib keepdir "${GAMES_DATADIR}"/${PN}/characters newicon -s 128 system/sponsors/pcgen/pcgen_128x128.png ${PN}.png make_desktop_entry ${PN} PCGen prepgamesdirs java-pkg_dojar "${PN}.jar" batch-convert.jar # for dir in plugins plugins/bonusplugins plugins/converterplugins \ # plugins/Encounter plugins/Experience plugins/Initiative \ # plugins/jepplugins plugins/lstplugins plugins/Notes \ # plugins/outputplugins plugins/"Overland Travel" plugins/preplugins \ # plugins/"Random Names" plugins/systemlstplugins; do # java-pkg_jarinto "${JAVA_PKG_SHAREPATH}/lib/${dir}" # java-pkg_dojar "${dir}"/*.jar # done ewarn "While we unbundled *some* of the bundled library JARs, this ebuild" ewarn "doesn't install the remaining ones; the binary ebuild installs all" ewarn "of the bundled libraries, both those in Portage and those not." ewarn "The jars we don't handle at all include:" ewarn "lib/fop/* (fop-0.95 is in Portage; they use fop-0.20.5, with" ewarn " similarly outdated dependencies. If replacing the old is" ewarn " possible, this will require patching build.xml)" ewarn "lib/apache/commons-io-2.1.jar (Portage latest is incompatible 2.0.1)" ewarn "lib/spring/spring-{beans,core}-2.5.6.SEC01.jar" ewarn "lib/jep/jep-2.4.1.jar (provides needed functionality)" ewarn "lib/MRJ141Stubs.jar (link in readme.txt is broken; the contents might" ewarn " indicate it's a subset of dev-java/apple-java-extensions-bin)" ewarn "lib/test/clover.jar (code coverage tool, not open source, shouldn't" ewarn " be installed anyway)" ewarn "" ewarn "We also don't yet install the look-and-feel plugins, as I don't know" ewarn "where those should go." ewarn "" ewarn "We also don't install the plugins, which are largely but not entirely" ewarn "JARs, because I don't know where they should go either." use doc && java-pkg_dojavadoc api use source && java-pkg_dosrc code/src } pkg_preinst() { games_pkg_preinst gnome2_icon_savelist } pkg_postinst() { games_pkg_postinst gnome2_icon_cache_update } pkg_postrm() { gnome2_icon_cache_update }