# Copyright 1999-2016 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI="5" JAVA_PKG_IUSE="doc" inherit subversion eutils java-pkg-2 java-ant-2 java-pkg-simple MY_PN="SweetHome3D" DESCRIPTION="Sweet Home 3D is a free interior design application." HOMEPAGE="http://sweethome3d.sourceforge.net/" SRC_URI="mirror://sourceforge/${PN}/${MY_PN}-${PV}-src.zip http://dev.gentoo.org/~fordfrog/distfiles/${PN}.png" LICENSE="GPL-3" IUSE="" SLOT="0" KEYWORDS="~amd64 ~x86" # janino is needed by embedded sunflow COMMON_DEPEND=">=dev-java/apple-java-extensions-bin-1.5:0 dev-java/batik:1.7 ~dev-java/freehep-graphics2d-2.4 ~dev-java/freehep-graphicsio-2.4 ~dev-java/freehep-graphicsio-svg-2.4 ~dev-java/freehep-graphicsbase-2.4 dev-java/itext:0 dev-java/java3dsloader:0 dev-java/j3d-core:0 ~dev-java/janino-2.5.15 dev-java/jmf-bin:0 dev-java/jnlp-api:0 dev-java/vecmath:0" DEPEND=">=virtual/jdk-1.5 app-arch/unzip ${COMMON_DEPEND}" RDEPEND=">=virtual/jre-1.5 ${COMMON_DEPEND}" S="${WORKDIR}/${MY_PN}-${PV}-src" # sweethome variables EANT_BUILD_TARGET="build furniture textures help" EANT_DOC_TARGET="javadoc" # sunflow variables JAVA_GENTOO_CLASSPATH="janino" JAVA_SRC_DIR="${WORKDIR}/sunflow/src" ESVN_PROJECT=sunflow ESVN_REPO_URI="http://svn.code.sf.net/p/sunflow/code/trunk@396" EMBEDDED_SUNFLOW="sunflow-0.07.3i-src-diff" src_unpack() { subversion_fetch ${ESVN_REPO_URI} ../sunflow unpack ${MY_PN}-${PV}-src.zip cd "${S}" unpack ./${EMBEDDED_SUNFLOW}.zip } src_prepare() { # use embedded sunflow because it's patched comparing to last subversion, the embedded sources are not complete # so let's start from the original and autogenerate a patch diff -ur "${WORKDIR}"/sunflow/src "${S}"/${EMBEDDED_SUNFLOW}/src > "${T}"/sunflow-sweethome3d.patch sed -ie "s@${WORKDIR}/@@g" "${T}"/sunflow-sweethome3d.patch rm -rf ./${EMBEDDED_SUNFLOW}* # sunflow part einfo "Preparing embedded sunflow..." pushd "${WORKDIR}"/sunflow >/dev/null || die epatch "${T}"/sunflow-sweethome3d.patch java-pkg_jar-from janino janino.jar popd >/dev/null || die # sweethome3d part einfo "Preparing SweetHome3D..." epatch "${FILESDIR}"/${PN}-4.3-docs.patch epatch "${FILESDIR}"/${PN}-5.4-nomacosx.patch einfo "Removing bundled jars..." cd "${S}" find -name "*.jar" -type f | xargs rm -v epatch "${FILESDIR}"/${PN}-5.4-util.patch pushd "${S}"/lib >/dev/null || die java-pkg_jar-from batik-1.7 batik-util.jar java-pkg_jar-from batik-1.7 batik-parser.jar java-pkg_jar-from batik-1.7 batik-ext.jar java-pkg_jar-from freehep-graphics2d java-pkg_jar-from freehep-graphicsio java-pkg_jar-from freehep-graphicsio-svg java-pkg_jar-from freehep-graphicsbase java-pkg_jar-from itext iText.jar java-pkg_jar-from j3d-core java-pkg_jar-from java3dsloader java-pkg_jar-from jmf-bin java-pkg_jar-from jnlp-api java-pkg_jar-from vecmath popd >/dev/null || die pushd "${S}"/libtest >/dev/null || die java-pkg_jar-from apple-java-extensions-bin popd >/dev/null || die } src_compile() { # to prevent QA warning, renaming build.xml for a while mv build.xml build.xml.bak || die # compile and link sunflow einfo "Compiling embedded sunflow..." java-pkg-simple_src_compile mv "${S}"/${PN}.jar "${S}"/lib/sunflow.jar || die # rename build.xml back mv build.xml.bak build.xml || die einfo "Compiling SweetHome3D..." java-pkg-2_src_compile } src_install() { java-pkg_dojar build/*.jar use doc && java-pkg_dojavadoc install/javadoc/SweetHome3D-${PV}-javadoc # create SweetHome3D wrapper script # OffScreenSupport is disabled to avoid crashes on some systems, see SweetHome3D FAQ java-pkg_dolauncher ${MY_PN} --main com.eteks.sweethome3d.SweetHome3D \ --java_args "-Djava.library.path=/usr/$(get_libdir)/j3d-core -Xmx256m" \ --java_args "-Dcom.eteks.sweethome3d.j3d.checkOffScreenSupport=false" doicon "${DISTDIR}"/${PN}.png || die newicon --size 32x32 "${S}"/deploy/SweetHome3DIcon32x32.png ${PN}.png || die newicon --size 48x48 "${S}"/deploy/SweetHome3DIcon48x48.png ${PN}.png || die doicon --size 128x128 "${DISTDIR}"/${PN}.png || die make_desktop_entry SweetHome3D "Sweet Home 3D" ${PN} Graphics }