blob: 4abaec66e45ec42563e2bdbefd92ddeb5dd26ed8 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
build.xml
Author: Lasse Collin <lasse.collin@tukaani.org>
This file has been put into the public domain.
You can do whatever you want with this file.
-->
<project name="XZ" default="jar">
<property file="build.properties"/>
<target name="clean"
description="Deletes generated files except 'extdoc/package-list'">
<delete dir="${build_dir}"/>
</target>
<target name="distclean" depends="clean"
description="Deletes all generated files">
<delete dir="extdoc"/>
</target>
<target name="dist" description="Creates a source package (.zip)">
<mkdir dir="${dist_dir}"/>
<zip destfile="${dist_file}">
<fileset dir="." includesfile="fileset-misc.txt"/>
<fileset dir="." includesfile="fileset-src.txt"/>
</zip>
</target>
<target name="doc"
description="Generates HTML documentation with javadoc">
<mkdir dir="${doc_dir}"/>
<mkdir dir="${extdoc_dir}"/>
<get src="${extdoc_url}/package-list"
dest="${extdoc_dir}/package-list" skipexisting="true"/>
<javadoc sourcepath="${src_dir}" destdir="${doc_dir}"
source="${sourcever}" packagenames="org.tukaani.xz"
windowtitle="XZ data compression"
linkoffline="${extdoc_url} ${extdoc_dir}"/>
</target>
<target name="compile" description="Compiles the classes">
<mkdir dir="${classes_dir}"/>
<javac srcdir="." sourcepath="${src_dir}" destdir="${classes_dir}"
includeAntRuntime="false" debug="${debug}"
source="${sourcever}" target="${sourcever}"
includesfile="fileset-src.txt"
excludes="**/package-info.java">
<compilerarg compiler="modern" value="-Xlint"/>
</javac>
</target>
<target name="jar" depends="compile"
description="Creates JAR packages">
<mkdir dir="${jar_dir}"/>
<jar destfile="${jar_dir}/xz.jar" basedir="${classes_dir}"
includes="org/tukaani/xz/**">
<manifest>
<attribute name="Implementation-Title" value="${title}"/>
<attribute name="Implementation-Version" value="${version}"/>
<attribute name="Implementation-URL" value="${homepage}"/>
<attribute name="Sealed" value="true"/>
<attribute name="Automatic-Module-Name"
value="org.tukaani.xz"/>
<!-- Attributes required for OSGi bundles. -->
<attribute name="Bundle-ManifestVersion" value="2"/>
<attribute name="Bundle-SymbolicName" value="org.tukaani.xz"/>
<attribute name="Bundle-Version" value="${version}"/>
<attribute name="Export-Package" value="org.tukaani.xz"/>
<attribute name="Bundle-Name" value="${title}"/>
<attribute name="Bundle-DocURL" value="${homepage}"/>
</manifest>
</jar>
<jar destfile="${jar_dir}/TestAllocSpeed.jar" basedir="${classes_dir}"
includes="TestAllocSpeed.class">
<manifest>
<attribute name="Main-Class" value="TestAllocSpeed"/>
<attribute name="Class-Path" value="xz.jar"/>
</manifest>
</jar>
<jar destfile="${jar_dir}/XZEncDemo.jar" basedir="${classes_dir}"
includes="XZEncDemo.class">
<manifest>
<attribute name="Main-Class" value="XZEncDemo"/>
<attribute name="Class-Path" value="xz.jar"/>
</manifest>
</jar>
<jar destfile="${jar_dir}/XZDecDemo.jar" basedir="${classes_dir}"
includes="XZDecDemo.class">
<manifest>
<attribute name="Main-Class" value="XZDecDemo"/>
<attribute name="Class-Path" value="xz.jar"/>
</manifest>
</jar>
<jar destfile="${jar_dir}/XZSeekEncDemo.jar" basedir="${classes_dir}"
includes="XZSeekEncDemo.class">
<manifest>
<attribute name="Main-Class" value="XZSeekEncDemo"/>
<attribute name="Class-Path" value="xz.jar"/>
</manifest>
</jar>
<jar destfile="${jar_dir}/XZSeekDecDemo.jar" basedir="${classes_dir}"
includes="XZSeekDecDemo.class">
<manifest>
<attribute name="Main-Class" value="XZSeekDecDemo"/>
<attribute name="Class-Path" value="xz.jar"/>
</manifest>
</jar>
<jar destfile="${jar_dir}/LZMAEncDemo.jar" basedir="${classes_dir}"
includes="LZMAEncDemo.class">
<manifest>
<attribute name="Main-Class" value="LZMAEncDemo"/>
<attribute name="Class-Path" value="xz.jar"/>
</manifest>
</jar>
<jar destfile="${jar_dir}/LZMADecDemo.jar" basedir="${classes_dir}"
includes="LZMADecDemo.class">
<manifest>
<attribute name="Main-Class" value="LZMADecDemo"/>
<attribute name="Class-Path" value="xz.jar"/>
</manifest>
</jar>
</target>
<!-- It's an ugly quick hack. Maybe some day there will be a cleaner
version (e.g. by using Maven). -->
<target name="maven" depends="dist, doc, jar"
description="Creates the files for a Maven repository">
<mkdir dir="${maven_dir}"/>
<copy file="${pom_template}" tofile="${maven_dir}/xz-${version}.pom"
overwrite="true">
<filterset>
<filter token="VERSION" value="${version}"/>
<filter token="TITLE" value="${title}"/>
<filter token="HOMEPAGE" value="${homepage}"/>
</filterset>
</copy>
<copy file="${jar_dir}/xz.jar" tofile="${maven_dir}/xz-${version}.jar"
preservelastmodified="true" overwrite="true"/>
<jar destfile="${maven_dir}/xz-${version}-javadoc.jar"
basedir="${doc_dir}"/>
<jar destfile="${maven_dir}/xz-${version}-sources.jar"
basedir="${src_dir}" includes="org/tukaani/xz/**"/>
</target>
</project>