diff options
Diffstat (limited to 'media-sound/tuxguitar/tuxguitar-1.0.ebuild')
-rw-r--r-- | media-sound/tuxguitar/tuxguitar-1.0.ebuild | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/media-sound/tuxguitar/tuxguitar-1.0.ebuild b/media-sound/tuxguitar/tuxguitar-1.0.ebuild new file mode 100644 index 00000000..66225482 --- /dev/null +++ b/media-sound/tuxguitar/tuxguitar-1.0.ebuild @@ -0,0 +1,136 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=1 +JAVA_PKG_IUSE="source" + +inherit eutils java-pkg-2 java-ant-2 toolchain-funcs flag-o-matic fdo-mime gnome2-utils + +MY_P="${PN}-src-${PV}" +DESCRIPTION="TuxGuitar is a multitrack guitar tablature editor and player written in Java-SWT" +HOMEPAGE="http://www.tuxguitar.com.ar/" +SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz" +LICENSE="LGPL-2.1" +SLOT="0" +IUSE="alsa fluidsynth oss pdf" + +# Test notes +# Couldn't test ftp plugin. +# Couldn't play midi files exported by midi plugin. +# Couldn't get JSA plugin working out of the box with IcedTea. + +KEYWORDS="~amd64" +# FIXME: Are these X dependencies really needed to be here explicitly? +CDEPEND="virtual/libc + || ( ( x11-libs/libXxf86vm + x11-libs/libXext + x11-libs/libX11 + ) virtual/x11 ) + dev-java/swt:3 + alsa? ( media-libs/alsa-lib ) + fluidsynth? ( media-sound/fluidsynth ) + pdf? ( dev-java/itext:0 )" +RDEPEND=">=virtual/jre-1.5 + alsa? ( media-sound/timidity++ ) + oss? ( media-sound/timidity++ ) + ${CDEPEND}" + +DEPEND=">=virtual/jdk-1.5 + ${CDEPEND}" + +S="${WORKDIR}/${MY_P}" + +pkg_setup() { + if ! built_with_use 'dev-java/swt' 'cairo'; then + eerror "You must build dev-java/swt with cairo support" + die "dev-java/swt built without cairo" + fi +} + +src_unpack() { + unpack ${A} + cd "${S}"/TuxGuitar/lib || die + java-pkg_jar-from swt-3 +} + +src_compile() { + if use pdf; then + echo "" >> TuxGuitar-pdf/build.properties || die + echo "path.itext=$(java-pkg_getjar itext iText.jar)" >> TuxGuitar-pdf/build.properties || die "Error adding itext path" + echo "path.swt=$(java-pkg_getjar swt-3 swt.jar)" >> TuxGuitar-pdf/build.properties || die "Error adding swt path" + fi + cd TuxGuitar || die "cd failed" + eant all + for plugin in $(list_plugins); do + plugin_compile $plugin + done +} + +src_install() { + cd TuxGuitar || die "cd failed" + java-pkg_dojar tuxguitar.jar + use source && java-pkg_dosrc src/org + # TODO: Decide if plugin sources should be installed + java-pkg_dolauncher ${PN} \ + --main org.herac.tuxguitar.gui.TGMain \ + --java_args "-Xms128m -Xmx128m" + # Images and Files + insinto /usr/share/${PN}/lib + doins -r share || die "doins failed" + java-pkg_sointo /usr/share/${PN}-${SLOT}/lib/lib + for plugin in $(list_plugins); do + plugin_install $plugin + done + doman "${S}/misc/${PN}.1" || die "doman failed" + insinto /usr/share/mime/packages + doins "${S}/misc/${PN}.xml" + doicon "${S}/misc/${PN}.xpm" || die "doicon failed" + domenu "${S}/misc/${PN}.desktop" || die "domenu failed" + + +} + +plugin_compile() { + cd "${S}"/TuxGuitar-${1} || die + eant all + if [[ -d jni ]]; then + append-flags "-I${JAVA_HOME}/include/ -I${JAVA_HOME}/include/linux" + cd jni || die "\"cd jni\" failed" + CC=$(tc-getCC) emake || die "emake failed" + fi +} + +plugin_install() { + cd "${S}"/TuxGuitar-${1} || die + local TUXGUITAR_INST_PATH=/usr/share/${PN}/lib + local BINARY_NAME=tuxguitar-${1} + insinto ${TUXGUITAR_INST_PATH}/share/plugins + doins ${BINARY_NAME}.jar || die "doins ${BINARY_NAME}.jar failed" + #TuxGuitar has its own classloader. No need to register the plugins. + + if [[ -d jni ]]; then + java-pkg_doso jni/lib${BINARY_NAME}-jni.so + fi +} + +#Return list of plugins to compile/install +list_plugins() { + echo \ + $(usev alsa) ascii browser-ftp compat converter $(usev fluidsynth) gtp \ + jsa lilypond midi musicxml $(usev oss) $(usev pdf) ptb tef tray +} + +pkg_postinst() { + fdo-mime_desktop_database_update + gnome2_icon_cache_update + if use fluidsynth; then + ewarn "Fluidsynth plugin blocks behavior of JSA plugin." + ewarn "Enable only one of them in \"Tools > Plugins\"" + fi +} + +pkg_postrm() { + fdo-mime_desktop_database_update + gnome2_icon_cache_update +} |