| # Copyright 1999-2016 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI="5" |
| JAVA_PKG_IUSE="doc source test" |
| |
| inherit eutils java-pkg-2 java-ant-2 versionator |
| |
| DESCRIPTION="An optimized Java interface to libffi" |
| HOMEPAGE="https://github.com/jnr" |
| SRC_URI="https://github.com/jnr/jffi/tarball/${PV} -> ${P}.tar.gz" |
| |
| LICENSE="|| ( Apache-2.0 LGPL-3 )" |
| SLOT="1.0" |
| KEYWORDS="amd64 ~ppc64 x86" |
| IUSE="" |
| |
| CDEPEND=" |
| virtual/libffi" |
| |
| RDEPEND=" |
| ${CDEPEND} |
| >=virtual/jre-1.6" |
| |
| DEPEND=" |
| ${CDEPEND} |
| >=virtual/jdk-1.6 |
| virtual/pkgconfig |
| test? ( |
| dev-java/ant-junit:0 |
| dev-java/junit:4 |
| )" |
| |
| PATCHES=( |
| "${FILESDIR}"/${P}_no-werror.patch |
| ) |
| |
| src_unpack() { |
| unpack ${A} |
| mv jnr-jffi-* "${P}" || die |
| } |
| |
| java_prepare() { |
| java-pkg_clean |
| |
| cp "${FILESDIR}"/${PN}_maven-build.xml build.xml || die |
| |
| epatch "${PATCHES[@]}" |
| |
| sed -i -e 's/-Werror //' libtest/GNUmakefile || die |
| |
| # Fix build with GCC 4.7 #421501 |
| sed -i -e "s|-mimpure-text||g" jni/GNUmakefile libtest/GNUmakefile || die |
| } |
| |
| JAVA_ANT_REWRITE_CLASSPATH="yes" |
| EANT_EXTRA_ARGS="-Dmaven.build.finalName=${PN}" |
| |
| src_compile() { |
| # generate Version.java |
| cat <<-EOF > src/main/java/com/kenai/jffi/Version.java |
| package com.kenai.jffi; |
| public final class Version { |
| private Version() {} |
| public static final int MAJOR = $(get_version_component_range 1); |
| public static final int MINOR = $(get_version_component_range 2); |
| public static final int MICRO = $(get_version_component_range 3); |
| } |
| EOF |
| |
| java-pkg-2_src_compile |
| |
| # generate headers |
| mkdir -p build/jni || die |
| javah -d build/jni -classpath target/classes \ |
| com.kenai.jffi.Foreign \ |
| com.kenai.jffi.ObjectBuffer \ |
| com.kenai.jffi.Version \ |
| || die |
| |
| #build native library. |
| local args=( |
| SRC_DIR=jni |
| JNI_DIR=jni |
| BUILD_DIR=build/jni |
| VERSION=$(get_version_component_range 1-2) |
| USE_SYSTEM_LIBFFI=1 |
| -f jni/GNUmakefile |
| ) |
| emake "${args[@]}" |
| } |
| |
| EANT_TEST_GENTOO_CLASSPATH="junit-4" |
| src_test() { |
| # build native test library |
| emake BUILD_DIR=build -f libtest/GNUmakefile |
| |
| _JAVA_OPTIONS="-Djffi.boot.library.path=build/jni" \ |
| java-pkg-2_src_test |
| } |
| |
| src_install() { |
| java-pkg_doso build/jni/lib${PN}-$(get_version_component_range 1-2).so |
| |
| # must by after _doso to have JAVA_PKG_LIBDEST set |
| cat <<-EOF > boot.properties |
| jffi.boot.library.path = ${JAVA_PKG_LIBDEST} |
| EOF |
| jar -uf target/${PN}.jar boot.properties || die |
| |
| java-pkg_dojar target/${PN}.jar |
| |
| use doc && java-pkg_dojavadoc target/site/apidocs |
| use source && java-pkg_dosrc src/main/java/* |
| } |