1 <project name="fast-key-erasure" default="main" basedir=".">
2 <property name="package.version" value="1.1"/>
4 <property name="src.dir" location="src"/>
5 <property name="src.dir.test" location="test"/>
6 <property name="lib.dir" location="lib"/>
7 <property name="lib.dir.test" location="${lib.dir}/test"/>
8 <property name="bin.dir" location="bin"/>
9 <property name="bin.dir.jdk8" location="${bin.dir}/@jdk8"/>
10 <property name="bin.dir.jdk17" location="${bin.dir}/@jdk17"/>
11 <property name="bin.dir.test" location="${bin.dir}/@test"/>
12 <property name="out.dir" location="dist"/>
15 <format property="build.date" pattern="yyyy-MM-dd" locale="en,UK" timezone="UTC"/>
16 <format property="build.timestamp" pattern="yyyyMMdd-HHmmss" locale="en,UK" timezone="UTC"/>
19 <property name="out.name" value="${ant.project.name}.${build.date}"/>
21 <property name="out.file.jdk8" location="${out.dir}/${out.name}.jdk-8.jar"/>
22 <property name="out.file.jdk17" location="${out.dir}/${out.name}.jdk-17.jar"/>
23 <property name="out.file.test" location="${out.dir}/${out.name}.tests.jar"/>
25 <!-- ~~~~ MAIN ~~~~ -->
27 <target name="main" depends="clean,jar">
28 <echo message="Completed."/>
31 <!-- ~~~~ COMPILE ~~~~ -->
33 <target name="compile" description="compile java sources" depends="compile.jdk8,compile.jdk17,compile.test">
34 <echo message="Completed."/>
37 <target name="compile.jdk8" description="compile java sources (JDK 8)">
38 <mkdir dir="${bin.dir.jdk8}"/>
39 <javac srcdir="${src.dir}" destdir="${bin.dir.jdk8}" debug="off" source="1.8" target="1.8" optimize="true" includeantruntime="false" encoding="utf8"/>
42 <target name="compile.jdk17" description="compile java sources (JDK 17)">
43 <mkdir dir="${bin.dir.jdk17}"/>
44 <javac srcdir="${src.dir}" destdir="${bin.dir.jdk17}" debug="off" release="17" optimize="true" includeantruntime="false" encoding="utf8"/>
47 <target name="compile.test" description="compile java sources (test)" depends="compile.jdk17">
48 <mkdir dir="${bin.dir.test}"/>
49 <javac srcdir="${src.dir.test}" destdir="${bin.dir.test}" debug="true" release="17" optimize="true" includeantruntime="false" encoding="utf8">
51 <pathelement location="${bin.dir.jdk17}"/>
52 <pathelement location="${lib.dir.test}/apiguardian-api-1.1.2.jar"/>
53 <pathelement location="${lib.dir.test}/ascii85-1.2.jar"/>
54 <pathelement location="${lib.dir.test}/junit-jupiter-api-5.10.1.jar"/>
55 <pathelement location="${lib.dir.test}/junit-jupiter-params-5.10.1.jar"/>
60 <!-- ~~~~ JAR ~~~~ -->
62 <target name="jar" description="create JAR package" depends="jar.jdk8,jar.jdk17,jar.test">
63 <echo message="Completed."/>
66 <target name="jar.jdk8" description="create JAR package (JDK 8)" depends="compile.jdk8">
67 <mkdir dir="${out.dir}"/>
68 <jar destfile="${out.file.jdk8}" basedir="${bin.dir.jdk8}" includes="**/*.class">
69 <fileset file="${basedir}/README.md"/>
70 <fileset file="${basedir}/LICENSE.txt"/>
72 <attribute name="Main-Class" value="io.github.deajl3ka.fast_key_erasure.Main"/>
73 <section name="io/github/deajl3ka/fast_key_erasure/">
74 <attribute name="Implementation-Title" value="Fast-key-erasure Random-number Generator"/>
75 <attribute name="Implementation-Version" value="${package.version}"/>
76 <attribute name="Implementation-Build-Date" value="${build.timestamp}"/>
80 <attrib file="${out.file.jdk8}" readonly="true"/>
83 <target name="jar.jdk17" description="create JAR package (JDK 17)" depends="compile.jdk17">
84 <mkdir dir="${out.dir}"/>
85 <jar destfile="${out.file.jdk17}" basedir="${bin.dir.jdk17}" includes="**/*.class">
86 <fileset file="${basedir}/README.md"/>
87 <fileset file="${basedir}/LICENSE.txt"/>
89 <attribute name="Main-Class" value="io.github.deajl3ka.fast_key_erasure.Main"/>
90 <section name="io/github/deajl3ka/fast_key_erasure/">
91 <attribute name="Implementation-Title" value="Fast-key-erasure Random-number Generator"/>
92 <attribute name="Implementation-Version" value="${package.version}"/>
93 <attribute name="Implementation-Build-Date" value="${build.timestamp}"/>
97 <attrib file="${out.file.jdk17}" readonly="true"/>
100 <target name="jar.test" description="create JAR package (test)" depends="jar.jdk17,compile.test">
101 <mkdir dir="${out.dir}"/>
102 <jar destfile="${out.file.test}" basedir="${bin.dir.test}" includes="**/*.class">
103 <fileset file="${basedir}/README.md"/>
104 <fileset file="${basedir}/LICENSE.txt"/>
105 <zipfileset includes="**/*.class" excludes="**/Main.class" src="${out.file.jdk17}"/>
106 <zipfileset includes="**/*.class" excludes="**/module-info.*" src="${lib.dir.test}/ascii85-1.2.jar"/>
108 <section name="io/github/deajl3ka/fast_key_erasure/">
109 <attribute name="Implementation-Title" value="Fast-key-erasure Random-number Generator"/>
110 <attribute name="Implementation-Version" value="${package.version}"/>
111 <attribute name="Implementation-Build-Date" value="${build.timestamp}"/>
115 <attrib file="${out.file.test}" readonly="true"/>
118 <!-- ~~~~ CLEAN ~~~~ -->
120 <target name="clean">
121 <delete includeemptydirs="true" verbose="true">
122 <fileset dir="${bin.dir}" includes="**/*" erroronmissingdir="false"/>
123 <fileset dir="${out.dir}" includes="**/*" erroronmissingdir="false"/>