Use version when creating manfiest/.jad files
[zxing.git] / javame / build.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!--
4  Copyright 2007 Google Inc.
5
6  Licensed under the Apache License, Version 2.0 (the "License");
7  you may not use this file except in compliance with the License.
8  You may obtain a copy of the License at
9
10       http://www.apache.org/licenses/LICENSE-2.0
11
12  Unless required by applicable law or agreed to in writing, software
13  distributed under the License is distributed on an "AS IS" BASIS,
14  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  See the License for the specific language governing permissions and
16  limitations under the License.
17 -->
18
19 <project name="javame" default="build">
20
21   <property file="../build.properties"/>
22
23   <path id="wtk-build-path">
24     <fileset dir="${WTK-home}/lib">
25       <include name="cldcapi11.jar"/>
26       <include name="midpapi20.jar"/>
27       <include name="mmapi.jar"/>
28       <include name="jsr234.jar"/>
29       <include name="satsa-apdu.jar"/>
30     </fileset>
31     <pathelement location="../core/core.jar"/>
32   </path>
33
34   <target name="init">
35     <tstamp/>
36     <fail message="Please set 'JDK1.4-classes' in build.properties">
37       <condition>
38         <not>
39           <available file="${JDK1.4-classes}" type="file"/>
40         </not>
41       </condition>
42     </fail>
43     <fail message="Please set 'WTK-home' in build.properties">
44       <condition>
45         <not>
46           <available file="${WTK-home}" type="dir"/>
47         </not>
48       </condition>
49     </fail>
50   </target>
51
52   <target name="compile" depends="init">
53     <mkdir dir="build"/>
54     <javac srcdir="src"
55            destdir="build"
56            source="1.4"
57            target="1.4"
58            bootclasspath="${JDK1.4-classes}"
59            optimize="true"
60            debug="true"
61            deprecation="true"
62            fork="true">
63       <classpath refid="wtk-build-path"/>
64     </javac>
65   </target>
66
67   <target name="compile-basic" depends="init">
68     <mkdir dir="build"/>
69     <!-- For an explanation of this odd build command, see javadoc in
70          src/com/google/zxing/client/j2me/AdvancedMultimediaManager.java -->
71     <javac srcdir="src-basic"
72            destdir="build"
73            source="1.4"
74            target="1.4"
75            bootclasspath="${JDK1.4-classes}"
76            optimize="true"
77            debug="true"
78            deprecation="true"
79            fork="true">
80        <classpath refid="wtk-build-path"/>
81     </javac>
82     <javac srcdir="src"
83            destdir="build"
84            source="1.4"
85            target="1.4"
86            bootclasspath="${JDK1.4-classes}"
87            optimize="true"
88            debug="true"
89            deprecation="true"
90            fork="true">
91       <classpath refid="wtk-build-path"/>
92       <exclude name="com/google/zxing/client/j2me/AdvancedMultimediaManager.java"/>
93     </javac>
94   </target>
95
96   <target name="package">
97     <unzip src="../core/core.jar" dest="build"/>
98
99     <mkdir dir="build-j2me"/>
100     <property name="preverify-classpath" refid="wtk-build-path"/>
101     <exec executable="${WTK-home}/bin/preverify1.1">
102       <arg line="-classpath ${preverify-classpath} -d build-j2me build"/>
103     </exec>
104
105     <copy todir="build-j2me">
106       <fileset dir=".">
107         <include name="res/**"/>
108       </fileset>
109     </copy>
110
111     <copy file="src/com/google/zxing/client/j2me/MANIFEST.MF.template" tofile="src/com/google/zxing/client/j2me/MANIFEST.MF" overwrite="true">
112       <filterset>
113         <filter token="APP_NAME" value="${jar-name}"/>
114         <filter token="VERSION" value="${version}"/>        
115       </filterset>
116     </copy>
117
118     <jar jarfile="${jar-name}.jar" basedir="build-j2me" manifest="src/com/google/zxing/client/j2me/MANIFEST.MF" level="9"/>
119
120     <!-- get .jar size to include it in the .jad file -->
121     <length file="${jar-name}.jar" property="jar-size"/>
122
123     <copy file="ZXingReader.jad.template" tofile="${jar-name}.jad" overwrite="true">
124       <filterset>
125         <filter token="JAR_SIZE" value="${jar-size}"/>
126         <filter token="APP_NAME" value="${jar-name}"/>
127         <filter token="VERSION" value="${version}"/>
128       </filterset>
129     </copy>
130
131   </target>
132
133   <target name="build">
134     <description>Builds the main reader .jar file</description>
135     <property name="jar-name" value="ZXingReader"/>
136     <antcall target="clean"/>
137     <antcall target="compile"/>
138     <antcall target="package"/>
139   </target>
140
141   <target name="build-basic">
142     <description>Builds the basic reader .jar file</description>
143     <property name="jar-name" value="ZXingReaderBasic"/>
144     <antcall target="clean"/>
145     <antcall target="compile-basic"/>
146     <antcall target="package"/>
147   </target>
148
149   <target name="clean">
150     <delete dir="build"/>
151     <delete dir="build-j2me"/>
152     <delete dir="." includes="*.jar"/>
153     <delete dir="." includes="*.jad"/>    
154   </target>
155
156 </project>