<!-- Intermediate files -->
<property name="dex-file" value="classes.dex"/>
- <property name="intermediate-dex" value="${outdir}/${dex-file}"/>
+ <property name="intermediate-dex" location="${outdir}/${dex-file}"/>
<!-- The final package file to generate -->
<property name="out-package" value="${outdir}/BarcodeReader.apk"/>
<!-- Tools -->
<property name="aapt" value="${android-tools}/aapt"/>
<property name="aidl" value="${android-tools}/aidl"/>
- <property name="dx" value="${android-tools}/dx"/>
+ <!-- dx is a special case as it is a .bat file on Windows -->
+ <condition property="dx" value="${android-tools}/dx.bat" else="${android-tools}/dx">
+ <os family="windows"/>
+ </condition>
<property name="adb" value="${android-tools}/adb" />
<property name="android-jar" value="${sdk-folder}/android.jar" />
<property name="zip" value="zip"/>
<target name="init">
<tstamp/>
- <fail message="Please set 'android-home' in build.properties">
+ <fail message="Please set 'android-m5-home' in build.properties">
<condition>
<not>
<available file="${android-home}" type="dir"/>
<target name="optimize" depends="compile" unless="debug">
<jar basedir="${outdir-classes}" destfile="temp.jar"/>
<java jar="${WTK-home}/bin/proguard.jar" fork="true" failonerror="true">
- <jvmarg value="-Dmaximum.inlined.code.length=32"/>
- <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"/>
- <arg value="-optimizationpasses 7"/>
- <arg value="-overloadaggressively"/>
- <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"/>
+ <jvmarg value="-Dmaximum.inlined.code.length=32"/>
+ <arg value="-injars temp.jar"/>
+ <arg value="-outjars optimized.jar"/>
+ <arg value="-libraryjars ${android-jar}"/>
+ <arg value="-dontpreverify"/>
+ <arg value="-dontobfuscate"/>
+ <!-- Temporary workaround to keep important stuff in the client, while inlining core. -->
+ <arg value="-keep class com.google.zxing.client.android.BarcodeReaderCaptureActivity { *; }"/>
+ <arg value="-keep class com.google.zxing.client.android.CameraManager { *; }"/>
+ <arg value="-keep class com.google.zxing.client.android.CameraThread { *; }"/>
+ <arg value="-optimizationpasses 7"/>
+ <arg value="-overloadaggressively"/>
+ <arg value="-verbose"/>
+ <!-- Needed to allow getters which refer to private members to be inlined. -->
+ <arg value="-allowaccessmodification"/>
+ </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>
<!-- Convert this project's .class files into .dex files. -->
<target name="dex" depends="compile, optimize">
- <condition property="locals" value="full">
+ <condition property="locals" value="full" else="none">
<isset property="debug"/>
</condition>
- <condition property="locals" value="none">
- <not>
- <isset property="debug"/>
- </not>
- </condition>
- <condition property="positions" value="lines">
+ <condition property="positions" value="lines" else="none">
<isset property="debug"/>
</condition>
- <condition property="positions" value="none">
- <not>
- <isset property="debug"/>
- </not>
- </condition>
<exec executable="${dx}" failonerror="true">
- <arg value="-JXmx384M"/>
<arg value="--dex"/>
<arg value="--output=${intermediate-dex}"/>
<arg value="--locals=${locals}"/>