blob: 3ddfb3b1161e8f29bab88ddf293b3f710aac4911 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="jack" default="all">
<target name="all" depends="dexcomparator-lib,
jack,
jack-api,
jack-api-src,
jack-annotations-lib,
jack-launcher,
jackunittests,
jack-tests,
dx-lib,
sched-lib,
schedtests-lib"/>
<target name="clean" depends="jack-clean,
jack-api-lib-clean,
jack-api-src-clean,
jack-launcher-clean,
jack-server-lib-clean,
jack-annotations-lib-clean,
jack-intermediate-clean,
jackunittests-lib-clean,
jackunittests-clean,
jack-tests-clean,
antlr-clean,
args4j-lib-clean,
dx-lib-clean,
ecj-clean,
simple-lib-clean,
freemarker-lib-clean,
guava-lib-clean,
jsr305-lib-clean,
maths-lib-clean,
sched-lib-clean,
sched-build-lib-clean,
sched-build-clean,
schedtests-lib-clean,
watchmaker-lib-clean,
antlr-rt-lib-clean,
allocation-lib-clean,
junit4-lib-clean,
junit4-jack-lib-clean,
junit4-clean,
hamcrest-core-lib-clean,
dexcomparator-clean,
dex-lib-clean,
ddm-lib-clean,
dx-ref-lib-clean,
core-stubs-mini-clean,
jack-default-lib-clean,
dist-clean" />
<dirname property="jack-project.dir" file="${ant.file.jack}"/>
<property name="jack.dir" value="${jack-project.dir}/jack" />
<property name="jack-api.dir" value="${jack-project.dir}/jack-api" />
<property name="jack-launcher.dir" value="${jack-project.dir}/jack-launcher" />
<property name="jack-server.dir" value="${jack-project.dir}/jack-server" />
<property name="jack-tests.dir" value="${jack-project.dir}/jack-tests" />
<property name="antlr.dir" value="${jack-project.dir}/antlr"/>
<property name="args4j.dir" value="${jack-project.dir}/args4j"/>
<property name="ddm-lib.dir" value="${jack-project.dir}/ddmlib"/>
<property name="dx.dir" value="${jack-project.dir}/dx"/>
<property name="ecj.dir" value="${jack-project.dir}/ecj"/>
<property name="simple.dir" value="${jack-project.dir}/simple"/>
<property name="freemarker.dir" value="${jack-project.dir}/freemarker"/>
<property name="guava.dir" value="${jack-project.dir}/guava"/>
<property name="jsr305.dir" value="${jack-project.dir}/jsr305"/>
<property name="maths.dir" value="${jack-project.dir}/maths"/>
<property name="sched.dir" value="${jack-project.dir}/sched"/>
<property name="watchmaker.dir" value="${jack-project.dir}/watchmaker"/>
<property name="antlr-rt.dir" value="${jack-project.dir}/antlr-runtime"/>
<property name="allocation.dir" value="${jack-project.dir}/java-allocation-instrumenter"/>
<property name="junit4.dir" value="${jack-project.dir}/junit4"/>
<property name="hamcrest-core.dir" value="${jack-project.dir}/hamcrest-core"/>
<property name="dexcomparator.dir" value="${jack-project.dir}/dexcomparator"/>
<property name="dexlib.dir" value="${jack-project.dir}/dexlib"/>
<property name="tools.dir" value="${jack-project.dir}/tools"/>
<property name="dx-ref.dir" value="${jack-project.dir}/dx-ref"/>
<property name="core-stubs-mini.dir" value="${jack-project.dir}/core-stubs-mini"/>
<!-- ******************* -->
<!-- Distributed files -->
<!-- ******************* -->
<property name="jack-top-dist.dir" value="${jack-project.dir}/dist" />
<target name="dist-clean">
<delete dir="${jack-top-dist.dir}"/>
</target>
<target name="dist-check">
<fail message="dist.sha is undefined" unless="dist.sha" />
<fail message="dist.build-id is undefined" unless="dist.build-id" />
</target>
<target name="dist"
description="package a Jack distribution" depends="
dist-check,
jack,
jack-api,
jack-api-src,
jack-annotations-lib,
jack-launcher">
<mkdir dir="${jack-top-dist.dir}"/>
<copy todir="${jack-top-dist.dir}" flatten="true">
<filelist dir="/" >
<file name="${jack.dist.dir}/${jack.execname}" />
<file name="${jack-api.dist.dir}/${jack-api.name}" />
<file name="${jack-api.dist.dir}/${jack-api-src.name}" />
<file name="${jack.dir}/etc/jack" />
<file name="${jack.dir}/etc/jack-admin" />
<file name="${jack-launcher.dist.dir}/${jack-launcher.name}" />
<file name="${jack.dist.dir}/${jack-annotations.libname}" />
</filelist>
</copy>
<mkdir dir="${jack-top-dist.dir}/tmp"/>
<property file="${jack-project.dir}/version.properties"/>
<copy file="${jack-project.dir}/version.properties" tofile="${jack-top-dist.dir}/tmp/version.properties"/>
<propertyfile file="${jack-top-dist.dir}/tmp/version.properties">
<entry key="version.sha" value="${dist.sha}"/>
<entry key="version.buildid" value="${dist.build-id}"/>
</propertyfile>
<copy file="${jack-top-dist.dir}/tmp/version.properties" tofile="${jack-top-dist.dir}/tmp/jack-version.properties"/>
<jar destfile="${jack-top-dist.dir}/${jack.execname}" update="true"
basedir="${jack-top-dist.dir}/tmp"
includes="jack-version.properties"/>
<copy file="${jack-top-dist.dir}/tmp/version.properties" tofile="${jack-top-dist.dir}/tmp/jack-api-version.properties"/>
<jar destfile="${jack-top-dist.dir}/${jack-api.name}" update="true"
basedir="${jack-top-dist.dir}/tmp"
includes="jack-api-version.properties"/>
<copy file="${jack-top-dist.dir}/tmp/version.properties" tofile="${jack-top-dist.dir}/tmp/jack-launcher-version.properties"/>
<jar destfile="${jack-top-dist.dir}/${jack-launcher.name}" update="true"
basedir="${jack-top-dist.dir}/tmp"
includes="jack-launcher-version.properties"/>
<copy file="${jack-top-dist.dir}/tmp/version.properties" tofile="${jack-top-dist.dir}/tmp/jack-annotations-version.properties"/>
<jar destfile="${jack-top-dist.dir}/${jack-annotations.libname}" update="true"
basedir="${jack-top-dist.dir}/tmp"
includes="jack-annotations-version.properties"/>
<replace file="${jack-top-dist.dir}/jack"
token="%%VERSION%%"
value="${version}"
encoding="UTF-8"/>
<replace file="${jack-top-dist.dir}/jack-admin"
token="%%VERSION%%"
value="${version}"
encoding="UTF-8"/>
<delete dir="${jack-top-dist.dir}/tmp"/>
</target>
<!-- ******************* -->
<!-- Jack-lib -->
<!-- ******************* -->
<property name="jack.build.dir" value="${jack.dir}/build/jack-lib" />
<property name="jack.libs.dir" value="${jack.dir}/libs" />
<property name="jack.prebuilts.dir" value="${jack.dir}/prebuilts" />
<property name="jack.build.outdir" value="${jack.build.dir}/classes" />
<property name="jack.tools.dir" value="${jack.dir}/tools" />
<property name="jack.dist.dir" value="${jack.dir}/dist" />
<property name="jack.libname" value="jack-lib.jar" />
<target name="jack-lib-clean">
<delete dir="${jack.build.dir}"/>
<delete file="${jack.dist.dir}/${jack.libname}"/>
<delete dir="${jack.libs.dir}"/>
<delete dir="${jack.tools.dir}"/>
</target>
<target name="jack-copy-libs" depends="ecj,guava-lib,dx-lib,args4j-lib,antlr-rt-lib,jsr305-lib,
junit4,dex-lib,dx-ref-lib,jack-api-lib">
<copy todir="${jack.libs.dir}" flatten="true">
<filelist dir="/" >
<file name="${ecj.dist.dir}/${ecj.libname}"/>
<file name="${guava.dist.dir}/${guava.libname}"/>
<file name="${dx.dist.dir}/${dx.libname}"/>
<file name="${args4j.dist.dir}/${args4j.libname}"/>
<file name="${antlr-rt.dist.dir}/${antlr-rt.libname}"/>
<file name="${jsr305.dist.dir}/${jsr305.libname}"/>
<file name="${junit4.dist.dir}/${junit4.execname}"/>
<file name="${dexlib.dist.dir}/${dexlib.libname}"/>
<file name="${dx-ref.dist.dir}/${dx-ref.libname}"/>
<file name="${jack-api.dist.dir}/${jack-api.lib.name}"/>
</filelist>
</copy>
</target>
<target name="jack-lib-compile-step1"
depends="jack-copy-libs,sched-build,antlr,sched-build-lib,allocation-lib,
dx-lib,freemarker-lib,maths-lib,sched-lib,watchmaker-lib">
<!-- project layout -->
<!-- avoid incremental compilation with annotation processor -->
<mkdir dir="${jack.build.outdir}"/>
<mkdir dir="${jack.libs.dir}"/>
<mkdir dir="${jack.dist.dir}"/>
<mkdir dir="${jack.tools.dir}"/>
<!-- fetch dependencies -->
<filelist id="jack.link.libs.fileset" dir="/">
<file name="${sched-build.dist.dir}/${sched-build.libname}" />
<file name="${allocation.dist.dir}/${allocation.libname}" />
</filelist>
<filelist id="jack.static.libs.fileset" dir="/">
<file name="${jack-api.dist.dir}/${jack-api.lib.name}"/>
<file name="${ecj.dist.dir}/${ecj.libname}" />
<file name="${guava.dist.dir}/${guava.libname}" />
<file name="${jsr305.dist.dir}/${jsr305.libname}" />
<file name="${dx.dist.dir}/${dx.libname}" />
<file name="${args4j.dist.dir}/${args4j.libname}" />
<file name="${antlr-rt.dist.dir}/${antlr-rt.libname}" />
<file name="${schedlib.dist.dir}/${schedlib.libname}" />
<file name="${freemarker.dist.dir}/${freemarker.libname}" />
<file name="${watchmaker.dist.dir}/${watchmaker.libname}" />
<file name="${maths.dist.dir}/${maths.libname}" />
</filelist>
<copy todir="${jack.tools.dir}" flatten="true">
<filelist dir="/" >
<file name="${sched-build.dist.dir}/${sched-build.execname}" />
<file name="${antlr.dist.dir}/${antlr.execname}" />
</filelist>
</copy>
</target>
<target name="jack-lib-generate-proguard-parser-check">
<uptodate property="jack-lib.uptodate.proguardparser"
srcfile="${jack.dir}/src/com/android/jack/shrob/proguard/Proguard.g"
targetfile="${jack.dir}/src/com/android/jack/shrob/proguard/ProguardParser.java"/>
</target>
<target name="jack-lib-generate-preprocessor-parser-check">
<uptodate property="jack-lib.uptodate.preprocessorparser"
srcfile="${jack.dir}/src/com/android/jack/preprocessor/PreProcessor.g"
targetfile="${jack.dir}/src/com/android/jack/preprocessor/PreProcessorParser.java"/>
</target>
<target name="jack-lib-generate-proguard-parser"
depends="jack-lib-compile-step1,jack-lib-generate-proguard-parser-check"
unless="jack-lib.uptodate.proguardparser">
<!-- generate ProGuard parser -->
<java jar="${jack.tools.dir}/${antlr.execname}" fork="true" failonerror="true">
<arg line="-fo" />
<arg line="${jack.dir}/src/com/android/jack/shrob/proguard"/>
<arg line="${jack.dir}/src/com/android/jack/shrob/proguard/Proguard.g"/>
</java>
</target>
<target name="jack-lib-generate-preprocessor-parser"
depends="jack-lib-compile-step1,jack-lib-generate-preprocessor-parser-check"
unless="jack-lib.uptodate.preprocessorparser">
<!-- generate PreProcessor parser -->
<java jar="${jack.tools.dir}/${antlr.execname}" fork="true" failonerror="true">
<arg line="-fo" />
<arg line="${jack.dir}/src/com/android/jack/preprocessor"/>
<arg line="${jack.dir}/src/com/android/jack/preprocessor/PreProcessor.g"/>
</java>
</target>
<target name="jack-lib-compile-step2"
depends="jack-lib-generate-proguard-parser,jack-lib-generate-preprocessor-parser">
<!-- compile -->
<dependset>
<sources>
<!-- All source files -->
<fileset dir="${jack.dir}/src" />
<filelist refid="jack.link.libs.fileset" />
<filelist refid="jack.static.libs.fileset" />
</sources>
<targets>
<fileset dir="${jack.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8" srcdir="${jack.dir}/src"
destdir="${jack.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false">
<classpath>
<filelist refid="jack.link.libs.fileset" />
<filelist refid="jack.static.libs.fileset" />
</classpath>
<compilerarg line="-processor com.android.sched.build.SchedAnnotationProcessor" />
<compilerarg line="-Xlint:-options"/>
</javac>
</target>
<target name="jack-lib" depends="jack-lib-compile-step2">
<copy todir="${jack.build.outdir}">
<fileset dir="${jack.dir}/rsc" includes="**"/>
</copy>
<copy file="${jack-project.dir}/version.properties" tofile="${jack.build.outdir}/jack-version.properties"/>
<jar destfile="${jack.dist.dir}/${jack.libname}"
basedir="${jack.build.outdir}" includes="**"/>
</target>
<!-- ******************* -->
<!-- jack-intermediate -->
<!-- ******************* -->
<property name="jack.intermediate.dist.dir" value="${jack.dir}/dist"/>
<property name="jack.intermediate.build.dir" value="${jack.dir}/build/jack-intermediate"/>
<property name="jack.intermediate.build.outdir" value="${jack.intermediate.build.dir}/classes"/>
<property name="jack.intermediatename" value="jack-intermediate.jar"/>
<target name="jack-intermediate-clean" depends="jack-lib-clean">
<delete dir="${jack.intermediate.build.dir}"/>
<delete file="${jack.intermediate.dist.dir}/${jack.intermediatename}"/>
</target>
<target name="jack-intermediate-check">
<pathconvert property="jack.static.libs.list" pathsep=" " refid="jack.static.libs.fileset" />
<uptodate property="jack-intermediate.uptodate"
targetfile="${jack.intermediate.dist.dir}/${jack.intermediatename}">
<srcfiles dir="${jack.build.outdir}"/>
<srcfiles dir="/" includes="${jack.static.libs.list}"/>
</uptodate>
</target>
<target name="jack-intermediate" depends="jack-lib,jack-intermediate-check" unless="jack-intermediate.uptodate">
<!-- package -->
<copy todir="${jack.intermediate.build.outdir}">
<fileset dir="${jack.build.outdir}"/>
</copy>
<jar destfile="${jack.intermediate.build.dir}/${jack.intermediatename}"
manifest="${jack.dir}/etc/manifest.txt" basedir="${jack.intermediate.build.outdir}" includes="**"/>
<pathconvert property="jack.static.libs.list" pathsep=" " refid="jack.static.libs.fileset" />
<!-- add sched support -->
<mkdir dir="${jack.intermediate.dist.dir}"/>
<java jar="${jack.tools.dir}/${sched-build.execname}" fork="true" failonerror="true">
<arg value="${jack.intermediate.build.dir}/${jack.intermediatename}" />
<arg line="${jack.static.libs.list}" />
<arg value="${jack.intermediate.dist.dir}/${jack.intermediatename}" />
</java>
</target>
<!-- ******************* -->
<!-- jack -->
<!-- ******************* -->
<property name="jack.exec.build.dir" value="${jack.dir}/build/jack"/>
<property name="jack.exec.build.outdir" value="${jack.exec.build.dir}/classes"/>
<property name="jack.execname" value="jack.jar"/>
<target name="jack-clean" depends="jack-lib-clean">
<delete dir="${jack.exec.build.dir}"/>
<delete file="${jack.dist.dir}/${jack.execname}"/>
</target>
<target name="jack.check">
<uptodate property="jack.uptodate"
targetfile="${jack.dist.dir}/${jack.execname}">
<srcfiles dir="${jack.build.outdir}"/>
<srcfiles file="${jack.intermediate.dist.dir}/${jack.intermediatename}"/>
<srcfiles dir="${jack-default-lib.build.outdir}"/>
<srcfiles file="${jack.dir}/etc/manifest.txt"/>
<srcfiles dir="${jack-server.build.outdir}"/>
</uptodate>
</target>
<target name="jack" depends="jack-intermediate,jack-default-lib,jack-server-lib-compile,jack.check" unless="${jack.uptodate}">
<copy todir="${jack.exec.build.outdir}">
<fileset dir="${jack.build.outdir}"/>
</copy>
<!-- package -->
<unzip dest="${jack.exec.build.outdir}" src="${jack.intermediate.dist.dir}/${jack.intermediatename}"/>
<copy todir="${jack.exec.build.outdir}">
<fileset dir="${jack-server.build.outdir}"/>
</copy>
<mkdir dir="${jack.exec.build.outdir}/jack-default-lib"/>
<copy todir="${jack.exec.build.outdir}/jack-default-lib">
<fileset dir="${jack-default-lib.build.outdir}"/>
</copy>
<jar destfile="${jack.dist.dir}/${jack.execname}"
manifest="${jack.dir}/etc/manifest.txt" basedir="${jack.exec.build.outdir}" includes="**"/>
</target>
<!-- ******************* -->
<!-- jack-api-lib -->
<!-- ******************* -->
<property name="jack-api.lib.build.dir" value="${jack-api.dir}/build/lib" />
<property name="jack-api.lib.build.outdir" value="${jack-api.lib.build.dir}/classes" />
<property name="jack-api.libs.dir" value="${jack-api.dir}/libs" />
<property name="jack-api.dist.dir" value="${jack-api.dir}/dist" />
<property name="jack-api.lib.name" value="jack-api-lib.jar" />
<target name="jack-api-lib-clean">
<delete dir="${jack-api.lib.build.dir}"/>
<delete dir="${jack-api.dist.dir}"/>
<delete dir="${jack-api.libs.dir}"/>
</target>
<target name="jack-api-lib-copy-libs" depends="jsr305-lib">
<copy todir="${jack-api.libs.dir}" flatten="true">
<filelist dir="/" >
<file name="${jsr305.dist.dir}/${jsr305.libname}"/>
</filelist>
</copy>
</target>
<target name="jack-api-lib" depends="jack-api-lib-copy-libs">
<mkdir dir="${jack-api.lib.build.outdir}"/>
<dependset>
<sources>
<!-- All source files -->
<fileset dir="${jack-api.dir}/src" />
<fileset file="${jsr305.dist.dir}/${jsr305.libname}"/>
</sources>
<targets>
<fileset dir="${jack-api.lib.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8" srcdir="${jack-api.dir}/src" destdir="${jack-api.lib.build.outdir}"
source="1.6" target="1.6" debug="true"
includeantruntime="false" includeDestClasses="false" nowarn="true">
<classpath>
<filelist dir="/" files="${jsr305.dist.dir}/${jsr305.libname}" />
</classpath>
<exclude name="com/android/jack/api/example/**"/>
</javac>
<jar destfile="${jack-api.dist.dir}/${jack-api.lib.name}">
<fileset dir="${jack-api.lib.build.outdir}"/>
</jar>
</target>
<!-- ******************* -->
<!-- jack-api -->
<!-- ******************* -->
<property name="jack-api.build.dir" value="${jack-api.dir}/build/exec" />
<property name="jack-api.build.outdir" value="${jack-api.build.dir}/classes" />
<property name="jack-api.name" value="jack-api.jar" />
<target name="jack-api" depends="jack-api-lib">
<jar destfile="${jack-api.dist.dir}/${jack-api.name}">
<fileset dir="${jsr305.build.outdir}"/>
<fileset dir="${jack-api.lib.build.outdir}"/>
</jar>
</target>
<!-- ******************* -->
<!-- jack-api-src -->
<!-- ******************* -->
<property name="jack-api-src.name" value="jack-api-src.zip" />
<target name="jack-api-src-clean">
<delete dir="${jack-api.dist.dir}/${jack-api-src.name}"/>
</target>
<target name="jack-api-src">
<zip destfile="${jack-api.dist.dir}/${jack-api-src.name}"
basedir="${jack-api.dir}/src" />
</target>
<!-- ******************* -->
<!-- jack-launcher -->
<!-- ******************* -->
<property name="jack-launcher.build.dir" value="${jack-launcher.dir}/build" />
<property name="jack-launcher.dist.dir" value="${jack-launcher.dir}/dist" />
<property name="jack-launcher.libs.dir" value="${jack-launcher.dir}/libs" />
<property name="jack-launcher.build.outdir" value="${jack-launcher.build.dir}/classes" />
<property name="jack-launcher.name" value="jack-launcher.jar" />
<target name="jack-launcher-clean">
<delete dir="${jack-launcher.build.outdir}"/>
</target>
<target name="jack-launcher-copy-libs" depends="jsr305-lib">
<copy todir="${jack-launcher.libs.dir}" flatten="true">
<filelist dir="/" >
<file name="${jsr305.dist.dir}/${jsr305.libname}"/>
</filelist>
</copy>
</target>
<target name="jack-launcher" depends="jack-launcher-copy-libs">
<mkdir dir="${jack-launcher.build.outdir}"/>
<dependset>
<sources>
<fileset dir="${jack-launcher.dir}/src" />
<fileset file="${jack-launcher.libs.dir}/${jsr305.libname}" />
</sources>
<targets>
<fileset dir="${jack-launcher.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8" srcdir="${jack-launcher.dir}/src" destdir="${jack-launcher.build.outdir}"
source="1.6" target="1.6" debug="true"
includeantruntime="false" includeDestClasses="false" nowarn="true">
<classpath>
<filelist dir="/" >
<file name="${jack-launcher.libs.dir}/${jsr305.libname}"/>
</filelist>
</classpath>
</javac>
<unzip dest="${jack-launcher.build.outdir}" src="${jack-launcher.libs.dir}/${jsr305.libname}" />
<jar destfile="${jack-launcher.dist.dir}/${jack-launcher.name}" manifest="${jack-launcher.dir}/etc/manifest.txt">
<fileset dir="${jack-launcher.build.outdir}"/>
</jar>
</target>
<!-- ******************* -->
<!-- jack-server-lib -->
<!-- ******************* -->
<property name="jack-server.build.dir" value="${jack-server.dir}/build" />
<property name="jack-server.libs.dir" value="${jack-server.dir}/libs" />
<property name="jack-server.build.outdir" value="${jack-server.build.dir}/classes" />
<target name="jack-server-lib-clean">
<delete dir="${jack-server.build.outdir}"/>
</target>
<target name="jack-server-lib-copy-libs" depends="jsr305-lib,simple-lib,args4j-lib,guava-lib">
<copy todir="${jack-server.libs.dir}" flatten="true">
<filelist dir="/" >
<file name="${jsr305.dist.dir}/${jsr305.libname}"/>
<file name="${simple.dist.dir}/${simple.libname}"/>
<file name="${args4j.dist.dir}/${args4j.libname}"/>
<file name="${guava.dist.dir}/${guava.libname}"/>
</filelist>
</copy>
</target>
<target name="jack-server-lib-compile" depends="jack-server-lib-copy-libs,jack-lib">
<filelist id="jack-server-lib-compile.classpath" dir="/" >
<file name="${jsr305.dist.dir}/${jsr305.libname}"/>
<file name="${jack.dist.dir}/${jack.libname}"/>
<file name="${schedlib.dist.dir}/${schedlib.libname}"/>
<file name="${guava.dist.dir}/${guava.libname}"/>
<file name="${simple.dist.dir}/${simple.libname}"/>
<file name="${args4j.dist.dir}/${args4j.libname}"/>
</filelist>
<mkdir dir="${jack-server.build.outdir}"/>
<dependset>
<sources>
<fileset dir="${jack-server.dir}/src" />
<filelist refid="jack-server-lib-compile.classpath" />
</sources>
<targets>
<fileset dir="${jack-server.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8" srcdir="${jack-server.dir}/src" destdir="${jack-server.build.outdir}"
source="1.7" target="1.7" debug="true"
includeantruntime="false" includeDestClasses="false" nowarn="true">
<classpath>
<filelist refid="jack-server-lib-compile.classpath"/>
</classpath>
</javac>
<unzip dest="${jack-server.build.outdir}" src="${simple.dist.dir}/${simple.libname}" />
</target>
<!-- ********************** -->
<!-- jack-annotations-lib -->
<!-- ********************** -->
<property name="jack-annotations.build.dir" value="${jack.dir}/build/annotations" />
<property name="jack-annotations.build.outdir" value="${jack-annotations.build.dir}/classes" />
<property name="jack-annotations.libname" value="jack-annotations.jar" />
<target name="jack-annotations-lib-clean">
<delete file="${jack.dist.dir}/${jack-annotations.libname}" />
<delete dir="${jack-annotations.build.outdir}" />
</target>
<target name="jack-annotations-lib">
<mkdir dir="${jack-annotations.build.outdir}"/>
<dependset>
<sources>
<fileset dir="${jack.dir}/src/com/android/jack/annotations" includes="**/*.java" />
</sources>
<targets>
<fileset file="${jack.dist.dir}/${jack-annotations.libname}"/>
</targets>
</dependset>
<javac encoding="UTF-8" srcdir="${jack.dir}/src"
includes="com/android/jack/annotations/**/*.java"
destdir="${jack-annotations.build.outdir}"
source="1.6" target="1.6" debug="true"
includeantruntime="false" includeDestClasses="false" nowarn="true" />
<jar destfile="${jack.dist.dir}/${jack-annotations.libname}">
<fileset dir="${jack-annotations.build.outdir}"/>
</jar>
</target>
<!-- ******************* -->
<!-- jackunittests-lib -->
<!-- ******************* -->
<property name="jackunittests.build.dir" value="${jack.dir}/build/jackunittests-lib" />
<property name="jackunittests.libs.dir" value="${jack.dir}/libs" />
<property name="jackunittests.build.outdir" value="${jackunittests.build.dir}/classes" />
<property name="jackunittests.dist.dir" value="${jack.dir}/dist" />
<property name="jackunittests.tools.dir" value="${jack.dir}/tools" />
<property name="jackunittests.libname" value="jackunittests-lib.jar" />
<target name="jackunittests-lib-clean">
<delete dir="${jackunittests.build.dir}" />
<delete dir="${jackunittests.libs.dir}" />
<delete file="${jackunittests.dist.dir}/${jackunittests.libname}" />
</target>
<target name="jackunittests-lib-check">
<filelist id="jackunittests.link.libs.fileset" dir="/">
<file name="${sched-build.dist.dir}/${sched-build.libname}" />
</filelist>
<filelist id="jackunittests.static.libs.fileset" dir="/">
<file name="${jack.dist.dir}/${jack.libname}" />
<file name="${junit4.dist.dir}/${junit4.execname}" />
<file name="${dexlib.dist.dir}/${dexlib.libname}" />
<file name="${dx-ref.dist.dir}/${dx-ref.libname}" />
<file name="${dexcomparator.dist.dir}/${dexcomparator.libname}" />
</filelist>
<union id ="jackunittests.uptodate.files">
<filelist refid="jackunittests.static.libs.fileset"/>
<filelist refid="jack.static.libs.fileset"/>
<filelist refid="jackunittests.static.libs.fileset"/>
</union>
<uptodate property="jackunittests-lib.uptodate" targetfile="${jackunittests.dist.dir}/${jackunittests.libname}">
<srcfiles dir="${jack.dir}/tests" />
<srcresources refid="jackunittests.uptodate.files" />
</uptodate>
</target>
<target name="jackunittests-lib" depends="jack-copy-libs,jack-lib,junit4,dex-lib,dx-ref-lib,dexcomparator-lib,
sched-build,sched-build-lib,jackunittests-lib-check" unless="jackunittests-lib.uptodate">
<!-- project layout -->
<delete dir="${jackunittests.build.outdir}" />
<mkdir dir="${jackunittests.build.outdir}" />
<mkdir dir="${jackunittests.libs.dir}" />
<mkdir dir="${jackunittests.dist.dir}" />
<!-- fetch dependencies -->
<copy file="${sched-build.dist.dir}/${sched-build.execname}" todir="${jackunittests.tools.dir}" />
<!-- compile -->
<javac encoding="UTF-8" srcdir="${jack.dir}/tests" destdir="${jackunittests.build.outdir}"
source="1.6" target="1.6" debug="true"
includeantruntime="false" includeDestClasses="false" nowarn="true">
<classpath>
<filelist refid="jackunittests.link.libs.fileset"/>
<filelist refid="jack.static.libs.fileset"/>
<filelist refid="jackunittests.static.libs.fileset"/>
</classpath>
<compilerarg line="-processor com.android.sched.build.SchedAnnotationProcessor" />
</javac>
<!-- package -->
<jar destfile="${jackunittests.dist.dir}/${jackunittests.libname}"
basedir="${jackunittests.build.outdir}" includes="**" />
</target>
<!-- ******************* -->
<!-- jackunittests -->
<!-- ******************* -->
<property name="jackunittests.exec.build.dir" value="${jack.dir}/build/jackunittests" />
<property name="jackunittests.execname" value="jackunittests.jar"/>
<target name="jackunittests-clean">
<delete file="${jackunittests.dist.dir}/${jackunittests.execname}" />
</target>
<target name="jackunittests" depends="jackunittests-lib" unless="jackunittests-lib.uptodate">
<mkdir dir="${jackunittests.exec.build.dir}" />
<jar manifest="${jack.dir}/etc/manifest.txt"
destfile="${jackunittests.exec.build.dir}/${jackunittests.execname}" basedir="${jackunittests.build.outdir}"/>
<!-- add sched support -->
<pathconvert property="jackunittests.static.libs.list" pathsep=" " refid="jackunittests.static.libs.fileset" />
<pathconvert property="jack.static.libs.list" pathsep=" " refid="jack.static.libs.fileset" />
<java jar="${jackunittests.tools.dir}/${sched-build.execname}" fork="true" failonerror="true">
<arg value="${jackunittests.exec.build.dir}/${jackunittests.execname}" />
<arg line="${jackunittests.static.libs.list}" />
<arg line="${jack.static.libs.list}" />
<arg value="${jackunittests.dist.dir}/${jackunittests.execname}" />
</java>
</target>
<!-- ******************* -->
<!-- jack-tests -->
<!-- ******************* -->
<property name="jack-tests.libs.dir" value="${jack-tests.dir}/libs" />
<property name="jack-tests.prebuilts.dir" value="${jack-tests.dir}/prebuilts" />
<property name="jack-tests.build.dir" value="${jack-tests.dir}/intermediates" />
<property name="jack-tests.build.outdir" value="${jack-tests.build.dir}/classes" />
<property name="jack-tests.dist.dir" value="${jack-tests.dir}/dist" />
<property name="jack-tests.libname" value="jack-tests-lib.jar" />
<property name="jack-tests.execname" value="jack-tests.jar" />
<target name="jack-tests-clean">
<delete dir="${jack-tests.libs.dir}" />
<delete dir="${jack-tests.build.outdir}" />
<delete file="${jack-tests.dist.dir}/${jack-tests.libname}" />
</target>
<target name="jack-tests-copy-libs" depends="jack-api-lib,junit4,dx-ref-lib,ddm-lib,ecj,
antlr-rt-lib,guava-lib,dex-lib,jsr305-lib,dexcomparator-lib">
<copy todir="${jack-tests.libs.dir}" flatten="true">
<filelist dir="/" >
<file name="${jack-api.dist.dir}/${jack-api.lib.name}"/>
<file name="${junit4.dist.dir}/${junit4.execname}"/>
<file name="${dx-ref.dist.dir}/${dx-ref.libname}"/>
<file name="${ddm-lib.dist.dir}/${ddm-lib.libname}"/>
<file name="${ecj.dist.dir}/${ecj.libname}"/>
<file name="${antlr-rt.dist.dir}/${antlr-rt.libname}"/>
<file name="${guava.dist.dir}/${guava.libname}"/>
<file name="${dexlib.dist.dir}/${dexlib.libname}"/>
<file name="${jsr305.dist.dir}/${jsr305.libname}"/>
<file name="${dexcomparator.dist.dir}/${dexcomparator.libname}"/>
</filelist>
</copy>
</target>
<target name="jack-tests" depends="jack-tests-copy-libs, jack-lib, jackunittests">
<!-- project layout -->
<mkdir dir="${jack-tests.build.outdir}"/>
<mkdir dir="${jack-tests.dist.dir}"/>
<!-- compile -->
<dependset>
<sources>
<fileset id="jack-test.src.fileset" dir="${jack-tests.dir}/src"/>
<fileset id="jack-test.tests.fileset" dir="${jack-tests.dir}/tests">
<exclude name="com/android/jack/classpath/test002/lib1override/**"/>
<exclude name="com/android/jack/enums/test003/link/Other.java"/>
<exclude name="com/android/jack/enums/test003/link/Values.java"/>
<exclude name="com/android/jack/error/test001/jack/A.java"/>
<exclude name="com/android/jack/error/test002/jack/A.java"/>
<exclude name="com/android/jack/frontend/test002/jack/PackageName/ClassInConflictingPackage.java"/>
<exclude name="com/android/jack/frontend/test008/jack/NoOuterContext.java"/>
<exclude name="com/android/jack/frontend/test010/jack/UnusedLocalVar.java"/>
<exclude name="com/android/jack/frontend/test013/jack/ExtendingInnerOnly.java"/>
<exclude name="com/android/jack/frontend/test014/jack/ExtendingInnerInStaticContext.java"/>
<exclude name="com/android/jack/frontend/test015/jack/WithOuterContextButStatic.java"/>
<exclude name="com/android/jack/frontend/test016/jack/WithDuplicated.java"/>
<exclude name="com/android/jack/frontend/test017/jack/InvalidQualification.java"/>
<exclude name="com/android/jack/nopackage/jack/**"/>
<exclude name="com/android/jack/java7/boxing/**"/>
<exclude name="com/android/jack/java7/switches/**"/>
<exclude name="com/android/jack/java7/exceptions/**"/>
<exclude name="com/android/jack/java7/trywithresources/**"/>
<exclude name="com/android/jack/java7/parser/**"/>
<exclude name="com/android/jack/jarjar/test003/dontcompile/**"/>
<exclude name="com/android/jack/lookup/test001/liboverride/**"/>
<exclude name="com/android/jack/frontend/test005/jack/**"/>
<exclude name="com/android/jack/frontend/test006/jack/**"/>
<exclude name="com/android/jack/frontend/test007/**"/>
</fileset>
<filelist dir="/">
<!-- classpath -->
<file name="${jackunittests.dist.dir}/${jackunittests.execname}" />
<file name="${ddm-lib.dist.dir}/${ddm-lib.libname}" />
<file name="${jack-api.dist.dir}/${jack-api.lib.name}"/>
</filelist>
<!-- static libs -->
<filelist refid="jackunittests.static.libs.fileset" />
<filelist refid="jack.static.libs.fileset" />
</sources>
<targets>
<fileset file="${jack-tests.dist.dir}/${jack-tests.execname}"/>
</targets>
</dependset>
<javac
encoding="UTF-8"
destdir="${jack-tests.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" nowarn="true">
<src path="${jack-tests.dir}/src"/>
<src path="${jack-tests.dir}/tests"/>
<exclude name="com/android/jack/classpath/test002/lib1override/**"/>
<exclude name="com/android/jack/enums/test003/link/Other.java"/>
<exclude name="com/android/jack/enums/test003/link/Values.java"/>
<exclude name="com/android/jack/error/test001/jack/A.java"/>
<exclude name="com/android/jack/error/test002/jack/A.java"/>
<exclude name="com/android/jack/frontend/test002/jack/PackageName/ClassInConflictingPackage.java"/>
<exclude name="com/android/jack/frontend/test008/jack/NoOuterContext.java"/>
<exclude name="com/android/jack/frontend/test010/jack/UnusedLocalVar.java"/>
<exclude name="com/android/jack/frontend/test013/jack/ExtendingInnerOnly.java"/>
<exclude name="com/android/jack/frontend/test014/jack/ExtendingInnerInStaticContext.java"/>
<exclude name="com/android/jack/frontend/test015/jack/WithOuterContextButStatic.java"/>
<exclude name="com/android/jack/frontend/test016/jack/WithDuplicated.java"/>
<exclude name="com/android/jack/frontend/test017/jack/InvalidQualification.java"/>
<exclude name="com/android/jack/nopackage/jack/**"/>
<exclude name="com/android/jack/java7/boxing/**"/>
<exclude name="com/android/jack/java7/switches/**"/>
<exclude name="com/android/jack/java7/exceptions/**"/>
<exclude name="com/android/jack/java7/trywithresources/**"/>
<exclude name="com/android/jack/java7/parser/**"/>
<exclude name="com/android/jack/jarjar/test003/dontcompile/**"/>
<exclude name="com/android/jack/lookup/test001/liboverride/**"/>
<exclude name="com/android/jack/frontend/test005/jack/**"/>
<exclude name="com/android/jack/frontend/test006/jack/**"/>
<exclude name="com/android/jack/frontend/test007/**"/>
<classpath>
<filelist dir="/">
<file name="${jackunittests.dist.dir}/${jackunittests.execname}" />
<file name="${ddm-lib.dist.dir}/${ddm-lib.libname}" />
<file name="${jack-api.dist.dir}/${jack-api.lib.name}"/>
</filelist>
</classpath>
</javac>
<!-- package -->
<jar destfile="${jack-tests.build.dir}/${jack-tests.libname}"
basedir="${jack-tests.build.outdir}"
includes="**"/>
<!-- add sched support -->
<pathconvert property="jackunittests.static.libs.list" pathsep=" " refid="jackunittests.static.libs.fileset" />
<pathconvert property="jack.static.libs.list" pathsep=" " refid="jack.static.libs.fileset" />
<java jar="${jackunittests.tools.dir}/${sched-build.execname}" fork="true" failonerror="true">
<arg value="${jack-tests.build.dir}/${jack-tests.libname}" />
<arg value="${jackunittests.dist.dir}/${jackunittests.libname}" />
<arg line="${jackunittests.static.libs.list}" />
<arg line="${jack.static.libs.list}" />
<arg value="${jack-tests.dist.dir}/${jack-tests.execname}" />
</java>
</target>
<!-- ******************* -->
<!-- antlr -->
<!-- ******************* -->
<property name="antlr.dist.dir" value="${antlr.dir}/dist" />
<property name="antlr.execname" value="antlr.jar"/>
<target name="antlr-clean">
<delete dir="${antlr.dist.dir}"/>
</target>
<target name="antlr">
<mkdir dir="${antlr.dist.dir}"/>
<copy file="${antlr.dir}/antlr-3.4-complete.jar" tofile="${antlr.dist.dir}/${antlr.execname}"/>
</target>
<!-- ******************* -->
<!-- args4j-lib -->
<!-- ******************* -->
<property name="args4j.build.dir" value="${args4j.dir}/build"/>
<property name="args4j.build.outdir" value="${args4j.build.dir}/classes"/>
<property name="args4j.dist.dir" value="${args4j.dir}/dist"/>
<property name="args4j.libname" value="args4j-lib.jar"/>
<target name="args4j-lib-clean">
<delete dir="${args4j.build.dir}"/>
<delete dir="${args4j.dist.dir}"/>
</target>
<target name="args4j-lib">
<!-- project layout -->
<mkdir dir="${args4j.build.outdir}"/>
<mkdir dir="${args4j.dist.dir}"/>
<!-- compile -->
<dependset>
<sources>
<!-- All source files -->
<fileset dir="${args4j.dir}/args4j/src" />
</sources>
<targets>
<fileset file="${args4j.dist.dir}/${args4j.libname}"/>
</targets>
</dependset>
<javac encoding="UTF-8" srcdir="${args4j.dir}/args4j/src"
destdir="${args4j.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false" nowarn="true"/>
<!-- package -->
<copy todir="${args4j.build.outdir}">
<fileset dir="${args4j.dir}/args4j/src">
<include name="**/*.properties"/>
</fileset>
</copy>
<jar destfile="${args4j.dist.dir}/${args4j.libname}"
basedir="${args4j.build.outdir}"
includes="**"/>
</target>
<!-- ******************* -->
<!-- ddmlib -->
<!-- ******************* -->
<property name="ddm-lib.libname" value="ddmlib.jar"/>
<property name="ddm-lib.dist.dir" value="${ddm-lib.dir}/dist"/>
<target name="ddm-lib-clean">
<delete file="${ddm-lib.dist.dir}/${ddm-lib.libname}"/>
</target>
<target name="ddm-lib">
<mkdir dir="${ddm-lib.dist.dir}"/>
<copy file="${ddm-lib.dir}/ddmlib.jar" tofile="${ddm-lib.dist.dir}/${ddm-lib.libname}"/>
</target>
<!-- ******************* -->
<!-- dx-lib -->
<!-- ******************* -->
<property name="dx.build.dir" value="${dx.dir}/build"/>
<property name="dx.libs.dir" value="${dx.dir}/libs"/>
<property name="dx.build.outdir" value="${dx.build.dir}/classes"/>
<property name="dx.dist.dir" value="${dx.dir}/dist"/>
<property name="dx.libname" value="dx-lib.jar"/>
<target name="dx-lib-clean">
<delete dir="${dx.build.dir}" />
<delete dir="${dx.libs.dir}" />
<delete dir="${dx.dist.dir}" />
</target>
<target name="dx-lib" depends="jsr305-lib">
<!-- project layout -->
<mkdir dir="${dx.build.outdir}"/>
<mkdir dir="${dx.dist.dir}"/>
<!-- fetch dependencies -->
<copy file="${jsr305.dist.dir}/${jsr305.libname}" todir="${dx.libs.dir}"/>
<!-- compile -->
<dependset>
<sources>
<fileset dir="${dx.dir}/src" />
<fileset file="${jsr305.dist.dir}/${jsr305.libname}" />
</sources>
<targets>
<fileset dir="${dx.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8" srcdir="${dx.dir}/src"
destdir="${dx.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false" nowarn="true">
<classpath>
<filelist dir="/">
<file name="${jsr305.dist.dir}/${jsr305.libname}"/>
</filelist>
</classpath>
</javac>
<!-- package -->
<jar destfile="${dx.dist.dir}/${dx.libname}"
basedir="${dx.build.outdir}"
includes="**"/>
</target>
<!-- ******************* -->
<!-- ecj -->
<!-- ******************* -->
<property name="ecj.libname" value="ecj.jar"/>
<property name="ecj.dist.dir" value="${ecj.dir}/dist"/>
<target name="ecj-clean">
<delete dir="${ecj.dist.dir}"/>
</target>
<target name="ecj">
<mkdir dir="${ecj.dist.dir}"/>
<copy file="${ecj.dir}/ecj-4.5M1.jar" tofile="${ecj.dist.dir}/${ecj.libname}"/>
</target>
<!-- ******************* -->
<!-- simple-lib -->
<!-- ******************* -->
<property name="simple.libname" value="simple-lib.jar"/>
<property name="simple.dist.dir" value="${simple.dir}/dist"/>
<property name="simple.build.outdir" value="${simple.dir}/build/classes"/>
<target name="simple-lib-clean">
<delete dir="${simple.dist.dir}"/>
</target>
<target name="simple-lib">
<mkdir dir="${simple.dist.dir}"/>
<mkdir dir="${simple.build.outdir}"/>
<unzip dest="${simple.build.outdir}" src="${simple.dir}/simple-common-6.0.1.jar"/>
<unzip dest="${simple.build.outdir}" src="${simple.dir}/simple-http-6.0.1.jar"/>
<unzip dest="${simple.build.outdir}" src="${simple.dir}/simple-transport-6.0.1.jar"/>
<jar basedir="${simple.build.outdir}" destfile="${simple.dist.dir}/${simple.libname}"/>
</target>
<!-- ******************* -->
<!-- dx-ref-lib -->
<!-- ******************* -->
<property name="dx-ref.libname" value="dx-ref.jar" />
<property name="dx-ref.dist.dir" value="${dx-ref.dir}/dist" />
<target name="dx-ref-lib-clean">
<delete dir="${dx-ref.dist.dir}" />
</target>
<target name="dx-ref-lib">
<mkdir dir="${dx-ref.dist.dir}" />
<copy file="${dx-ref.dir}/dx.jar" tofile="${dx-ref.dist.dir}/${dx-ref.libname}" />
</target>
<!-- ******************* -->
<!-- freemarker-lib -->
<!-- ******************* -->
<property name="freemarker.libname" value="freemarker-lib.jar"/>
<property name="freemarker.dist.dir" value="${freemarker.dir}/dist"/>
<target name="freemarker-lib-clean">
<delete dir="${freemarker.dist.dir}"/>
</target>
<target name="freemarker-lib">
<mkdir dir="${freemarker.dist.dir}"/>
<copy file="${freemarker.dir}/freemarker-2.3.19.jar" tofile="${freemarker.dist.dir}/${freemarker.libname}"/>
</target>
<!-- ******************* -->
<!-- guava-lib -->
<!-- ******************* -->
<property name="guava.build.dir" value="${guava.dir}/build"/>
<property name="guava.build.outdir" value="${guava.build.dir}/classes"/>
<property name="guava.dist.dir" value="${guava.dir}/dist"/>
<property name="guava.libname" value="guava-lib.jar"/>
<target name="guava-lib-clean">
<delete dir="${guava.build.dir}"/>
<delete dir="${guava.dist.dir}"/>
</target>
<target name="guava-lib" depends="jsr305-lib">
<!-- project layout -->
<mkdir dir="${guava.build.outdir}"/>
<mkdir dir="${guava.dist.dir}"/>
<dependset>
<sources>
<fileset dir="${guava.dir}/src" />
<fileset file="${jsr305.dist.dir}/${jsr305.libname}" />
</sources>
<targets>
<fileset dir="${guava.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8" source="1.6" target="1.6"
srcdir="${guava.dir}/src"
destdir="${guava.build.outdir}"
debug="true" includeantruntime="false" includeDestClasses="false" nowarn="true">
<classpath>
<filelist dir="/">
<file name="${jsr305.dist.dir}/${jsr305.libname}" />
</filelist>
</classpath>
</javac>
<!-- package -->
<jar destfile="${guava.dist.dir}/${guava.libname}"
basedir="${guava.build.outdir}"
includes="**"/>
</target>
<!-- ******************* -->
<!-- jsr305-lib -->
<!-- ******************* -->
<property name="jsr305.build.dir" value="${jsr305.dir}/build"/>
<property name="jsr305.build.outdir" value="${jsr305.build.dir}/classes"/>
<property name="jsr305.dist.dir" value="${jsr305.dir}/dist"/>
<property name="jsr305.libname" value="jsr305-lib.jar"/>
<target name="jsr305-lib-clean">
<delete dir="${jsr305.build.dir}"/>
<delete dir="${jsr305.dist.dir}"/>
</target>
<target name="jsr305-lib">
<!-- project layout -->
<mkdir dir="${jsr305.build.outdir}"/>
<mkdir dir="${jsr305.dist.dir}"/>
<!-- compile -->
<dependset>
<sources>
<fileset dir="${jsr305.dir}/ri/src/main/java" />
</sources>
<targets>
<fileset dir="${jsr305.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8" srcdir="${jsr305.dir}/ri/src/main/java"
destdir="${jsr305.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false" nowarn="true"/>
<!-- package -->
<jar destfile="${jsr305.dist.dir}/${jsr305.libname}"
basedir="${jsr305.build.outdir}"
includes="**"/>
</target>
<!-- ******************* -->
<!-- maths-lib -->
<!-- ******************* -->
<property name="maths.build.dir" value="${maths.dir}/build" />
<property name="maths.build.outdir" value="${maths.build.dir}/classes" />
<property name="maths.dist.dir" value="${maths.dir}/dist" />
<property name="maths.libname" value="maths-lib.jar" />
<target name="maths-lib-clean">
<delete dir="${maths.build.dir}"/>
<delete dir="${maths.dist.dir}"/>
</target>
<target name="maths-lib">
<!-- project layout -->
<mkdir dir="${maths.build.outdir}"/>
<mkdir dir="${maths.dist.dir}"/>
<!-- compile -->
<dependset>
<sources>
<fileset dir="${maths.dir}/core/src/java/main" />
</sources>
<targets>
<fileset dir="${maths.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8" srcdir="${maths.dir}/core/src/java/main"
destdir="${maths.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false" nowarn="true"/>
<!-- package -->
<jar destfile="${maths.dist.dir}/${maths.libname}"
basedir="${maths.build.outdir}"
includes="**"/>
</target>
<!-- ******************* -->
<!-- sched-lib -->
<!-- ******************* -->
<property name="schedlib.build.dir" value="${sched.dir}/build/sched-lib" />
<property name="schedlib.libs.dir" value="${sched.dir}/libs" />
<property name="schedlib.build.outdir" value="${schedlib.build.dir}/classes" />
<property name="schedlib.dist.dir" value="${sched.dir}/dist" />
<property name="schedlib.libname" value="sched-lib.jar" />
<target name="sched-lib-clean">
<delete dir="${schedlib.build.dir}" />
<delete dir="${schedlib.libs.dir}" />
<delete file="${schedlib.dist.dir}/${schedlib.libname}" />
</target>
<target name="sched-copy-libs" depends="guava-lib,jsr305-lib,allocation-lib,freemarker-lib,
watchmaker-lib,maths-lib,junit4">
<copy todir="${schedlib.libs.dir}" flatten="true">
<filelist dir="/">
<file name="${guava.dist.dir}/${guava.libname}" />
<file name="${jsr305.dist.dir}/${jsr305.libname}" />
<file name="${allocation.dist.dir}/${allocation.libname}" />
<file name="${freemarker.dist.dir}/${freemarker.libname}" />
<file name="${watchmaker.dist.dir}/${watchmaker.libname}" />
<file name="${maths.dist.dir}/${maths.libname}" />
<file name="${junit4.dist.dir}/${junit4.execname}" />
</filelist>
</copy>
</target>
<target name="sched-lib" depends="sched-copy-libs,sched-build-lib,guava-lib,jsr305-lib,
allocation-lib,freemarker-lib,watchmaker-lib,maths-lib">
<!-- project layout -->
<!-- avoid incremental compilation with annotation processor -->
<mkdir dir="${schedlib.build.outdir}"/>
<mkdir dir="${schedlib.libs.dir}"/>
<mkdir dir="${schedlib.dist.dir}"/>
<filelist id="schedlib.link.libs.fileset" dir="/">
<file name="${sched-build.dist.dir}/${sched-build.libname}" />
<file name="${guava.dist.dir}/${guava.libname}" />
<file name="${jsr305.dist.dir}/${jsr305.libname}" />
<file name="${allocation.dist.dir}/${allocation.libname}" />
<file name="${freemarker.dist.dir}/${freemarker.libname}" />
<file name="${watchmaker.dist.dir}/${watchmaker.libname}" />
<file name="${maths.dist.dir}/${maths.libname}" />
</filelist>
<!-- compile -->
<dependset>
<sources>
<fileset dir="${sched.dir}/src" />
<filelist refid="schedlib.link.libs.fileset"/>
</sources>
<targets>
<fileset dir="${schedlib.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8" srcdir="${sched.dir}/src" destdir="${schedlib.build.outdir}"
source="1.6" target="1.6" debug="true" includeantruntime="false" includeDestClasses="false">
<classpath>
<filelist refid="schedlib.link.libs.fileset"/>
</classpath>
<compilerarg line="-processor com.android.sched.build.SchedAnnotationProcessor" />
<compilerarg line="-Xlint:-options"/>
</javac>
<!-- package -->
<copy todir="${schedlib.build.outdir}" >
<fileset dir="${sched.dir}/rsc">
<include name="**"/>
</fileset>
</copy>
<jar destfile="${schedlib.dist.dir}/${schedlib.libname}"
basedir="${schedlib.build.outdir}"
includes="**"/>
</target>
<!-- ******************* -->
<!-- sched-build-lib -->
<!-- ******************* -->
<property name="sched-build.build.dir" value="${sched.dir}/build/sched-build-lib" />
<property name="sched-build.build.outdir" value="${sched-build.build.dir}/classes" />
<property name="sched-build.dist.dir" value="${sched.dir}/dist" />
<property name="sched-build.libname" value="sched-build-lib.jar" />
<target name="sched-build-lib-clean">
<delete dir="${sched-build.build.dir}" />
<delete file="${sched-build.dist.dir}/${sched-build.libname}" />
</target>
<target name="sched-build-lib-compile" depends="sched-copy-libs">
<!-- project layout -->
<mkdir dir="${sched-build.build.outdir}"/>
<mkdir dir="${sched-build.dist.dir}"/>
<!-- compile -->
<dependset>
<sources>
<filelist dir="${sched.dir}/src">
<file name="com/android/sched/build/SchedAnnotationProcessor.java" />
<file name="com/android/sched/build/JarMerger.java"/>
</filelist>
<fileset file="${jsr305.dist.dir}/${jsr305.libname}" />
</sources>
<targets>
<fileset dir="${sched-build.build.outdir}"/>
</targets>
</dependset>
<javac
encoding="UTF-8"
srcdir="${sched.dir}/src"
destdir="${sched-build.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false">
<compilerarg line="-Xlint:-options"/>
<classpath>
<fileset file="${jsr305.dist.dir}/${jsr305.libname}"/>
</classpath>
<include name="com/android/sched/build/SchedAnnotationProcessor.java" />
<include name="com/android/sched/build/JarMerger.java"/>
</javac>
</target>
<target name="sched-build-lib" depends="sched-build-lib-compile">
<!-- package -->
<copy todir="${sched-build.build.outdir}">
<fileset dir="${sched.dir}/rsc-ap">
<include name="**" />
</fileset>
</copy>
<jar destfile="${sched-build.dist.dir}/${sched-build.libname}"
basedir="${sched-build.build.outdir}" includes="**"/>
</target>
<!-- ******************* -->
<!-- sched-build -->
<!-- ******************* -->
<property name="sched-build.execname" value="sched-build.jar" />
<property name="sched-build.exec.build.dir" value="${sched.dir}/build/sched-build" />
<property name="sched-build.exec.build.outdir" value="${sched-build.exec.build.dir}/classes" />
<target name="sched-build-clean" depends="sched-build-lib-clean">
<delete dir="${sched-build.exec.build.dir}" />
<delete file="${sched.dir}/tools/${sched-build.execname}" />
<delete file="${sched-build.dist.dir}/${sched-build.execname}" />
</target>
<target name="sched-build" depends="sched-build-lib-compile">
<!-- package -->
<copy todir="${sched-build.exec.build.outdir}">
<fileset dir="${sched-build.build.outdir}" includes="**/*.class" />
</copy>
<copy todir="${sched-build.exec.build.outdir}">
<fileset dir="${sched.dir}/rsc-ap">
<include name="**" />
</fileset>
</copy>
<jar destfile="${sched-build.dist.dir}/${sched-build.execname}"
basedir="${sched-build.exec.build.outdir}" includes="**" manifest="${sched.dir}/etc/manifest.txt" />
<copy file="${sched-build.dist.dir}/${sched-build.execname}" todir="${sched.dir}/tools"/>
</target>
<!-- ******************* -->
<!-- schedtests-lib -->
<!-- ******************* -->
<property name="schedtests.build.dir" value="${sched.dir}/build/schedtests" />
<property name="schedtests.build.outdir" value="${schedtests.build.dir}/classes" />
<property name="schedtests.dist.dir" value="${sched.dir}/dist" />
<property name="schedtests.libname" value="schedtests-lib.jar" />
<target name="schedtests-lib-clean">
<delete dir="${schedtests.build.dir}" />
<delete dir="${schedtests.dist.dir}" />
</target>
<target name="schedtests-lib" depends="jack,sched-copy-libs,sched-lib,guava-lib,jsr305-lib,junit4-lib">
<!-- project layout -->
<mkdir dir="${schedtests.build.outdir}" />
<mkdir dir="${schedtests.dist.dir}" />
<filelist id="schedtests.link.libs.fileset" dir="/">
<file name="${schedlib.dist.dir}/${schedlib.libname}" />
<file name="${guava.dist.dir}/${guava.libname}" />
<file name="${jsr305.dist.dir}/${jsr305.libname}" />
<file name="${junit4.dist.dir}/${junit4.libname}" />
</filelist>
<!-- compile -->
<dependset>
<sources>
<fileset dir="${sched.dir}/tests" />
<filelist refid="schedtests.link.libs.fileset" />
</sources>
<targets>
<fileset dir="${schedtests.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8"
srcdir="${sched.dir}/tests"
destdir="${schedtests.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false">
<compilerarg line="-Xlint:-options"/>
<classpath>
<filelist refid="schedtests.link.libs.fileset"/>
</classpath>
</javac>
<!-- package -->
<jar destfile="${schedtests.dist.dir}/${schedtests.libname}"
basedir="${schedtests.build.outdir}" includes="**" />
</target>
<!-- ******************* -->
<!-- watchmaker-lib -->
<!-- ******************* -->
<property name="watchmaker.build.dir" value="${watchmaker.dir}/build"/>
<property name="watchmaker.libs.dir" value="${watchmaker.dir}/libs"/>
<property name="watchmaker.build.outdir" value="${watchmaker.build.dir}/classes"/>
<property name="watchmaker.dist.dir" value="${watchmaker.dir}/dist" />
<property name="watchmaker.libname" value="watchmaker-lib.jar"/>
<target name="watchmaker-lib-clean">
<delete dir="${watchmaker.build.dir}"/>
<delete dir="${watchmaker.dist.dir}"/>
</target>
<target name="watchmaker-lib" depends="maths-lib,guava-lib">
<!-- project layout -->
<mkdir dir="${watchmaker.build.outdir}"/>
<mkdir dir="${watchmaker.dist.dir}"/>
<!-- compile -->
<dependset>
<sources>
<fileset dir="${watchmaker.dir}/framework/src/java/main" />
<filelist dir="/">
<file name="${maths.dist.dir}/${maths.libname}" />
<file name="${guava.dist.dir}/${guava.libname}" />
</filelist>
</sources>
<targets>
<fileset dir="${watchmaker.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8"
srcdir="${watchmaker.dir}/framework/src/java/main"
destdir="${watchmaker.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false" nowarn="true">
<classpath>
<filelist dir="/">
<file name="${maths.dist.dir}/${maths.libname}" />
<file name="${guava.dist.dir}/${guava.libname}" />
</filelist>
</classpath>
</javac>
<!-- package -->
<jar destfile="${watchmaker.dist.dir}/${watchmaker.libname}"
basedir="${watchmaker.build.outdir}"
includes="**"/>
</target>
<!-- ******************* -->
<!-- antlr-runtime-lib -->
<!-- ******************* -->
<property name="antlr-rt.build.dir" value="${antlr-rt.dir}/build" />
<property name="antlr-rt.build.outdir" value="${antlr-rt.build.dir}/classes" />
<property name="antlr-rt.dist.dir" value="${antlr-rt.dir}/dist" />
<property name="antlr-rt.libname" value="antlr-runtime-lib.jar" />
<target name="antlr-rt-lib-clean">
<delete dir="${antlr-rt.build.dir}" />
<delete dir="${antlr-rt.dist.dir}" />
</target>
<target name="antlr-rt-lib">
<!-- project layout -->
<mkdir dir="${antlr-rt.build.outdir}"/>
<mkdir dir="${antlr-rt.dist.dir}"/>
<!-- compile -->
<dependset>
<sources>
<fileset dir="${antlr-rt.dir}/antlr-3.4/runtime/Java/src/main/java" />
</sources>
<targets>
<fileset dir="${antlr-rt.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8"
srcdir="${antlr-rt.dir}/antlr-3.4/runtime/Java/src/main/java"
destdir="${antlr-rt.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false" nowarn="true">
<exclude name="org/antlr/runtime/tree/DOTTreeGenerator.java" />
</javac>
<!-- package -->
<jar destfile="${antlr-rt.dist.dir}/${antlr-rt.libname}"
basedir="${antlr-rt.build.outdir}"
includes="**"/>
</target>
<!-- ******************* -->
<!-- allocation-lib -->
<!-- ******************* -->
<property name="allocation.build.dir" value="${allocation.dir}/build" />
<property name="allocation.build.outdir" value="${allocation.build.dir}/classes" />
<property name="allocation.dist.dir" value="${allocation.dir}/dist" />
<property name="allocation.libname" value="allocation-lib.jar" />
<target name="allocation-lib-clean">
<delete dir="${allocation.build.dir}" />
<delete dir="${allocation.dist.dir}" />
</target>
<target name="allocation-lib" depends="guava-lib">
<!-- project layout -->
<mkdir dir="${allocation.build.outdir}"/>
<mkdir dir="${allocation.dist.dir}"/>
<!-- compile -->
<dependset>
<sources>
<fileset dir="${allocation.dir}/src/main/java" />
<fileset file="${guava.dist.dir}/${guava.libname}" />
</sources>
<targets>
<fileset file="${allocation.dist.dir}/${allocation.libname}"/>
</targets>
</dependset>
<javac encoding="UTF-8"
srcdir="${allocation.dir}/src/main/java"
destdir="${allocation.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false" nowarn="true">
<classpath>
<filelist dir="/" files="${guava.dist.dir}/${guava.libname}" />
</classpath>
</javac>
<!-- package -->
<jar destfile="${allocation.dist.dir}/${allocation.libname}"
basedir="${allocation.build.outdir}"
includes="**"/>
</target>
<!-- ******************* -->
<!-- junit4-lib -->
<!-- ******************* -->
<property name="junit4.build.dir" value="${junit4.dir}/build/junit4-lib" />
<property name="junit4.build.outdir" value="${junit4.build.dir}/classes" />
<property name="junit4.dist.dir" value="${junit4.dir}/dist" />
<property name="junit4.libname" value="junit4-lib.jar" />
<target name="junit4-lib-clean">
<delete dir="${junit4.build.dir}" />
<delete file="${junit4.dist.dir}/${junit4.libname}" />
</target>
<target name="junit4-lib-compile" depends="hamcrest-core-lib">
<!-- project layout -->
<mkdir dir="${junit4.build.outdir}"/>
<mkdir dir="${junit4.dist.dir}"/>
<!-- compile -->
<dependset>
<sources>
<fileset dir="${junit4.dir}/src/main/java" />
<fileset file="${hamcrest-core.dist.dir}/${hamcrest-core.libname}" />
</sources>
<targets>
<fileset dir="${junit4.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8"
srcdir="${junit4.dir}/src/main/java"
destdir="${junit4.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false" nowarn="true">
<classpath>
<filelist dir="/" files="${hamcrest-core.dist.dir}/${hamcrest-core.libname}"/>
</classpath>
</javac>
</target>
<target name="junit4-lib" depends="junit4-lib-compile">
<!-- package -->
<jar destfile="${junit4.dist.dir}/${junit4.libname}"
basedir="${junit4.build.outdir}"
includes="**"/>
</target>
<!-- ******************* -->
<!-- junit4 -->
<!-- ******************* -->
<property name="junit4.execname" value="junit4.jar" />
<property name="junit4.exec.build.dir" value="${junit4.dir}/build/junit4" />
<property name="junit4.exec.build.outdir" value="${junit4.exec.build.dir}/classes" />
<target name="junit4-clean" depends="junit4-lib-clean">
<delete file="${junit4.dist.dir}/${junit4.execname}" />
<delete dir="${junit4.exec.build.dir}"/>
</target>
<target name="junit4" depends="junit4-lib-compile">
<!-- package -->
<copy todir="${junit4.exec.build.outdir}">
<fileset dir="${junit4.build.outdir}" includes="**/*.class" />
</copy>
<copy todir="${junit4.exec.build.outdir}">
<fileset dir="${hamcrest-core.build.outdir}"/>
</copy>
<jar destfile="${junit4.dist.dir}/${junit4.execname}"
basedir="${junit4.exec.build.outdir}"
includes="**"/>
</target>
<!-- ******************* -->
<!-- junit4-jack-lib -->
<!-- ******************* -->
<property name="junit4-jack.build.dir" value="${junit4.dir}/build/junit4-jack-lib" />
<property name="junit4-jack.build.outdir" value="${junit4-jack.build.dir}/classes" />
<property name="junit4-jack.dist.dir" value="${junit4.dir}/dist" />
<property name="junit4-jack.libname" value="junit4-lib.jack" />
<target name="junit4-jack-lib-clean">
<delete dir="${junit4-jack.build.dir}" />
<delete file="${junit4-jack.dist.dir}/${junit4-jack.libname}" />
</target>
<target name="junit4-jack-lib" depends="hamcrest-core-jack-lib">
<!-- project layout -->
<mkdir dir="${junit4-jack.build.outdir}"/>
<mkdir dir="${junit4-jack.dist.dir}"/>
<!-- compile -->
<java jar="${jack.dist.dir}/${jack.execname}" fork="true" failonerror="true">
<arg value="--verbose"/>
<arg value="error"/>
<arg value="--classpath"/>
<arg value="${jack.prebuilts.dir}/${core-stubs-mini.jack.libname}:${hamcrest-core-jack.dist.dir}/${hamcrest-core-jack.libname}"/>
<arg value="--output-jack"/>
<arg value="${junit4-jack.dist.dir}/${junit4-jack.libname}"/>
<arg value="${junit4.dir}/src/main/java"/>
</java>
<copy file="${junit4-jack.dist.dir}/${junit4-jack.libname}" todir="${jack-tests.prebuilts.dir}" />
</target>
<!-- ******************* -->
<!-- hamcrest-core-lib -->
<!-- ******************* -->
<property name="hamcrest-core.build.dir" value="${hamcrest-core.dir}/build" />
<property name="hamcrest-core.build.outdir" value="${hamcrest-core.build.dir}/classes" />
<property name="hamcrest-core.dist.dir" value="${hamcrest-core.dir}/dist" />
<property name="hamcrest-core.libname" value="hamcrest-core-lib.jar" />
<target name="hamcrest-core-lib-clean">
<delete dir="${hamcrest-core.build.dir}" />
<delete dir="${hamcrest-core.dist.dir}" />
</target>
<target name="hamcrest-core-lib">
<!-- project layout -->
<mkdir dir="${hamcrest-core.build.outdir}"/>
<mkdir dir="${hamcrest-core.dist.dir}"/>
<!-- compile -->
<dependset>
<sources>
<fileset dir="${hamcrest-core.dir}/src" />
</sources>
<targets>
<fileset dir="${hamcrest-core.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8"
srcdir="${hamcrest-core.dir}/src"
destdir="${hamcrest-core.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false" nowarn="true"/>
<!-- package -->
<jar destfile="${hamcrest-core.dist.dir}/${hamcrest-core.libname}"
basedir="${hamcrest-core.build.outdir}"
includes="**"/>
</target>
<!-- ************************ -->
<!-- hamcrest-core-jack-lib -->
<!-- ************************ -->
<property name="hamcrest-core-jack.build.dir" value="${hamcrest-core.dir}/build" />
<property name="hamcrest-core-jack.build.outdir" value="${hamcrest-core-jack.build.dir}/classes" />
<property name="hamcrest-core-jack.dist.dir" value="${hamcrest-core-jack.dir}/dist" />
<property name="hamcrest-core-jack.libname" value="hamcrest-core-jack-lib.zip" />
<target name="hamcrest-core-jack-lib-clean">
<delete dir="${hamcrest-core-jack.build.dir}" />
<delete dir="${hamcrest-core-jack.dist.dir}" />
</target>
<target name="hamcrest-core-jack-lib">
<!-- project layout -->
<mkdir dir="${hamcrest-core-jack.build.outdir}"/>
<mkdir dir="${hamcrest-core-jack.dist.dir}"/>
<!-- compile -->
<java jar="${jack.dist.dir}/${jack.execname}" fork="true" failonerror="true">
<arg value="--verbose"/>
<arg value="error"/>
<arg value="--classpath"/>
<arg value="${jack.prebuilts.dir}/${core-stubs-mini.jack.libname}"/>
<arg value="--output-jack"/>
<arg value="${hamcrest-core-jack.dist.dir}/${hamcrest-core-jack.libname}"/>
<arg value="${hamcrest-core.dir}/src"/>
</java>
</target>
<!-- *************** -->
<!-- dexcomparator -->
<!-- *************** -->
<property name="dexcomparator.execname" value="dexcomparator.jar" />
<property name="dexcomparator.build.dir" value="${dexcomparator.dir}/build" />
<property name="dexcomparator.libs.dir" value="${dexcomparator.dir}/libs" />
<property name="dexcomparator.build.outdir" value="${dexcomparator.build.dir}/classes" />
<property name="dexcomparator.dist.dir" value="${dexcomparator.dir}/dist" />
<target name="dexcomparator-clean">
<delete dir="${dexcomparator.build.dir}" />
<delete dir="${dexcomparator.libs.dir}" />
<delete dir="${dexcomparator.dist.dir}" />
</target>
<target name="dexcomparator-compile" depends="dx-lib,dex-lib,jsr305-lib,guava-lib,args4j-lib">
<!-- project layout -->
<mkdir dir="${dexcomparator.build.outdir}"/>
<mkdir dir="${dexcomparator.libs.dir}"/>
<mkdir dir="${dexcomparator.dist.dir}"/>
<!-- fetch dependencies -->
<copy todir="${dexcomparator.libs.dir}" flatten="true">
<filelist dir="/">
<file name="${dx.dist.dir}/${dx.libname}" />
<file name="${dexlib.dist.dir}/${dexlib.libname}" />
<file name="${jsr305.dist.dir}/${jsr305.libname}" />
<file name="${guava.dist.dir}/${guava.libname}" />
<file name="${args4j.dist.dir}/${args4j.libname}" />
</filelist>
</copy>
<!-- compile -->
<dependset>
<sources>
<!-- All source files -->
<fileset dir="${dexcomparator.dir}/src" />
<fileset dir="${dexcomparator.libs.dir}">
<include name="**/*.jar"/>
</fileset>
</sources>
<targets>
<fileset dir="${dexcomparator.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8"
srcdir="${dexcomparator.dir}/src"
destdir="${dexcomparator.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false">
<compilerarg line="-Xlint:-options"/>
<classpath>
<fileset dir="${dexcomparator.libs.dir}">
<include name="**/*.jar"/>
</fileset>
</classpath>
</javac>
</target>
<target name="dexcomparator" depends="dexcomparator-compile">
<jar destfile="${dexcomparator.dist.dir}/${dexcomparator.execname}"
manifest="${dexcomparator.dir}/etc/manifest.txt"
basedir="${dexcomparator.build.outdir}" includes="**">
<zipgroupfileset dir="${dexcomparator.dir}/libs" includes="**/*.jar" />
</jar>
</target>
<!-- ******************* -->
<!-- dexcomparator-lib -->
<!-- ******************* -->
<property name="dexcomparator.libname" value="dexcomparator-lib.jar" />
<target name="dexcomparator-lib" depends="dexcomparator-compile">
<!-- package -->
<jar destfile="${dexcomparator.dist.dir}/${dexcomparator.libname}"
basedir="${dexcomparator.build.outdir}"
includes="**"/>
</target>
<!-- ******************* -->
<!-- dex-lib -->
<!-- ******************* -->
<property name="dexlib.build.dir" value="${dexlib.dir}/build" />
<property name="dexlib.build.outdir" value="${dexlib.build.dir}/classes" />
<property name="dexlib.dist.dir" value="${dexlib.dir}/dist" />
<property name="dexlib.libname" value="dex-lib.jar" />
<property name="dexlib.version" value="1.4.2" />
<target name="dex-lib-clean">
<delete dir="${dexlib.build.dir}" />
<delete dir="${dexlib.dist.dir}" />
</target>
<target name="dex-lib-compile" depends="guava-lib,jsr305-lib">
<!-- project layout -->
<mkdir dir="${dexlib.build.outdir}"/>
<mkdir dir="${dexlib.dist.dir}"/>
<!-- compile -->
<filelist id="dex-lib-compile.classpath" dir="/">
<file name="${guava.dist.dir}/${guava.libname}"/>
<file name="${jsr305.dist.dir}/${jsr305.libname}"/>
</filelist>
<dependset>
<sources>
<fileset dir="${dexlib.dir}/src/main/java" />
<filelist refid="dex-lib-compile.classpath" />
</sources>
<targets>
<fileset dir="${dexlib.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8"
srcdir="${dexlib.dir}/src/main/java"
destdir="${dexlib.build.outdir}"
source="1.6" target="1.6"
debug="true" includeantruntime="false" includeDestClasses="false" nowarn="true"
updatedproperty="dexlib.updated">
<classpath>
<filelist refid="dex-lib-compile.classpath" />
</classpath>
</javac>
</target>
<target name="dex-lib" depends="dex-lib-compile" if="dexlib.updated" >
<!-- generate dexlib.properties -->
<echo message="application.version=${dexlib.version}"
file="${dexlib.build.outdir}/dexlib.properties"/>
<!-- package -->
<jar destfile="${dexlib.dist.dir}/${dexlib.libname}"
basedir="${dexlib.build.outdir}"
includes="**"/>
</target>
<!-- ******************* -->
<!-- jack-default-lib -->
<!-- ******************* -->
<property name="jack-default-lib.build.outdir" value="${jack.dir}/build/default-lib/jack-lib"/>
<target name="jack-default-lib-clean">
<delete dir="${jack-default-lib.build.outdir}" />
</target>
<target name="jack-default-lib.check">
<uptodate property="jack-default-lib.uptodate"
targetfile="${jack-default-lib.build.outdir}">
<srcfiles dir="${jack.dir}/src" includes="com/android/jack/annotations/*.java"/>
<srcfiles file="${jack.intermediate.dist.dir}/${jack.intermediatename}"/>
<srcfiles file="${jack.prebuilts.dir}/${core-stubs-mini.jack.libname}"/>
</uptodate>
</target>
<target name="jack-default-lib" depends="jack-intermediate,jack-default-lib.check" unless="jack-default-lib.uptodate">
<delete dir="${jack-default-lib.build.outdir}" quiet="true"/>
<mkdir dir="${jack-default-lib.build.outdir}"/>
<fileset id="jack-default-lib.src.fileset" dir="${jack.dir}/src" includes="com/android/jack/annotations/*.java"/>
<pathconvert property="jack-default-lib.src.list" pathsep=" " refid="jack-default-lib.src.fileset" />
<java jar="${jack.intermediate.dist.dir}/${jack.intermediatename}" fork="true" failonerror="true">
<arg value="--verbose"/>
<arg value="error"/>
<arg value="-D"/>
<arg value="jack.classpath.default-libraries=false"/>
<arg value="--classpath"/>
<arg value="${jack.prebuilts.dir}/${core-stubs-mini.jack.libname}"/>
<arg value="--output-jack-dir"/>
<arg value="${jack-default-lib.build.outdir}"/>
<arg line="${jack-default-lib.src.list}"/>
</java>
</target>
<!-- ******************* -->
<!-- core-stubs-mini -->
<!-- ******************* -->
<property name="core-stubs-mini.dist.dir" value="${core-stubs-mini.dir}/dist"/>
<property name="core-stubs-mini.build.dir" value="${core-stubs-mini.dir}/build"/>
<property name="core-stubs-mini.build.outdir" value="${core-stubs-mini.build.dir}/classes"/>
<property name="core-stubs-mini.libname" value="core-stubs-mini.jar"/>
<property name="core-stubs-mini.jack.libname" value="core-stubs-mini.jack"/>
<target name="core-stubs-mini-clean">
<delete dir="${core-stubs-mini.build.dir}" />
<delete dir="${core-stubs-mini.dist.dir}" />
</target>
<target name="core-stubs-mini-check">
<uptodate property="core-stubs-mini.uptodate"
targetfile="${core-stubs-mini.dist.dir}/${core-stubs-mini.jack.libname}">
<srcfiles dir="${core-stubs-mini.dir}/src">
<include name="**/*.java"/>
</srcfiles>
</uptodate>
</target>
<target name="core-stubs-mini" depends="jack-intermediate,core-stubs-mini-check" unless="core-stubs-mini.uptodate">
<mkdir dir="${core-stubs-mini.dist.dir}"/>
<mkdir dir="${core-stubs-mini.build.outdir}"/>
<fileset dir="${core-stubs-mini.dir}/src">
<include name="**/*.java"/>
</fileset>
<java jar="${jack.intermediate.dist.dir}/${jack.intermediatename}" fork="true" failonerror="true">
<arg value="--verbose"/>
<arg value="error"/>
<arg value="-D"/>
<arg value="jack.classpath.default-libraries=false"/>
<arg value="--output-jack"/>
<arg value="${core-stubs-mini.dist.dir}/${core-stubs-mini.jack.libname}"/>
<arg value="${core-stubs-mini.dir}/src"/>
</java>
<dependset>
<sources>
<!-- All source files -->
<fileset dir="${core-stubs-mini.dir}/src" />
</sources>
<targets>
<fileset dir="${core-stubs-mini.build.outdir}"/>
</targets>
</dependset>
<javac encoding="UTF-8"
srcdir="${core-stubs-mini.dir}/src"
destdir="${core-stubs-mini.build.outdir}"
source="1.6" target="1.6" debug="true" includeantruntime="false" includeDestClasses="false"
nowarn="true"/>
<jar destfile="${core-stubs-mini.dist.dir}/${core-stubs-mini.libname}"
basedir="${core-stubs-mini.build.outdir}"
includes="**"/>
<filelist id="core-stubs-mini.result.libs" dir="/">
<file name="${core-stubs-mini.dist.dir}/${core-stubs-mini.libname}"/>
<file name="${core-stubs-mini.dist.dir}/${core-stubs-mini.jack.libname}"/>
</filelist>
<copy todir="${jack-tests.prebuilts.dir}" flatten="true">
<filelist refid="core-stubs-mini.result.libs" />
</copy>
<copy todir="${jack.prebuilts.dir}" flatten="true">
<filelist refid="core-stubs-mini.result.libs" />
</copy>
</target>
<!-- ******************* -->
<!-- tests -->
<!-- ******************* -->
<property name="jack.tests.output" value="${jack-project.dir}/tests-results"/>
<condition property="jack.tests.assertions" value="-da" else="-ea">
<istrue value="${tests.disable-assertions}"/>
</condition>
<filelist id="jack.junit.tests.classpath" dir="/">
<file name="${jack-tests.dist.dir}/${jack-tests.execname}" />
<file name="${ddm-lib.dist.dir}/${ddm-lib.libname}" />
</filelist>
<target name="test-jack-clean" >
<delete dir="${jack.tests.output}"/>
</target>
<target name="tests-check-config">
<fail message="tests.config is undefined" unless="tests.config" />
</target>
<target name="tests-check-name">
<fail message="test.name is undefined" unless="test.name" />
</target>
<target name="test-jack-by-name" description="run Jack tests with name passed via -Dtest.name"
depends="tests-check-config, tests-check-name, jack-tests, test-jack-by-name-no-dep">
</target>
<target name="test-jack-by-name-no-dep">
<mkdir dir="${jack.tests.output}/test-jack-by-name/html"/>
<junit fork="yes" failureproperty="test-jack.failure">
<formatter type="xml"/>
<jvmarg value="-Dtests.config=${tests.config}"/>
<jvmarg value="${jack.tests.assertions}"/>
<classpath>
<filelist refid="jack.junit.tests.classpath" />
</classpath>
<test name="${test.name}"
todir="${jack.tests.output}/test-jack-by-name/"
outfile="test-jack-by-name" />
</junit>
<junitreport todir="${jack.tests.output}/test-jack-by-name">
<fileset dir="${jack.tests.output}/test-jack-by-name">
<include name="test-jack-by-name.xml"/>
</fileset>
<report format="frames" todir="${jack.tests.output}/test-jack-by-name/html"/>
</junitreport>
<fail message="TESTS FAILED" if="test-jack.failure" />
</target>
<target name="test-jack" description="run Jack tests that must pass before submitting a change"
depends="tests-check-config, jack-tests, test-jack-nodep">
</target>
<target name="test-jack-nodep">
<mkdir dir="${jack.tests.output}/test-jack/html"/>
<junit fork="yes" failureproperty="test-jack.failure">
<formatter type="xml"/>
<jvmarg value="-Dtests.config=${tests.config}"/>
<jvmarg value="${jack.tests.assertions}"/>
<classpath>
<filelist refid="jack.junit.tests.classpath" />
</classpath>
<test name="com.android.jack.PreSubmitTests"
todir="${jack.tests.output}/test-jack/"
outfile="test-jack" />
</junit>
<junitreport todir="${jack.tests.output}/test-jack">
<fileset dir="${jack.tests.output}/test-jack">
<include name="test-jack.xml"/>
</fileset>
<report format="frames" todir="${jack.tests.output}/test-jack/html"/>
</junitreport>
<fail message="TESTS FAILED" if="test-jack.failure" />
</target>
<target name="test-jack-long" depends="tests-check-config, jack-tests, test-jack-long-nodep">
</target>
<target name="test-jack-long-nodep">
<mkdir dir="${jack.tests.output}/test-jack-long/html"/>
<junit fork="yes" failureproperty="test-jack.failure">
<formatter type="xml"/>
<jvmarg value="-Dtests.config=${tests.config}"/>
<jvmarg value="${jack.tests.assertions}"/>
<classpath>
<filelist refid="jack.junit.tests.classpath" />
</classpath>
<test name="com.android.jack.LongLastingTests"
todir="${jack.tests.output}/test-jack-long/"
outfile="test-jack-long" />
</junit>
<junitreport todir="${jack.tests.output}/test-jack-long">
<fileset dir="${jack.tests.output}/test-jack-long">
<include name="test-jack-long.xml"/>
</fileset>
<report format="frames" todir="${jack.tests.output}/test-jack-long/html"/>
</junitreport>
<fail message="TESTS FAILED" if="test-jack.failure" />
</target>
<target name="test-jack-all" depends="tests-check-config, jack-tests, test-jack-all-nodep">
</target>
<target name="test-jack-all-nodep">
<mkdir dir="${jack.tests.output}/test-jack-all/html"/>
<junit fork="yes" failureproperty="test-jack.failure">
<formatter type="xml"/>
<jvmarg value="-Dtests.config=${tests.config}"/>
<jvmarg value="${jack.tests.assertions}"/>
<classpath>
<filelist refid="jack.junit.tests.classpath" />
</classpath>
<test name="com.android.jack.AllWithJackTests"
todir="${jack.tests.output}/test-jack-all/"
outfile="test-jack-all" />
</junit>
<junitreport todir="${jack.tests.output}/test-jack-all">
<fileset dir="${jack.tests.output}/test-jack-all">
<include name="test-jack-all.xml"/>
</fileset>
<report format="frames" todir="${jack.tests.output}/test-jack-all/html"/>
</junitreport>
<fail message="TESTS FAILED" if="test-jack.failure" />
</target>
<target name="test-sched" depends="junit4,schedtests-lib,sched-lib,guava-lib,
freemarker-lib,maths-lib, test-sched-nodep">
</target>
<target name="test-sched-nodep" depends="junit4,schedtests-lib,sched-lib,guava-lib,
freemarker-lib,maths-lib">
<mkdir dir="${jack.tests.output}/test-sched/html"/>
<junit fork="yes" failureproperty="test-jack.failure">
<jvmarg value="-Dtests.config=${tests.config}"/>
<formatter type="xml"/>
<classpath>
<filelist dir="/">
<file name="${junit4.dist.dir}/${junit4.execname}"/>
<file name="${schedtests.dist.dir}/${schedtests.libname}"/>
<file name="${schedlib.dist.dir}/${schedlib.libname}"/>
<file name="${guava.dist.dir}/${guava.libname}"/>
<file name="${freemarker.dist.dir}/${freemarker.libname}"/>
<file name="${maths.dist.dir}/${maths.libname}"/>
<file name="${watchmaker.dist.dir}/${watchmaker.libname}"/>
</filelist>
</classpath>
<test name="com.android.sched.AllTests"
todir="${jack.tests.output}/test-sched/"
outfile="test-sched" />
</junit>
<junitreport todir="${jack.tests.output}/test-sched">
<fileset dir="${jack.tests.output}/test-sched">
<include name="test-sched.xml"/>
</fileset>
<report format="frames" todir="${jack.tests.output}/test-sched/html"/>
</junitreport>
<fail message="TESTS FAILED" if="test-jack.failure" />
</target>
</project>