| # Copyright 1999-2016 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI="5" |
| JAVA_PKG_IUSE="doc source examples test" |
| |
| inherit eutils java-pkg-2 java-ant-2 |
| |
| MY_PN="${PN/jdbc-/}" |
| DESCRIPTION="JDBC Type 2 and 4 drivers for Firebird SQL server" |
| HOMEPAGE="http://jaybirdwiki.firebirdsql.org/" |
| SRC_URI="https://github.com/FirebirdSQL/${MY_PN}/archive/v${PV}.zip -> Jaybird-${PV}-src.zip" |
| LICENSE="LGPL-2" |
| SLOT="0" |
| KEYWORDS="~amd64 ~x86" |
| IUSE="jni" |
| |
| CDEPEND="dev-java/junit:4 |
| dev-java/antlr:3.5 |
| dev-java/log4j:0 |
| dev-java/glassfish-connector-api:0" |
| |
| RDEPEND="${CDEPEND} |
| >=virtual/jre-1.6" |
| |
| DEPEND="${CDEPEND} |
| >=virtual/jdk-1.6 |
| app-arch/unzip |
| jni? ( dev-java/cpptasks ) |
| test? ( dev-java/ant-junit:0 )" |
| |
| S="${WORKDIR}/${MY_PN}-${PV}" |
| |
| java_prepare() { |
| # prevent test/sources/javadoc from being built unless wanted |
| sed -i -e 's|name="jar-test" depends="compile"|name="jar-test" depends="compile" if="tests"|' \ |
| "${S}/build/archive.xml" || die |
| sed -i -e 's|name="compile-examples"|name="compile-examples" if="examples"|' \ |
| -e 's|,set-jdbc-42-test"|,set-jdbc-42-test" if="tests"|' \ |
| "${S}/build/compile.xml" || die |
| |
| # JAVA_ANT_ENCODING doesn't work because it doesn't like entities |
| java-ant_xml-rewrite -f build.xml -c -e javac -a encoding -v ISO-8859-1 |
| |
| cd "${S}/lib/" |
| rm -v *.jar |
| |
| cd "${S}/src/lib/" |
| rm -v *.jar *.zip |
| |
| java-pkg_jar-from --build-only glassfish-connector-api \ |
| glassfish-connector-api.jar connector-api-1.5.jar |
| |
| # the build.xml unpacks this and uses stuff |
| touch empty |
| jar cf mini-j2ee.jar empty |
| } |
| |
| JAVA_ANT_REWRITE_CLASSPATH="true" |
| EANT_GENTOO_CLASSPATH="antlr-3.5,glassfish-connector-api,log4j" |
| EANT_BUILD_TARGET="jars" |
| EANT_DOC_TARGET="javadocs" |
| |
| src_compile() { |
| java-pkg_filter-compiler jikes |
| use jni && ANT_TASKS="cpptasks" |
| |
| # This is nonsense, I know, but it works. |
| if use test; then |
| EANT_GENTOO_CLASSPATH="${EANT_GENTOO_CLASSPATH},junit-4" |
| fi |
| |
| java-pkg-2_src_compile $(use test && echo "-Dtests=true") \ |
| $(use jni && echo "compile-native") |
| } |
| |
| src_install() { |
| cd "${S}/output/lib/" |
| java-pkg_newjar ${MY_PN}-${PV}.jar ${PN}.jar |
| |
| for jar in full; do |
| java-pkg_newjar ${MY_PN}-${jar}-${PV}.jar ${MY_PN}-${jar}.jar || die "java-pkg_newjar ${MY_PN}-${jar}.jar failed" |
| done |
| if use test; then |
| java-pkg_newjar ${MY_PN}-test-${PV}.jar ${MY_PN}-${jar}.jar || die "java-pkg_newjar ${MY_PN}-${jar}.jar failed" |
| fi |
| |
| if use jni; then |
| cd "${S}/output/native" |
| sodest="/usr/lib/" |
| local so_arch |
| if use amd64; then |
| so_arch="x64" |
| elif use x86; then |
| so_arch="x86" |
| fi |
| java-pkg_doso libjaybird22_${so_arch}.so || die \ |
| "java-pkg_doso ${sodest}libjaybird22.so failed" |
| fi |
| |
| cd "${S}" |
| |
| if use examples; then |
| insinto /usr/share/doc/${PF}/ |
| doins -r examples || die "installing examples failed" |
| fi |
| |
| use source && java-pkg_dosrc "${S}"/src/*/org |
| |
| cd "${S}/output" |
| use doc && java-pkg_dohtml -r docs/ |
| dodoc etc/default.mf |
| dohtml etc/*.html |
| } |
| |
| src_test() { |
| # |
| # Warning about timeouts without Firebird installed and running Locally |
| # |
| ewarn "You will experience long timeouts when running junit tests" |
| ewarn "without Firebird installed and running locally. The tests will" |
| ewarn "complete without Firebird, but network timeouts prolong the" |
| ewarn "testing phase considerably." |
| ANT_TASKS="ant-junit" eant all-tests-pure-java |
| } |