2008-03-28 09:54:29 -07:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
2008-02-14 12:21:33 -08:00
|
|
|
<!--
|
|
|
|
Copyright (C) 2008 Google Inc.
|
|
|
|
|
|
|
|
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.
|
|
|
|
-->
|
|
|
|
|
|
|
|
<!-- This is a mildly hacked version of the auto-generated project
|
|
|
|
build.xml file. -->
|
2008-03-31 13:55:38 -07:00
|
|
|
<project name="BarcodeReaderM5" default="package">
|
2008-02-14 12:21:33 -08:00
|
|
|
<property file="../build.properties"/>
|
|
|
|
<property name="sdk-folder" value="${android-home}"/>
|
|
|
|
<property name="android-tools" value="${sdk-folder}/tools"/>
|
2008-03-28 09:54:29 -07:00
|
|
|
<property name="android-framework" value="${android-tools}/lib/framework.aidl"/>
|
2008-02-14 12:21:33 -08:00
|
|
|
|
|
|
|
<!-- The intermediates directory -->
|
|
|
|
<!-- Eclipse uses "bin" for its own output, so we do the same. -->
|
|
|
|
<property name="outdir" value="bin"/>
|
|
|
|
|
|
|
|
<!-- No user servicable parts below. -->
|
|
|
|
|
|
|
|
<!-- Input directories -->
|
|
|
|
<property name="resource-dir" value="res"/>
|
|
|
|
<property name="asset-dir" value="assets"/>
|
|
|
|
<property name="srcdir" value="src"/>
|
|
|
|
|
|
|
|
<!-- Output directories -->
|
|
|
|
<property name="outdir-classes" value="${outdir}/classes"/>
|
|
|
|
|
|
|
|
<!-- Create R.java in the source directory -->
|
|
|
|
<property name="outdir-r" value="src"/>
|
|
|
|
|
|
|
|
<!-- Intermediate files -->
|
|
|
|
<property name="dex-file" value="classes.dex"/>
|
|
|
|
<property name="intermediate-dex" value="${outdir}/${dex-file}"/>
|
|
|
|
|
|
|
|
<!-- The final package file to generate -->
|
2008-03-31 13:55:38 -07:00
|
|
|
<property name="out-package" value="${outdir}/BarcodeReader.apk"/>
|
2008-02-14 12:21:33 -08:00
|
|
|
|
|
|
|
<!-- Tools -->
|
|
|
|
<property name="aapt" value="${android-tools}/aapt"/>
|
|
|
|
<property name="aidl" value="${android-tools}/aidl"/>
|
|
|
|
<property name="dx" value="${android-tools}/dx"/>
|
2008-03-28 09:54:29 -07:00
|
|
|
<property name="adb" value="${android-tools}/adb" />
|
|
|
|
<property name="android-jar" value="${sdk-folder}/android.jar" />
|
2008-02-14 12:21:33 -08:00
|
|
|
<property name="zip" value="zip"/>
|
|
|
|
|
|
|
|
<!-- Rules -->
|
|
|
|
|
|
|
|
<target name="init">
|
|
|
|
<tstamp/>
|
|
|
|
<fail message="Please set 'android-home' in build.properties">
|
|
|
|
<condition>
|
|
|
|
<not>
|
|
|
|
<available file="${android-home}" type="dir"/>
|
|
|
|
</not>
|
|
|
|
</condition>
|
|
|
|
</fail>
|
2008-02-14 12:25:54 -08:00
|
|
|
<fail message="Please build 'core' first">
|
2008-02-14 12:21:33 -08:00
|
|
|
<condition>
|
|
|
|
<not>
|
|
|
|
<available file="../core/core.jar" type="file"/>
|
|
|
|
</not>
|
|
|
|
</condition>
|
|
|
|
</fail>
|
2008-02-22 10:13:00 -08:00
|
|
|
<fail message="Please put proguard.jar in 'bin' under the WTK install directory">
|
|
|
|
<condition>
|
|
|
|
<and>
|
|
|
|
<not>
|
|
|
|
<isset property="debug"/>
|
|
|
|
</not>
|
|
|
|
<not>
|
|
|
|
<available file="${WTK-home}/bin/proguard.jar" type="file"/>
|
|
|
|
</not>
|
|
|
|
</and>
|
|
|
|
</condition>
|
|
|
|
</fail>
|
2008-02-14 12:21:33 -08:00
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- Create the output directories if they don't exist yet. -->
|
|
|
|
<target name="dirs">
|
|
|
|
<mkdir dir="${outdir}"/>
|
|
|
|
<mkdir dir="${outdir-classes}"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- Generate the R.java file for this project's resources. -->
|
|
|
|
<target name="resource-src" depends="dirs">
|
2008-03-19 13:23:10 -07:00
|
|
|
|
|
|
|
<copy file="strings.xml.template" tofile="res/values/strings.xml" overwrite="true">
|
|
|
|
<filterset>
|
|
|
|
<filter token="VERSION" value="${version}"/>
|
|
|
|
</filterset>
|
|
|
|
</copy>
|
|
|
|
|
2008-02-14 12:21:33 -08:00
|
|
|
<echo>Generating R.java...</echo>
|
|
|
|
<exec executable="${aapt}" failonerror="true">
|
|
|
|
<arg value="compile"/>
|
|
|
|
<arg value="-m"/>
|
|
|
|
<arg value="-J"/>
|
|
|
|
<arg value="${outdir-r}"/>
|
|
|
|
<arg value="-M"/>
|
|
|
|
<arg value="AndroidManifest.xml"/>
|
|
|
|
<arg value="-S"/>
|
|
|
|
<arg value="${resource-dir}"/>
|
|
|
|
<arg value="-I"/>
|
|
|
|
<arg value="${android-jar}"/>
|
|
|
|
</exec>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- Generate java classes from .aidl files. -->
|
|
|
|
<target name="aidl" depends="dirs">
|
|
|
|
<apply executable="${aidl}" failonerror="true">
|
2008-03-28 09:54:29 -07:00
|
|
|
<arg value="-p${android-framework}"/>
|
|
|
|
<arg value="-I${srcdir}"/>
|
2008-02-14 12:21:33 -08:00
|
|
|
<fileset dir="${srcdir}">
|
|
|
|
<include name="**/*.aidl"/>
|
|
|
|
</fileset>
|
|
|
|
</apply>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- Compile this project's .java files into .class files. -->
|
2008-02-22 11:32:35 -08:00
|
|
|
<target name="compile" depends="init, clean, dirs, resource-src, aidl">
|
2008-02-22 10:13:00 -08:00
|
|
|
<javac encoding="ascii" target="1.5" debug="true" optimize="true" extdirs=""
|
2008-02-14 12:21:33 -08:00
|
|
|
srcdir="."
|
|
|
|
destdir="${outdir-classes}"
|
|
|
|
bootclasspath="${android-jar}">
|
|
|
|
<classpath>
|
|
|
|
<pathelement location="../core/core.jar"/>
|
|
|
|
</classpath>
|
|
|
|
</javac>
|
|
|
|
<unzip src="../core/core.jar" dest="${outdir-classes}"/>
|
|
|
|
</target>
|
|
|
|
|
2008-02-22 10:13:00 -08:00
|
|
|
<target name="optimize" depends="compile" unless="debug">
|
2008-02-21 08:36:27 -08:00
|
|
|
<jar basedir="${outdir-classes}" destfile="temp.jar"/>
|
|
|
|
<java jar="${WTK-home}/bin/proguard.jar" fork="true" failonerror="true">
|
2008-03-25 11:23:49 -07:00
|
|
|
<jvmarg value="-Dmaximum.inlined.code.length=32"/>
|
2008-02-21 08:36:27 -08:00
|
|
|
<arg value="-injars temp.jar"/>
|
|
|
|
<arg value="-outjars optimized.jar"/>
|
|
|
|
<arg value="-libraryjars ${android-jar}"/>
|
|
|
|
<arg value="-dontpreverify"/>
|
|
|
|
<arg value="-dontobfuscate"/>
|
|
|
|
<arg value="-keep public class com.google.zxing.client.android.BarcodeReaderCaptureActivity"/>
|
2008-03-21 05:46:00 -07:00
|
|
|
<arg value="-optimizationpasses 7"/>
|
|
|
|
<arg value="-overloadaggressively"/>
|
2008-02-21 08:36:27 -08:00
|
|
|
<arg value="-verbose"/>
|
|
|
|
</java>
|
|
|
|
<delete file="temp.jar"/>
|
|
|
|
<delete dir="${outdir-classes}"/>
|
|
|
|
<mkdir dir="${outdir-classes}"/>
|
|
|
|
<unzip src="optimized.jar" dest="${outdir-classes}"/>
|
|
|
|
<delete file="optimized.jar"/>
|
|
|
|
</target>
|
|
|
|
|
2008-02-14 12:21:33 -08:00
|
|
|
<!-- Convert this project's .class files into .dex files. -->
|
2008-02-21 08:36:27 -08:00
|
|
|
<target name="dex" depends="compile, optimize">
|
2008-02-22 10:13:00 -08:00
|
|
|
|
2008-04-15 17:27:36 -07:00
|
|
|
<condition property="locals" value="full" else="none">
|
2008-02-22 10:13:00 -08:00
|
|
|
<isset property="debug"/>
|
|
|
|
</condition>
|
2008-04-15 17:27:36 -07:00
|
|
|
<condition property="positions" value="lines" else="none">
|
2008-02-22 10:13:00 -08:00
|
|
|
<isset property="debug"/>
|
|
|
|
</condition>
|
|
|
|
|
2008-02-14 12:21:33 -08:00
|
|
|
<exec executable="${dx}" failonerror="true">
|
|
|
|
<arg value="-JXmx384M"/>
|
|
|
|
<arg value="--dex"/>
|
|
|
|
<arg value="--output=${intermediate-dex}"/>
|
2008-02-22 10:13:00 -08:00
|
|
|
<arg value="--locals=${locals}"/>
|
|
|
|
<arg value="--positions=${positions}"/>
|
2008-03-28 09:54:29 -07:00
|
|
|
<arg path="${basedir}/${outdir-classes}"/>
|
2008-02-14 12:21:33 -08:00
|
|
|
</exec>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- Put the project's resources into the output package file. -->
|
|
|
|
<target name="package-res-and-assets">
|
|
|
|
<echo>Packaging resources and assets...</echo>
|
|
|
|
<exec executable="${aapt}" failonerror="true">
|
|
|
|
<arg value="package"/>
|
|
|
|
<arg value="-f"/>
|
|
|
|
<arg value="-c"/>
|
|
|
|
<arg value="-M"/>
|
|
|
|
<arg value="AndroidManifest.xml"/>
|
|
|
|
<arg value="-S"/>
|
|
|
|
<arg value="${resource-dir}"/>
|
|
|
|
<arg value="-A"/>
|
|
|
|
<arg value="${asset-dir}"/>
|
|
|
|
<arg value="-I"/>
|
|
|
|
<arg value="${android-jar}"/>
|
|
|
|
<arg value="${out-package}"/>
|
|
|
|
</exec>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- Same as package-res-and-assets, but without "-A ${asset-dir}" -->
|
|
|
|
<target name="package-res-no-assets">
|
|
|
|
<echo>Packaging resources...</echo>
|
|
|
|
<exec executable="${aapt}" failonerror="true">
|
|
|
|
<arg value="package"/>
|
|
|
|
<arg value="-f"/>
|
|
|
|
<arg value="-c"/>
|
|
|
|
<arg value="-M"/>
|
|
|
|
<arg value="AndroidManifest.xml"/>
|
|
|
|
<arg value="-S"/>
|
|
|
|
<arg value="${resource-dir}"/>
|
|
|
|
<!-- No assets directory -->
|
|
|
|
<arg value="-I"/>
|
|
|
|
<arg value="${android-jar}"/>
|
|
|
|
<arg value="${out-package}"/>
|
|
|
|
</exec>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- Invoke the proper target depending on whether or not
|
|
|
|
an assets directory is present. -->
|
|
|
|
<!-- TODO: find a nicer way to include the "-A ${asset-dir}" argument
|
|
|
|
only when the assets dir exists. -->
|
|
|
|
<target name="package-res">
|
|
|
|
<available file="${asset-dir}" type="dir"
|
|
|
|
property="res-target" value="and-assets"/>
|
|
|
|
<property name="res-target" value="no-assets"/>
|
|
|
|
<antcall target="package-res-${res-target}"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- Put the project's .class files into the output package file. -->
|
|
|
|
<target name="package-java" depends="compile, package-res">
|
|
|
|
<echo>Packaging java...</echo>
|
|
|
|
<jar destfile="${out-package}"
|
|
|
|
basedir="${outdir-classes}"
|
|
|
|
update="true"/>
|
|
|
|
</target>
|
|
|
|
|
2008-03-28 09:54:29 -07:00
|
|
|
<!-- Put the project's .dex files into the output package file.
|
|
|
|
Use the "zip" command, available on most un*x/Linux/MacOS systems,
|
|
|
|
to create the new package (Ant 1.7 has an internal 'zip' command,
|
|
|
|
however Ant 1.6.5 lacks it and is still widely installed.)
|
|
|
|
-->
|
2008-02-14 12:21:33 -08:00
|
|
|
<target name="package-dex" depends="dex, package-res">
|
|
|
|
<echo>Packaging dex...</echo>
|
|
|
|
<exec executable="${zip}" failonerror="true">
|
|
|
|
<arg value="-qj"/>
|
|
|
|
<arg value="${out-package}"/>
|
|
|
|
<arg value="${intermediate-dex}"/>
|
|
|
|
</exec>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- Create the package file for this project from the sources. -->
|
|
|
|
<target name="package" depends="package-dex"/>
|
2008-02-14 13:06:57 -08:00
|
|
|
|
2008-03-28 09:54:29 -07:00
|
|
|
<!-- Install package on the default emulator -->
|
|
|
|
<target name="install">
|
|
|
|
<echo>Sending package to default emulator...</echo>
|
|
|
|
<exec executable="${adb}" failonerror="true">
|
|
|
|
<arg value="install" />
|
|
|
|
<arg value="${out-package}" />
|
|
|
|
</exec>
|
|
|
|
</target>
|
|
|
|
|
2008-02-14 13:06:57 -08:00
|
|
|
<target name="clean">
|
|
|
|
<delete dir="${outdir}"/>
|
|
|
|
</target>
|
|
|
|
|
2008-02-14 12:21:33 -08:00
|
|
|
</project>
|