| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <!-- |
| build.xml |
| |
| Author: Lasse Collin <[email protected]> |
| |
| 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'"> |
| <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"/> |
| <fileset dir="." includesfile="fileset-src9.txt"/> |
| </zip> |
| </target> |
| |
| <target name="doc" |
| description="Generates HTML documentation with javadoc"> |
| <mkdir dir="${doc_dir}"/> |
| <mkdir dir="${extdoc_dir}"/> |
| <!-- Ant 1.10.9 doesn't recognize element-list. To workaround this |
| we rename element-list to package-list when downloading. |
| javadoc from Java 15 seems to be fine with this hack. --> |
| <get src="${extdoc_url}/${extdoc_file}" |
| dest="${extdoc_dir}/package-list" skipexisting="true"/> |
| <javadoc sourcepath="${src_dir}" destdir="${doc_dir}" |
| packagenames="org.tukaani.xz" |
| windowtitle="XZ data compression" |
| nodeprecatedlist="true" nohelp="true" |
| 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}" |
| release="${sourcever}" |
| includesfile="fileset-src.txt" |
| excludes="**/package-info.java"> |
| <compilerarg compiler="modern" line="-Xlint -Xlint:-options"/> |
| </javac> |
| |
| <!-- Build Java 9 files only if sourcever9 is set: --> |
| <mkdir dir="${classes9_dir}"/> |
| <condition property="exclude_java9" value="**"> |
| <not><isset property="sourcever9"/></not> |
| </condition> |
| |
| <!-- Regular Java 9 files excluding module-info.java: --> |
| <javac srcdir="." sourcepath="${src_dir}" |
| destdir="${classes9_dir}" |
| classpath="${classes_dir}" |
| includeAntRuntime="false" debug="${debug}" |
| release="${sourcever9}" |
| includesfile="fileset-src9.txt" |
| excludes="${exclude_java9} **/module-info.java"> |
| <compilerarg compiler="modern" line="-Xlint"/> |
| </javac> |
| |
| <!-- module-info.java needs special treatment because it wants to |
| be on the source path and also see source files from the |
| package being exported. --> |
| <javac srcdir="." sourcepath="${src9_dir}:${src_dir}" |
| destdir="${classes9_dir}" |
| includeAntRuntime="false" debug="${debug}" |
| release="${sourcever9}" |
| includes="src9/module-info.java" |
| excludes="${exclude_java9}"> |
| <compilerarg compiler="modern" line="-Xlint"/> |
| </javac> |
| </target> |
| |
| <target name="jar" depends="compile" |
| description="Creates JAR packages"> |
| <mkdir dir="${jar_dir}"/> |
| |
| <jar destfile="${jar_dir}/xz.jar"> |
| <fileset dir="${classes_dir}" includes="org/tukaani/xz/**"/> |
| <zipfileset prefix="META-INF/versions/9/" dir="${classes9_dir}"/> |
| <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="Multi-Release" 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}/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"> |
| <fileset dir="${src_dir}" includes="org/tukaani/xz/**"/> |
| <zipfileset prefix="META-INF/versions/9/" dir="${src9_dir}"/> |
| </jar> |
| </target> |
| |
| </project> |