Issue 370, allow custom response URLs
[zxing.git] / android / build.xml
index dd8fd7e..5892b8c 100644 (file)
@@ -130,8 +130,9 @@ limitations under the License.
 
   <!-- rules -->
 
-  <!-- Create the output directories if they don't exist yet. -->
-  <target name="dirs">
+  <!-- Create the output directories if they don't exist yet. All builds do a clean first
+  to prevent stale resources and to make ProGuard happy. -->
+  <target name="dirs" depends="clean">
     <echo>Creating output directories if needed...</echo>
     <mkdir dir="${resource-folder}" />
     <mkdir dir="${external-libs-folder}" />
@@ -185,31 +186,34 @@ limitations under the License.
       </classpath>
     </javac>
 
-    <!-- Optimize with ProGuard -->
     <unzip src="../core/core.jar" dest="${out-classes}" overwrite="true"/>
-    <jar jarfile="temp.jar" basedir="${out-classes}"/>
-    <delete dir="${out-classes}"/>
-    <mkdir dir="${out-classes}"/>
+
+    <antcall target="optimize"/>
+  </target>
+
+  <target name="optimize" unless="no-optimize">
+    <mkdir dir="optimized"/>
     <property name="libraryjars.path" refid="android.target.classpath"/>
     <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 temp-optimized.jar"/>
+      <jvmarg value="-Dmaximum.inlined.code.length=48"/>
+      <arg value="-injars ${out-classes}"/>
+      <arg value="-outjars optimized"/>
       <arg value="-libraryjars ${libraryjars.path}"/>
       <arg value="-keep class com.google.zxing.client.android.*Activity"/>
       <arg value="-keep class com.google.zxing.client.android.ViewfinderView { public * ; }"/>
-      <arg value="-keep class com.google.zxing.client.android.SearchBookContents* { public * ; }"/>
+      <arg value="-keep class com.google.zxing.client.android.book.SearchBookContents* { public * ; }"/>
+      <!-- This works around some strange Android/ProGuard problem verifying MaskUtil -->
+      <arg value="-keep class com.google.zxing.qrcode.encoder.MaskUtil { public * ; }"/>
       <arg value="-target 5"/>
-      <arg value="-optimizationpasses 7"/>
+      <arg value="-optimizationpasses 4"/>
       <arg value="-dontshrink"/>
       <arg value="-dontobfuscate"/>
       <arg value="-dontskipnonpubliclibraryclasses"/>
       <arg value="-verbose"/>
       <arg value="-dump proguard-dump.txt"/>
     </java>
-    <delete file="temp.jar"/>
-    <unzip src="temp-optimized.jar" dest="${out-classes}" overwrite="true"/>
-    <delete file="temp-optimized.jar"/>
+    <delete dir="${out-classes}"/>
+    <move file="optimized" tofile="${out-classes}"/>
   </target>
 
   <!-- Convert this project's .class files into .dex files. -->