Home | History | Annotate | Download | only in xz-java
      1 <?xml version="1.0" encoding="UTF-8"?>
      2 
      3 <!--
      4     build.xml
      5 
      6     Author: Lasse Collin <lasse.collin (a] tukaani.org>
      7 
      8     This file has been put into the public domain.
      9     You can do whatever you want with this file.
     10 -->
     11 
     12 <project name="XZ" default="jar">
     13 
     14     <property file="build.properties"/>
     15 
     16     <target name="clean"
     17             description="Deletes generated files except 'extdoc/package-list'">
     18         <delete dir="${build_dir}"/>
     19     </target>
     20 
     21     <target name="distclean" depends="clean"
     22             description="Deletes all generated files">
     23         <delete dir="extdoc"/>
     24     </target>
     25 
     26     <target name="dist" description="Creates a source package (.zip)">
     27         <mkdir dir="${dist_dir}"/>
     28         <zip destfile="${dist_file}">
     29             <fileset dir="." includesfile="fileset-misc.txt"/>
     30             <fileset dir="." includesfile="fileset-src.txt"/>
     31         </zip>
     32     </target>
     33 
     34     <target name="doc"
     35             description="Generates HTML documentation with javadoc">
     36         <mkdir dir="${doc_dir}"/>
     37         <mkdir dir="${extdoc_dir}"/>
     38         <get src="${extdoc_url}/package-list"
     39              dest="${extdoc_dir}/package-list" skipexisting="true"/>
     40         <javadoc sourcepath="${src_dir}" destdir="${doc_dir}"
     41                  source="${sourcever}" packagenames="org.tukaani.xz"
     42                  windowtitle="XZ data compression"
     43                  linkoffline="${extdoc_url} ${extdoc_dir}"/>
     44     </target>
     45 
     46     <target name="compile" description="Compiles the classes">
     47         <mkdir dir="${classes_dir}"/>
     48         <javac srcdir="." sourcepath="${src_dir}" destdir="${classes_dir}"
     49                includeAntRuntime="false" debug="${debug}"
     50                source="${sourcever}" target="${sourcever}"
     51                includesfile="fileset-src.txt"
     52                excludes="**/package-info.java">
     53             <compilerarg compiler="modern" value="-Xlint"/>
     54         </javac>
     55     </target>
     56 
     57     <target name="jar" depends="compile"
     58             description="Creates JAR packages">
     59         <mkdir dir="${jar_dir}"/>
     60 
     61         <jar destfile="${jar_dir}/xz.jar" basedir="${classes_dir}"
     62              includes="org/tukaani/xz/**">
     63             <manifest>
     64                 <attribute name="Implementation-Title" value="${title}"/>
     65                 <attribute name="Implementation-Version" value="${version}"/>
     66                 <attribute name="Implementation-URL" value="${homepage}"/>
     67                 <attribute name="Sealed" value="true"/>
     68                 <attribute name="Automatic-Module-Name"
     69                            value="org.tukaani.xz"/>
     70                 <!-- Attributes required for OSGi bundles. -->
     71                 <attribute name="Bundle-ManifestVersion" value="2"/>
     72                 <attribute name="Bundle-SymbolicName" value="org.tukaani.xz"/>
     73                 <attribute name="Bundle-Version" value="${version}"/>
     74                 <attribute name="Export-Package" value="org.tukaani.xz"/>
     75                 <attribute name="Bundle-Name" value="${title}"/>
     76                 <attribute name="Bundle-DocURL" value="${homepage}"/>
     77             </manifest>
     78         </jar>
     79 
     80         <jar destfile="${jar_dir}/TestAllocSpeed.jar" basedir="${classes_dir}"
     81              includes="TestAllocSpeed.class">
     82             <manifest>
     83                 <attribute name="Main-Class" value="TestAllocSpeed"/>
     84                 <attribute name="Class-Path" value="xz.jar"/>
     85             </manifest>
     86         </jar>
     87 
     88         <jar destfile="${jar_dir}/XZEncDemo.jar" basedir="${classes_dir}"
     89              includes="XZEncDemo.class">
     90             <manifest>
     91                 <attribute name="Main-Class" value="XZEncDemo"/>
     92                 <attribute name="Class-Path" value="xz.jar"/>
     93             </manifest>
     94         </jar>
     95 
     96         <jar destfile="${jar_dir}/XZDecDemo.jar" basedir="${classes_dir}"
     97              includes="XZDecDemo.class">
     98             <manifest>
     99                 <attribute name="Main-Class" value="XZDecDemo"/>
    100                 <attribute name="Class-Path" value="xz.jar"/>
    101             </manifest>
    102         </jar>
    103 
    104         <jar destfile="${jar_dir}/XZSeekEncDemo.jar" basedir="${classes_dir}"
    105              includes="XZSeekEncDemo.class">
    106             <manifest>
    107                 <attribute name="Main-Class" value="XZSeekEncDemo"/>
    108                 <attribute name="Class-Path" value="xz.jar"/>
    109             </manifest>
    110         </jar>
    111 
    112         <jar destfile="${jar_dir}/XZSeekDecDemo.jar" basedir="${classes_dir}"
    113              includes="XZSeekDecDemo.class">
    114             <manifest>
    115                 <attribute name="Main-Class" value="XZSeekDecDemo"/>
    116                 <attribute name="Class-Path" value="xz.jar"/>
    117             </manifest>
    118         </jar>
    119 
    120         <jar destfile="${jar_dir}/LZMAEncDemo.jar" basedir="${classes_dir}"
    121              includes="LZMAEncDemo.class">
    122             <manifest>
    123                 <attribute name="Main-Class" value="LZMAEncDemo"/>
    124                 <attribute name="Class-Path" value="xz.jar"/>
    125             </manifest>
    126         </jar>
    127 
    128         <jar destfile="${jar_dir}/LZMADecDemo.jar" basedir="${classes_dir}"
    129              includes="LZMADecDemo.class">
    130             <manifest>
    131                 <attribute name="Main-Class" value="LZMADecDemo"/>
    132                 <attribute name="Class-Path" value="xz.jar"/>
    133             </manifest>
    134         </jar>
    135     </target>
    136 
    137     <!-- It's an ugly quick hack. Maybe some day there will be a cleaner
    138          version (e.g. by using Maven). -->
    139     <target name="maven" depends="dist, doc, jar"
    140             description="Creates the files for a Maven repository">
    141         <mkdir dir="${maven_dir}"/>
    142 
    143         <copy file="${pom_template}" tofile="${maven_dir}/xz-${version}.pom"
    144               overwrite="true">
    145             <filterset>
    146                 <filter token="VERSION" value="${version}"/>
    147                 <filter token="TITLE" value="${title}"/>
    148                 <filter token="HOMEPAGE" value="${homepage}"/>
    149             </filterset>
    150         </copy>
    151 
    152         <copy file="${jar_dir}/xz.jar" tofile="${maven_dir}/xz-${version}.jar"
    153               preservelastmodified="true" overwrite="true"/>
    154 
    155         <jar destfile="${maven_dir}/xz-${version}-javadoc.jar"
    156              basedir="${doc_dir}"/>
    157 
    158         <jar destfile="${maven_dir}/xz-${version}-sources.jar"
    159              basedir="${src_dir}" includes="org/tukaani/xz/**"/>
    160     </target>
    161 
    162 </project>
    163