# Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # : $ EAPI=4 WANT_ANT_TASKS="ant-nodeps ant-contrib" inherit subversion eutils java-pkg-2 java-ant-2 nsplugins DESCRIPTION="Adobe's open source rich internet application framework." HOMEPAGE="http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK" SRC_URI="doc? ( http://www.adobe.com/go/learn_flex45_alldocumentation_en -> Flex_45_docs.zip )" ESVN_REPO_URI="http://opensource.adobe.com/svn/opensource/flex/sdk/tags/trunk-${PV}" LICENSE="Mozilla" SLOT="4.5" KEYWORDS="~x86 ~amd64" IUSE="doc samples source +adobe_xerces +adobe_fontengine" RESTRICT="strip mirror" CDEPEND=" dev-java/bcel dev-java/commons-collections dev-java/commons-discovery dev-java/commons-logging dev-java/javacc dev-java/jflex dev-java/xalan !adobe_xerces? ( >=dev-java/xerces-2 ) " DEPEND=">=virtual/jdk-1.5 ${CDEPEND}" RDEPEND=">=virtual/jre-1.4 ${CDEPEND}" EANT_DOC_TARGET= EANT_EXTRA_ARGS=" -Drelease=\"Flex ${SLOT}\" -Drelease.version=${PV%.*} -Dbuild.number=${PV##*.}" src_unpack() { subversion_src_unpack cd "${S}/lib" ADOBE_JARS="license.jar" # custom batik and velocity are open in trunk (4.0) but not in 3.0.* ADOBE_JARS="$(echo batik*.jar) ${ADOBE_JARS} " ADOBE_JARS="$(velocity-*.jar) ${ADOBE_JARS}" # adobe hasn't open sourced their changes to xerces? if use adobe_xerces; then ADOBE_JARS="xercesImpl*.jar xercesPatch.jar xmlParserAPIs.jar ${ADOBE_JARS}" else ewarn Line number support for XML tag attributes is not available without ewarn USE=adobe_xerces. It is possible that compile-time MXML error ewarn reporting and component debugging may not give correct line numbers. fi # AFEFontManager is not open source but optional if use adobe_fontengine; then ADOBE_JARS=" flex-fontkit.jar afe.jar aglj40.jar rideau.jar ${ADOBE_JARS}" fi for jar in ${ADOBE_JARS}; do mv "$jar" .. || die "failed to backup adobe's $jar" done rm * || die java-pkg_jarfrom commons-collections java-pkg_jarfrom commons-discovery java-pkg_jarfrom commons-logging java-pkg_jarfrom javacc java-pkg_jarfrom xalan if ! use adobe_xerces; then java-pkg_jarfrom xerces-2 fi for jar in ${ADOBE_JARS}; do mv "../$jar" . || die "failed to restore adobe's $jar" done # antTasks has no classpath set java-ant_rewrite-classpath "${S}/modules/antTasks/build.xml" # trimmed down ASC source is bundled from tamarin cd "${S}/modules/asc/build/java/lib" rm * || die java-pkg_jarfrom bcel # linux wrapper scripts for abcdump, ash, swfdump are not provided for unprovided in ash abcdump swfdump; do sed s.lib/asc.lib/${unprovided}. "${S}/bin/asc" > "${S}/bin/${unprovided}" chmod 755 "${S}/bin/${unprovided}" done if use doc; then cd "${WORKDIR}" unpack ${A} fi } src_compile() { einfo Building slimmed-down ASC EANT_BUILD_XML="${S}/modules/asc/build/java/build.xml" java-pkg-2_src_compile || die "failed to build actionscript compiler" cp "${S}/modules/asc/lib/"*.jar "${S}/lib/" || die "failed to move asc jars" einfo Building antTasks EANT_GENTOO_CLASSPATH="ant-core" EANT_BUILD_XML="${S}/modules/antTasks/build.xml" java-pkg-2_src_compile || die "failed to build ant tasks" einfo Building Flex SDK EANT_BUILD_XML="${S}/build.xml" EANT_BUILD_TARGET="main" java-pkg-2_src_compile || die "failed to build flex sdk" } src_install() { dodoc README.txt dohtml collateral/en_US/* dodoc modules/compiler/flex_compiler_api_guide.pdf rm bin/*.exe bin/*.bat if ! use source; then rm -rf frameworks/projects fi rm -rf frameworks/projects/*/asdoc rm -rf frameworks/tests INSTALL="flex-sdk-description.xml bin lib frameworks asdoc" if use samples; then INSTALL="${INSTALL} samples" fi FLEX_HOME=/usr/lib/${PN}-${SLOT} dodir ${FLEX_HOME} cp -pPr ${INSTALL} "${D}/${FLEX_HOME}/" || die "failed to install sdk" envfile=50${PN} #echo "FLEX_HOME=\"${FLEX_HOME}\"" >> ${envfile} echo "PATH=\"${FLEX_HOME}/bin\"" >> ${envfile} doenvd ${envfile} if use doc; then docinto html/langref unzip "${WORKDIR}/Flex_45_docs/AS3_Platform_Reference.zip" dohtml -r "${WORKDIR}/Flex_45_docs/langref/" rm -rf "${WORKDIR}/Flex_45_docs/langref" docinto "" dodoc "${WORKDIR}/Flex_45_docs/"* fi } pkg_postinst() { einfo "Please source /etc/profile" }