gecko-dev/java/dist/build.xml
2005-08-21 01:23:11 +00:00

230 lines
7.7 KiB
XML

<?xml version="1.0"?>
<!--
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Ed Burns &gt;edburns@acm.org&lt;
-->
<project name="webclient" default="main" basedir=".">
<property name="Name" value="webclient"/>
<property name="name" value="webclient"/>
<property name="version" value="2_0_a5"/>
<!-- ************ Per user local properties ******************************* -->
<property file="${user.home}/build.properties"/> <!-- User local -->
<property file="build.properties"/> <!-- Component local -->
<property file="../build.properties"/> <!-- java-supplement local -->
<property environment="myenv" />
<property name="dist.home" value="${basedir}/dist" />
<property name="dist.javadocs" value="${dist.home}/javadocs" />
<property name="source.home" value="${basedir}/.." />
<property name="moz.dist" value="${myenv.MOZ_SRC}/mozilla/dist" />
<property name="javadoc.private" value="false"/>
<property name="javadoc.protected" value="true"/>
<path id="compile.classpath">
<pathelement location="${dist.home}/classes"/>
</path>
<target name="props">
<condition property="so.prefix" value="">
<and>
<os family="windows" />
</and>
</condition>
<condition property="so.prefix" value="lib">
<and>
<os family="unix" />
</and>
</condition>
<condition property="so.extension" value="dll">
<and>
<os family="windows" />
</and>
</condition>
<condition property="so.extension" value="so">
<and>
<os family="unix" />
</and>
</condition>
<condition property="platform" value="win32">
<and>
<os family="windows" />
</and>
</condition>
<condition property="platform" value="linux">
<and>
<os family="unix" />
</and>
</condition>
</target>
<target name="prepare" depends="props">
<mkdir dir="${dist.home}" />
<mkdir dir="${dist.home}/components" />
<mkdir dir="${dist.javadocs}" />
</target>
<target name="javadoc_check">
<uptodate property="javadoc.notrequired" targetfile="${dist.javadocs}/packages.html" >
<srcfiles dir= "${source.home}" includes="**/*.java"/>
</uptodate>
</target>
<target name="javadocs" depends="prepare, javadoc_check"
unless="javadoc.notrequired"
description="Create the JavaDoc API documentation">
<javadoc packagenames="org.mozilla.*"
destdir="${dist.javadocs}"
Overview="${source.home}/webclient/classes_spec/org/mozilla/webclient/overview.html"
private="${javadoc.private}"
protected="${javadoc.protected}"
windowtitle="${Name} (${version})"
doctitle="${Name} (${version})"
bottom="Copyright &#169; 2002-2005 Mozilla.org All Rights Reserved.">
<fileset dir="${source.home}">
<include name="**/*.java"/>
<exclude name="**/impl/**/*.java" />
<exclude name="**/wrapper_nonnative/**/*.java" />
<exclude name="**/*Impl.java" />
<exclude name="**/test*/**/*.java" />
<exclude name="plugins/**/*.*" />
<exclude name="xpcom/**/*.*" />
<exclude name="dom/blackconnect/**/*.*" />
<exclude name="pluggable-jvm/**/*.*" />
</fileset>
<classpath refid="compile.classpath"/>
</javadoc>
</target>
<target name="main" depends="dist,src.dist"/>
<target name="dist" depends="prepare,compile.test,javadocs">
<echo message="${build.home}" />
<jar jarfile="${dist.home}/${name}.jar" >
<manifest>
<attribute name="Specification-Title" value="${Name}"/>
<attribute name="Specification-Version" value="2.0"/>
<attribute name="Implementation-Title" value="'${name}': ${Name}"/>
<attribute name="Implementation-Version" value="${version}"/>
<attribute name="Implementation-Vendor" value="mozilla.org"/>
<attribute name="Implementation-Vendor-Id" value="org.mozilla"/>
<attribute name="Extension-Name" value="org.mozilla.webclient"/>
</manifest>
<fileset dir="${build.home}"
excludes="**/test/**" />
<fileset dir="${build.home}/test/classes"
includes="org/mozilla/webclient/test/**" />
</jar>
<copy todir="${dist.home}/components"
file="${basedir}/../dom/src/${so.prefix}javadom.${so.extension}" />
<copy todir="${dist.home}"
file="${basedir}/../dom/jni/${so.prefix}javadomjni.${so.extension}" />
<copy todir="${dist.home}"
file="${basedir}/../webclient/src_moz/${so.prefix}${name}.${so.extension}" />
<copy tofile="${dist.home}/build.xml" file="webclient-dist.xml" />
<zip destfile="${name}_${version}_${platform}.zip"
basedir="${dist.home}" />
<copy todir="${dist.home}" file="${name}_${version}_${platform}.zip" />
<delete file="${name}_${version}_${platform}.zip" />
</target>
<target name="src.dist">
<ant inheritAll="false" dir="${source.home}" target="clean"/>
<antcall target="prepare" />
<zip destfile="${dist.home}/${name}-src-${version}.zip">
<zipfileset dir="${source.home}"
excludes="**/CVS/**,build.properties,**/.deps/**,**/build.test/**,**/dist/dist/**,**/Makefile"
prefix="${name}-src-${version}/src"/>
</zip>
</target>
<target name="unzip.dist" depends="prepare">
<unzip dest="${moz.install.dir}" src="${dist.home}/${name}_${version}_${platform}.zip" />
</target>
<target name="test.dist" depends="prepare">
<antcall target="unzip.dist" />
<ant inheritAll="false" dir="${moz.install.dir}"/>
<antcall target="clean.test.dist" />
</target>
<target name="clean.test.dist" depends="props">
<delete file="${moz.install.dir}/build.xml" />
<delete dir="${moz.install.dir}/javadocs" />
<delete file="${moz.install.dir}/components/${so.prefix}javadom.${so.extension}" />
<delete file="${moz.install.dir}/${so.prefix}javadomjni.${so.extension}" />
<delete file="${moz.install.dir}/${so.prefix}${name}.${so.extension}" />
<delete file="${moz.install.dir}/${name}.jar" />
</target>
<target name="clean.dev.build" depends="prepare"
description="remove in-place binaries for development work">
<delete file="${basedir}/../dom/src/${so.prefix}javadom.${so.extension}" />
<delete file="${basedir}/../dom/jni/${so.prefix}javadomjni.${so.extension}" />
<delete file="${basedir}/../webclient/src_moz/${so.prefix}webclient.${so.extension}" />
<delete dir="${build.home}" />
<delete file="${moz.dist}/lib/components/${so.prefix}javadom.${so.extension}" />
<delete file="${moz.dist}/bin/components/${so.prefix}javadom.${so.extension}" />
<delete file="${moz.dist}/bin/${so.prefix}javadomjni.${so.extension}" />
<delete file="${moz.dist}/bin/${so.prefix}webclient.${so.extension}" />
</target>
<target name="compile.test">
<ant dir="${basedir}/../webclient" target="compile.test" />
</target>
<target name="clean">
<delete dir="${dist.home}" />
</target>
</project>