blob: 5170127f05116498bc2d507d60135215721d7ca7 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<project name="keystoreNative" default="install" basedir=".">
<property name="src" location="src"/> <!-- java source folder -->
<property name="bin" location="bin"/> <!-- intermediate build products -->
<property name="jars" location="jars"/> <!-- jar files -->
<property name="lib" location="lib"/> <!-- local libraries linked against -->
<property name="dist" location="dist"/> <!-- build product location -->
<property name="resources" location="resources"/> <!-- location of general java resources -->
<property name="compile.debug" value="true"/>
<property name="native.target" value="JNILib"/>
<property name="native.project" value="keystoreNative.xcodeproj"/>
<property name="native.library" value="libkeystoreNative.jnilib"/>
<property name="env.CONFIGURATION" value="Release"/>
<fileset id="lib.jars" dir="${lib}">
<include name="**/*.jar"/>
</fileset>
<path id="lib.path">
<fileset refid="lib.jars"/>
</path>
<target name="init" description="Initialize environment">
<!-- Get properties from environment -->
<property environment="env"/>
<property name="curr_build_dir" location="build/${env.CONFIGURATION}"/>
<property name="curr_header_dir" location="build/${env.CONFIGURATION}/Headers"/>
<!-- if you tweak these names, you'll have to change the JNILib target and the Xcode launcher arguments -->
<property name="jarfilename" value="keystoreNative"/>
<property name="jarfile" location="${jars}/${jarfilename}.jar"/>
<mkdir dir="${curr_build_dir}"/>
<mkdir dir="${curr_header_dir}"/>
<mkdir dir="${lib}"/>
<mkdir dir="${bin}"/>
<mkdir dir="${jars}"/>
<mkdir dir="${dist}"/>
</target>
<target name="compile" depends="init" description="Compile JNI Wrapper code">
<javac srcdir="${src}" destdir="${bin}"
source="1.3" target="1.2"
includeAntRuntime="no"
classpathref="lib.path" debug="${compile.debug}">
</javac>
</target>
<target name="jar" depends="compile" description="Build jar">
<jar jarfile="${jarfile}" basedir="${bin}" manifest="${resources}/Manifest">
<!-- Merge library jars into final jar file -->
<zipgroupfileset refid="lib.jars"/>
</jar>
<!-- generate the header files -->
<exec executable="/usr/bin/javah">
<arg line="-classpath '${jarfile}' -force -d '${curr_header_dir}' keystoreNative"/>
</exec>
</target>
<!-- Note: this target requires that Xcode Tools be installed -->
<target name="nativelib" depends="jar">
<exec executable="/usr/bin/xcodebuild">
<arg line="-project ${native.project}"/>
<arg line="-target ${native.target}"/>
</exec>
<copy file="${curr_build_dir}/${native.library}" toDir="${bin}" failonerror="true" verbose="true"/>
</target>
<!-- install target. Copy the built objects to the 'dist' directory. -->
<target name="install" description="Install jar" depends="nativelib">
<copy file="${jarfile}" toDir="${dist}" failonerror="true" verbose="true"/>
<copy toDir="${dist}" failonerror="true" verbose="true">
<fileset dir="${bin}">
<include name="**/*.jnilib"/>
</fileset>
</copy>
</target>
<target name="run" depends="install">
<java classpath="${jarfile}" classname="${ant.project.name}" fork="true">
<sysproperty key="java.library.path" value="${dist}"/>
</java>
</target>
<target name="clean" depends="init" description="Remove build and dist directories">
<delete dir="${bin}"/>
<delete dir="${dist}"/>
<delete dir="${jars}"/>
<delete dir="${curr_build_dir}"/>
</target>
</project>