Issue 439: be more lax and don't look for END
[zxing.git] / javame / build.xml
index 2292e41..aefb989 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!--
- Copyright 2007 Google Inc.
+ Copyright 2007 ZXing authors
 
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
 
   <path id="wtk-build-path">
     <fileset dir="${WTK-home}/lib">
+      <!-- These are used with WTK 2.5.x -->
+      <!--
       <include name="cldcapi11.jar"/>
       <include name="midpapi20.jar"/>
       <include name="mmapi.jar"/>
       <include name="jsr234.jar"/>
       <include name="satsa-apdu.jar"/>
+      -->
+      <include name="cldc_1.1.jar"/>
+      <include name="midp_2.0.jar"/>
+      <include name="jsr135_1.2.jar"/>
+      <include name="jsr234_1.0.jar"/>
     </fileset>
     <pathelement location="../core/core.jar"/>
   </path>
 
   <path id="javame-compile-bootclasspath">
     <fileset dir="${WTK-home}/lib">
+      <!-- These are used with WTK 2.5.x -->
+      <!--
       <include name="cldcapi11.jar"/>
       <include name="midpapi20.jar"/>
+      -->
+      <include name="cldc_1.1.jar"/>
+      <include name="midp_2.0.jar"/>
     </fileset>
   </path>
   <property name="javame-compile-bootclasspath-path" refid="javame-compile-bootclasspath"/>
         </not>
       </condition>
     </fail>
-    <fail message="Please put proguard.jar in 'bin' under the WTK install directory">
+    <fail message="Please set 'proguard.jar' in build.properties">
       <condition>
         <not>
-          <available file="${WTK-home}/bin/proguard.jar" type="file"/>
+          <available file="${proguard-jar}" type="file"/>
+        </not>
+      </condition>
+    </fail>
+    <fail message="Please build 'core' first">
+      <condition>
+        <not>
+          <available file="../core/core.jar" type="file"/>
         </not>
       </condition>
     </fail>
   </target>
 
-  <target name="compile" depends="init">
-    <mkdir dir="build"/>
-    <javac srcdir="src"
-           destdir="build"
-           source="1.2"
-           target="1.2"
-           bootclasspath="${javame-compile-bootclasspath-path}"
-           optimize="true"
-           debug="true"
-           deprecation="true"
-           fork="true">
-      <classpath refid="wtk-build-path"/>
-    </javac>
-  </target>
-
-  <target name="compile-basic" depends="init">
+  <target name="build" depends="init">
     <mkdir dir="build"/>
-    <!-- For an explanation of this odd build command, see javadoc in
-         src/com/google/zxing/client/j2me/AdvancedMultimediaManager.java -->
-    <javac srcdir="src-basic"
-           destdir="build"
-           source="1.2"
-           target="1.2"
-           bootclasspath="${javame-compile-bootclasspath-path}"
-           optimize="true"
-           debug="true"
-           deprecation="true"
-           fork="true">
-       <classpath refid="wtk-build-path"/>
-    </javac>
     <javac srcdir="src"
            destdir="build"
            source="1.2"
            deprecation="true"
            fork="true">
       <classpath refid="wtk-build-path"/>
-      <exclude name="com/google/zxing/client/j2me/AdvancedMultimediaManager.java"/>
     </javac>
-  </target>
+    <jar jarfile="javame.jar" basedir="build"/>
 
-  <target name="package">
     <unzip src="../core/core.jar" dest="build"/>
 
+    <!--
     <mkdir dir="build-j2me"/>
-    <exec executable="${WTK-home}/bin/preverify1.1">
-      <arg line="-classpath ${preverify-classpath} -d build-j2me build"/>
+    <exec executable="${WTK-home}/bin/preverify1.1" failonerror="true">
+      <arg line="-classpath '${preverify-classpath}' -d build-j2me build"/>
     </exec>
+    -->
+    <copy todir="build-j2me">
+      <fileset dir="build"/>
+    </copy>
 
     <copy todir="build-j2me">
       <fileset dir=".">
       </fileset>
     </copy>
 
-    <copy file="src/com/google/zxing/client/j2me/MANIFEST.MF.template" tofile="src/com/google/zxing/client/j2me/MANIFEST.MF" overwrite="true">
+    <copy file="src/com/google/zxing/client/j2me/MANIFEST.MF.template"
+          tofile="src/com/google/zxing/client/j2me/MANIFEST.MF" overwrite="true">
       <filterset>
-        <filter token="APP_NAME" value="${jar-name}"/>
+        <filter token="APP_NAME" value="BarcodeReader"/>
         <filter token="VERSION" value="${version}"/>
       </filterset>
     </copy>
 
-    <jar jarfile="${jar-name}.jar" basedir="build-j2me" manifest="src/com/google/zxing/client/j2me/MANIFEST.MF" level="9"/>
+    <jar jarfile="BarcodeReader.jar" basedir="build-j2me" manifest="src/com/google/zxing/client/j2me/MANIFEST.MF"/>
 
-    <move file="${jar-name}.jar" tofile="temp.jar"/>
-    <java jar="${WTK-home}/bin/proguard.jar" fork="true">
+    <move file="BarcodeReader.jar" tofile="temp.jar"/>
+    <java jar="${proguard-jar}" fork="true" failonerror="true">
+      <jvmarg value="-Dmaximum.inlined.code.length=32"/>
       <arg value="-injars temp.jar"/>
-      <arg value="-outjars ${jar-name}.jar"/>
-      <arg value="-libraryjars ${preverify-classpath}"/>
+      <arg value="-outjars BarcodeReader.jar"/>
+      <!-- These are used with WTK 2.5.x -->
+      <!--
+      <arg value="-libraryjars ${WTK-home}/lib/cldcapi11.jar"/>
+      <arg value="-libraryjars ${WTK-home}/lib/midpapi20.jar"/>
+      <arg value="-libraryjars ${WTK-home}/lib/mmapi.jar"/>
+      <arg value="-libraryjars ${WTK-home}/lib/jsr234.jar"/>
+      -->
+      <arg value="-libraryjars ${WTK-home}/lib/cldc_1.1.jar"/>
+      <arg value="-libraryjars ${WTK-home}/lib/midp_2.0.jar"/>
+      <arg value="-libraryjars ${WTK-home}/lib/jsr135_1.2.jar"/>
+      <arg value="-libraryjars ${WTK-home}/lib/jsr234_1.0.jar"/>
       <arg value="-microedition"/>
       <arg value="-keep public class com.google.zxing.client.j2me.ZXingMIDlet"/>
-      <arg value="-keep public class com.google.zxing.qrcode.deteor.DefaultGridSampler"/>
-      <arg value="-keep public class com.google.zxing.qrcode.detector.GridSampler"/>
+      <arg value="-keep class com.google.zxing.client.j2me.AdvancedMultimediaManager"/>
+      <arg value="-keep class com.google.zxing.client.j2me.DefaultMultimediaManager"/>
+      <arg value="-keep class com.google.zxing.client.j2me.MultimediaManager"/>      
       <arg value="-optimizationpasses 5"/>
+      <arg value="-overloadaggressively"/>
+      <arg value="-allowaccessmodification"/>
       <arg value="-verbose"/>
+      <arg value="-dump proguard-dump.txt"/>
     </java>
     <delete file="temp.jar"/>
 
     <!-- get .jar size to include it in the .jad file -->
-    <length file="${jar-name}.jar" property="jar-size"/>
+    <length file="BarcodeReader.jar" property="jar-size"/>
 
-    <copy file="ZXingReader.jad.template" tofile="${jar-name}.jad" overwrite="true">
+    <copy file="BarcodeReader.jad.template" tofile="BarcodeReader.jad" overwrite="true">
       <filterset>
         <filter token="JAR_SIZE" value="${jar-size}"/>
-        <filter token="APP_NAME" value="${jar-name}"/>
+        <filter token="APP_NAME" value="BarcodeReader"/>
         <filter token="VERSION" value="${version}"/>
       </filterset>
     </copy>
 
   </target>
 
-  <target name="build">
-    <description>Builds the main reader .jar file</description>
-    <property name="jar-name" value="ZXingReader"/>
-    <antcall target="clean"/>
-    <antcall target="compile"/>
-    <antcall target="package"/>
-  </target>
-
-  <target name="build-basic">
-    <description>Builds the basic reader .jar file</description>
-    <property name="jar-name" value="ZXingReaderBasic"/>
-    <antcall target="clean"/>
-    <antcall target="compile-basic"/>
-    <antcall target="package"/>
+  <target name="dump">
+    <java jar="${proguard-jar}" fork="true">
+      <arg value="-injars BarcodeReader.jar"/>
+      <!-- These are used with WTK 2.5.x -->
+      <!--
+      <arg value="-libraryjars ${WTK-home}/lib/cldcapi11.jar"/>
+      <arg value="-libraryjars ${WTK-home}/lib/midpapi20.jar"/>
+      <arg value="-libraryjars ${WTK-home}/lib/mmapi.jar"/>
+      <arg value="-libraryjars ${WTK-home}/lib/jsr234.jar"/>
+      -->
+      <arg value="-libraryjars ${WTK-home}/lib/cldc_1.1.jar"/>
+      <arg value="-libraryjars ${WTK-home}/lib/midp_2.0.jar"/>
+      <arg value="-libraryjars ${WTK-home}/lib/jsr135_1.2.jar"/>
+      <arg value="-libraryjars ${WTK-home}/lib/jsr234_1.0.jar"/>
+      <arg value="-dontshrink"/>
+      <arg value="-dontobfuscate"/>
+      <arg value="-dontoptimize"/>
+      <arg value="-dump dump.txt"/>
+    </java>
   </target>
 
   <target name="clean">
     <delete dir="build"/>
     <delete dir="build-j2me"/>
     <delete dir="." includes="*.jar"/>
-    <delete dir="." includes="*.jad"/>    
+    <delete dir="." includes="*.jad"/>
+    <delete file="src/com/google/zxing/client/j2me/MANIFEST.MF"/>
+    <delete file="proguard-dump.txt"/>
   </target>
 
 </project>