Build changes:

* ant build.xml produces 4 output jars: all-in-one jar, a "core" jar that
  should work under J2ME, an "extras" jar with classes that require J2SE,
  and the last jar provides the debug support for J2ME.
* Change the Eclipse .classpath to include WTK jars. Requires WTK_HOME
  classpath variable be set in Eclipse workspace.
This commit is contained in:
Ian Farmer
2007-10-23 21:06:51 +00:00
parent 504020beda
commit c3f17a3b5e
2 changed files with 90 additions and 42 deletions

View File

@@ -6,6 +6,7 @@
<classpathentry kind="src" path="src/test/res"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3.8.1"/>
<classpathentry combineaccessrules="false" kind="src" path="/wtk22"/>
<classpathentry kind="var" path="WTK_HOME/lib/cldcapi10.jar"/>
<classpathentry kind="var" path="WTK_HOME/lib/midpapi20.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

111
build.xml
View File

@@ -7,12 +7,14 @@
<target name="real-clean" depends="clean">
<delete file="luaj-vm-${version}.jar"/>
<delete file="luaj-vm-j2me-${version}.jar"/>
<delete file="luaj-vm-core-${version}.jar"/>
<delete file="luaj-vm-extras-${version}.jar"/>
<delete file="luaj-vm-debug-j2me-${version}.jar"/>
</target>
<target name="compile">
<mkdir dir="build/classes"/>
<javac destdir="build/classes" encoding="utf-8" source="1.3" target="1.1">
<mkdir dir="build/all/classes"/>
<javac destdir="build/all/classes" encoding="utf-8" source="1.3" target="1.1">
<src path="src/main/java" />
<src path="src/addon/java" />
<exclude name="lua/debug/j2me/**"/>
@@ -20,43 +22,88 @@
</target>
<target name="jar" depends="compile">
<jar destfile="luaj-vm-${version}.jar" basedir="build/classes"/>
<jar destfile="luaj-vm-${version}.jar" basedir="build/all/classes"/>
</target>
<taskdef resource="antenna.properties" />
<target name="module-jars" depends="find-wtk,j2me-jars-maybe,j2me-jars-skipped"/>
<target name="j2me" depends="clean">
<target name="j2me-jars-maybe" if="wtk.home">
<antcall target="j2me-jars" inheritrefs="true"/>
</target>
<!-- link to wireless toolkit -->
<property environment="env"/>
<property name="env.WTK_HOME" value="c:\WTK-2.2" />
<property name="wtk.home" value="${env.WTK_HOME}" />
<echo level="info">wtk.home: ${wtk.home}</echo>
<target name="j2me-jars-skipped" unless="wtk.home">
<echo>Skipping steps that require J2ME WTK.</echo>
</target>
<!-- set version of midp, cldc -->
<property name="wtk.cldc.version" value="1.1" />
<property name="wtk.midp.version" value="2.0" />
<property name="wtk.mmapi.enabled" value="true" />
<target name="j2me-jars" depends="wtk-or-fail,jar-core,jar-j2se-extras,jar-j2me-debug"/>
<!-- copy relevant sources -->
<mkdir dir="build/src-j2me" />
<copy todir="build/src-j2me">
<fileset dir="../luaj-vm/src/main/java">
<target name="jar-core" depends="compile-core">
<jar destfile="luaj-vm-core-${version}.jar" basedir="build/core/classes"/>
</target>
<target name="jar-j2se-extras" depends="compile-j2se-extras">
<jar destfile="luaj-vm-extras-j2se-${version}.jar" basedir="build/extras-j2se/classes"/>
</target>
<target name="jar-j2me-debug" depends="compile-j2me-debug">
<jar destfile="luaj-vm-debug-j2me-${version}.jar" basedir="build/extras-j2me/classes"/>
</target>
<target name="compile-core" depends="wtk-or-fail">
<mkdir dir="build/core/classes"/>
<javac destdir="build/core/classes" encoding="utf-8" source="1.3" target="1.1"
bootclasspathref="wtk-libs">
<src path="src/main/java"/>
<src path="src/addon/java"/>
<exclude name="lua/debug/j2se/**"/>
</fileset>
<fileset dir="../luaj-vm/src/addon/java">
<exclude name="lua/debug/j2me/**"/>
<exclude name="lua/addon/luajava/**"/>
</fileset>
</copy>
<!-- Compile everything, but don't preverify (yet). -->
<mkdir dir="build/classes-j2me" />
<wtkbuild destdir="build/classes-j2me" preverify="false" srcdir="build/src-j2me" source="1.3" />
<!-- create the jar -->
<jar destfile="luaj-vm-j2me-${version}.jar" basedir="build/classes-j2me" />
</javac>
</target>
<target name="all" depends="clean,jar"/>
<target name="compile-j2se-extras" depends="wtk-or-fail">
<mkdir dir="build/extras-j2se/classes"/>
<javac destdir="build/extras-j2se/classes" encoding="utf-8" source="1.3" target="1.1"
classpath="build/core/classes">
<src path="src/main/java"/>
<src path="src/addon/java"/>
<include name="lua/debug/j2se/**"/>
<include name="lua/addon/luajava/**"/>
</javac>
</target>
<target name="compile-j2me-debug" depends="wtk-or-fail">
<mkdir dir="build/extras-j2me/classes"/>
<javac destdir="build/extras-j2me/classes" encoding="utf-8" source="1.3" target="1.1"
bootclasspathref="wtk-libs" classpath="build/core/classes">
<src path="src/main/java"/>
<src path="src/addon/java"/>
<include name="lua/debug/j2me/**"/>
</javac>
</target>
<target name="load-env">
<property environment="env"/>
</target>
<target name="try-default-wtk-path" depends="load-env" unless="env.WTK_HOME">
<available property="env.WTK_HOME" value="c:\WTK-2.2" file="c:\WTK-2.2\lib\cldcapi11.jar"/>
<available property="env.WTK_HOME" value="/opt/WTK2.2" file="/opt/WTK2.2/lib/cldcapi11.jar"/>
</target>
<target name="find-wtk" depends="try-default-wtk-path" unless="wtk.home" if="env.WTK_HOME">
<property name="wtk.home" value="${env.WTK_HOME}"/>
</target>
<target name="wtk-or-fail" depends="find-wtk">
<fail unless="wtk.home" message="Sun Wireless Toolkit required to build component jars."/>
<echo>Using WTK found in ${wtk.home}</echo>
<path id="wtk-libs">
<pathelement path="${wtk.home}/lib/cldcapi11.jar"/>
<pathelement path="${wtk.home}/lib/midpapi20.jar"/>
<pathelement path="${wtk.home}/lib/mmapi.jar"/>
</path>
</target>
<target name="all" depends="clean,jar,module-jars"/>
</project>