<?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}" 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"/>
                <!-- 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}/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}/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>
