open-keychain/libraries/spongycastle/ant/bc+-build.xml
2014-01-27 14:00:22 +01:00

994 lines
48 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<project name="crypto.bcbuild" default="build" basedir=".">
<property file="bc-build.properties" />
<property environment="env" />
<property name="target.name" value="${target.prefix}-${release.suffix}" />
<property name="build.dir" value="${src.dir}/.." />
<property name="bzip2.src.dir" value="${basedir}/pg/src/main/java" />
<property name="artifacts.reports.xml.dir" value="${artifacts.dir}/reports/xml" />
<property name="artifacts.reports.html.dir" value="${artifacts.dir}/reports/html" />
<property name="artifacts.jars.dir" value="${artifacts.dir}/jars" />
<property name="artifacts.docs.dir" value="${artifacts.dir}/javadoc" />
<property name="jce.target" value="jce-${target.name}" />
<property name="jce.target.dir" value="${artifacts.dir}/${jce.target}" />
<property name="jce.target.src.dir" value="${jce.target.dir}/src" />
<property name="jce.target.docs.dir" value="${jce.target.dir}/javadoc" />
<property name="jce.target.src.zip" value="${jce.target.dir}/src.zip" />
<property name="provider.target" value="bcprov-${target.name}" />
<property name="provider.target.dir" value="${artifacts.dir}/${provider.target}" />
<property name="provider.target.src.dir" value="${provider.target.dir}/src" />
<property name="provider.target.docs.dir" value="${provider.target.dir}/javadoc" />
<property name="provider.target.src.zip" value="${provider.target.dir}/src.zip" />
<property name="mail.target" value="bcmail-${target.name}" />
<property name="mail.target.dir" value="${artifacts.dir}/${mail.target}" />
<property name="mail.target.src.dir" value="${mail.target.dir}/src" />
<property name="mail.target.docs.dir" value="${mail.target.dir}/javadoc" />
<property name="mail.target.src.zip" value="${mail.target.dir}/src.zip" />
<property name="pkix.target" value="bcpkix-${target.name}" />
<property name="pkix.target.dir" value="${artifacts.dir}/${pkix.target}" />
<property name="pkix.target.src.dir" value="${pkix.target.dir}/src" />
<property name="pkix.target.docs.dir" value="${pkix.target.dir}/javadoc" />
<property name="pkix.target.src.zip" value="${pkix.target.dir}/src.zip" />
<property name="pg.target" value="bcpg-${target.name}" />
<property name="pg.target.dir" value="${artifacts.dir}/${pg.target}" />
<property name="pg.target.src.dir" value="${pg.target.dir}/src" />
<property name="pg.target.docs.dir" value="${pg.target.dir}/javadoc" />
<property name="pg.target.src.zip" value="${pg.target.dir}/src.zip" />
<property name="lcrypto.target" value="lcrypto-${target.name}" />
<property name="lcrypto.target.dir" value="${artifacts.dir}/${lcrypto.target}" />
<property name="lcrypto.target.src.dir" value="${lcrypto.target.dir}/src" />
<property name="lcrypto.target.classes.dir" value="${lcrypto.target.dir}/classes" />
<property name="lcrypto.target.docs.dir" value="${lcrypto.target.dir}/javadoc" />
<path id="project.classpath">
<pathelement location="${mail.jar.home}" />
<pathelement location="${activation.jar.home}" />
<pathelement location="${junit.jar.home}" />
</path>
<target name="pack200-on" if="pack200.enabled">
<taskdef name="pack200" classname="com.sun.tools.apache.ant.pack200.Pack200Task"
classpath="lib/Pack200Task.jar"/>
<macrodef name="packJar">
<attribute name="jarbase" />
<element name="manifest-element" />
<element name="fileset-element" />
<sequential>
<jar jarfile="@{jarbase}.tmp.jar">
<manifest-element/>
<fileset-element/>
</jar>
<pack200 src="@{jarbase}.tmp.jar" destfile="@{jarbase}.jar" repack="true" segmentLimit="-1" />
<delete file="@{jarbase}.tmp.jar" />
</sequential>
</macrodef>
</target>
<target name="pack200-off" unless="pack200.enabled">
<macrodef name="packJar">
<attribute name="jarbase" />
<element name="manifest-element" />
<element name="fileset-element" />
<sequential>
<jar jarfile="@{jarbase}.jar">
<manifest-element/>
<fileset-element/>
</jar>
</sequential>
</macrodef>
</target>
<target name="initPackJar" depends="pack200-on, pack200-off" />
<target name="initMacros" depends="initPackJar">
<macrodef name="compile">
<attribute name="target" />
<element name="manifestElements" />
<element name="jarFileSet" />
<sequential>
<mkdir dir="${build.dir}/@{target}/classes" />
<mkdir dir="${artifacts.dir}/@{target}" />
<javac source="${bc.javac.source}" target="${bc.javac.target}"
srcdir="${artifacts.dir}/@{target}/src"
destdir="${build.dir}/@{target}/classes"
debug="${release.debug}">
<classpath>
<path refid="project.classpath" />
<fileset dir="${artifacts.jars.dir}">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
<copy todir="${build.dir}/@{target}/classes">
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.properties" />
</copy>
<packJar jarbase="${artifacts.jars.dir}/@{target}">
<manifest-element>
<manifest>
<manifestElements/>
</manifest>
</manifest-element>
<fileset-element>
<fileset dir="${build.dir}/@{target}/classes">
<jarFileSet/>
</fileset>
</fileset-element>
</packJar>
</sequential>
</macrodef>
<macrodef name="compile-test">
<attribute name="target" />
<element name="manifestElements" />
<sequential>
<mkdir dir="${build.dir}/@{target}/classes" />
<mkdir dir="${artifacts.dir}/@{target}" />
<javac source="${bc.javac.source}" target="${bc.javac.target}"
srcdir="${artifacts.dir}/@{target}/src"
destdir="${build.dir}/@{target}/classes"
debug="${release.debug}">
<classpath>
<path refid="project.classpath" />
<fileset dir="${artifacts.jars.dir}">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
<copy todir="${build.dir}/@{target}/classes">
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.asc" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.pem" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.p7m" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.message" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.properties" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.eml" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.sig" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.data" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.crt" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.cvcert" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.csr" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.crl" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.cer" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.der" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.txt" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.rsp" />
</copy>
<packJar jarbase="${artifacts.jars.dir}/@{target}">
<manifest-element>
<manifest>
<manifestElements/>
</manifest>
</manifest-element>
<fileset-element>
<fileset dir="${build.dir}/@{target}/classes">
<include name="**/*.class" />
<include name="**/*.asc" />
<include name="**/*.pem" />
<include name="**/*.p7m" />
<include name="**/*.crl" />
<include name="**/*.der" />
<include name="**/*.crt" />
<include name="**/*.csr" />
<include name="**/*.cvcert" />
<include name="**/*.eml" />
<include name="**/*.sig" />
<include name="**/*.data" />
<include name="**/*.cer" />
<include name="**/*.der" />
<include name="**/*.message" />
<include name="**/*.txt" />
<include name="**/*.rsp" />
<include name="**/*.properties" />
</fileset>
</fileset-element>
</packJar>
</sequential>
</macrodef>
<macrodef name="compile-doc">
<attribute name="srcDir" />
<attribute name="docsDir" />
<element name="docElements" />
<sequential>
<mkdir dir="@{docsDir}" />
<javadoc sourcepath="@{srcDir}"
destdir="@{docsDir}"
windowtitle="Bouncy Castle Library ${release.name} API Specification"
header="&lt;b&gt;Bouncy Castle Cryptography Library ${release.name}&lt;/b&gt;">
<docElements/>
<arg value="${javadoc.args}" />
<classpath>
<path refid="project.classpath" />
<fileset dir="${artifacts.jars.dir}">
<include name="**/*.jar" />
</fileset>
<pathelement path="${env.CLASSPATH}" />
</classpath>
</javadoc>
</sequential>
</macrodef>
<macrodef name="copyStandardFiles">
<attribute name="toDir" />
<sequential>
<copy toDir="@{toDir}">
<fileset dir="${basedir}">
<include name="*.html" />
</fileset>
</copy>
<copy toDir="@{toDir}/docs">
<fileset dir="${basedir}/docs">
<include name="**/*.html" />
</fileset>
</copy>
</sequential>
</macrodef>
</target>
<target name="build" depends="initMacros, build-lw, build-libraries, build-test" />
<target name="build-lw" depends="initMacros">
<!--
Lightweight Libraries
-->
<mkdir dir="${lcrypto.target.dir}" />
<mkdir dir="${lcrypto.target.src.dir}" />
<mkdir dir="${lcrypto.target.classes.dir}" />
<copyStandardFiles toDir="${lcrypto.target.dir}" />
<copy todir="${lcrypto.target.src.dir}">
<fileset dir="${src.dir}">
<exclude name="build/**" />
<include name="org/bouncycastle/*.java" />
<include name="org/bouncycastle/math/**/*.java" />
<include name="org/bouncycastle/crypto/**/*.java" />
<include name="org/bouncycastle/util/**/*.java" />
<include name="org/bouncycastle/asn1/**/*.java" />
<include name="org/bouncycastle/bcpg/**/*.java" />
<include name="org/bouncycastle/pqc/crypto/**/*.java" />
<include name="org/bouncycastle/pqc/math/**/*.java" />
<include name="org/bouncycastle/pqc/asn1/**/*.java" />
</fileset>
</copy>
<javac source="${bc.javac.source}" target="${bc.javac.target}"
srcdir="${lcrypto.target.src.dir}"
destdir="${lcrypto.target.classes.dir}"
debug="${release.debug}">
</javac>
</target>
<!--
Provider
-->
<target name="build-provider" depends="initMacros">
<property name="provider" value="bcprov-${target.name}" />
<property name="extprovider" value="bcprov-ext-${target.name}" />
<mkdir dir="${artifacts.jars.dir}" />
<delete dir="${provider.target.dir}" />
<mkdir dir="${provider.target.dir}" />
<copyStandardFiles toDir="${provider.target.dir}" />
<copy todir="${provider.target.src.dir}">
<fileset dir="${src.dir}">
<exclude name="build/**" />
<exclude name="PKITS/**" />
<exclude name="cmp/**" />
<exclude name="rfc4134/**" />
<exclude name="org/bouncycastle/**/AllTests.java" />
<exclude name="org/bouncycastle/**/test/**" />
<exclude name="org/bouncycastle/crypto/*/*Test.java" />
<exclude name="org/bouncycastle/util/*Test.java" />
<exclude name="**/*.crl" />
<exclude name="org/bouncycastle/util/utiltest/**" />
<exclude name="org/bouncycastle/bcpg/**" />
<exclude name="org/bouncycastle/cert/**" />
<exclude name="org/bouncycastle/cms/**" />
<exclude name="org/bouncycastle/dvcs/**" />
<exclude name="org/bouncycastle/eac/**" />
<exclude name="org/bouncycastle/mail/**" />
<exclude name="org/bouncycastle/openpgp/**" />
<exclude name="org/bouncycastle/openssl/**" />
<exclude name="org/bouncycastle/mozilla/**" />
<exclude name="org/bouncycastle/operator/**" />
<exclude name="org/bouncycastle/pkcs/**" />
<exclude name="org/bouncycastle/tsp/**" />
<exclude name="org/bouncycastle/voms/**" />
</fileset>
<fileset dir="${src.dir}" includes="org/bouncycastle/util/test/*.java" />
</copy>
<compile target="${provider}">
<jarFileSet>
<include name="**/*.class"/>
<exclude name="**/javax/crypto/**/*.class"/>
<exclude name="**/NTRU*.class" />
<exclude name="**/ntru/**/*.class" />
<include name="**/*.properties"/>
</jarFileSet>
<manifestElements>
<attribute name="Manifest-Version" value="1.0" />
<attribute name="Extension-Name" value="org.bouncycastle.bcprovider" />
<attribute name="Specification-Vendor" value="BouncyCastle.org" />
<attribute name="Specification-Version" value="1.1" />
<attribute name="Implementation-Vendor-Id" value="org.bouncycastle" />
<attribute name="Implementation-Vendor" value="BouncyCastle.org" />
<attribute name="Implementation-Version" value="${release.name}.0" />
<attribute name="Application-Name" value="Bouncy Castle Provider" />
<attribute name="Trusted-Library" value="true" />
<attribute name="Permissions" value="all-permissions" />
<attribute name="Codebase" value="*" />
<attribute name="Application-Library-Allowable-Codebase" value="*" />
<attribute name="Caller-Allowable-Codebase" value="*" />
</manifestElements>
</compile>
<packJar jarbase="${artifacts.jars.dir}/${extprovider}">
<manifest-element>
<manifest>
<attribute name="Manifest-Version" value="1.0" />
<attribute name="Extension-Name" value="org.bouncycastle.bcproviderext" />
<attribute name="Specification-Vendor" value="BouncyCastle.org" />
<attribute name="Specification-Version" value="1.1" />
<attribute name="Implementation-Vendor-Id" value="org.bouncycastle" />
<attribute name="Implementation-Vendor" value="BouncyCastle.org" />
<attribute name="Implementation-Version" value="${release.name}.0" />
<attribute name="Application-Name" value="Bouncy Castle Provider" />
<attribute name="Trusted-Library" value="true" />
<attribute name="Permissions" value="all-permissions" />
<attribute name="Codebase" value="*" />
<attribute name="Application-Library-Allowable-Codebase" value="*" />
<attribute name="Caller-Allowable-Codebase" value="*" />
</manifest>
</manifest-element>
<fileset-element>
<fileset dir="${build.dir}/${provider}/classes">
<include name="**/*.class"/>
<exclude name="**/javax/crypto/**/*.class"/>
<include name="**/*.properties"/>
</fileset>
</fileset-element>
</packJar>
</target>
<!--
JCE
-->
<target name="build-jce" depends="initMacros">
<property name="jce" value="jce-${target.name}" />
<property name="extjce" value="jce-ext-${target.name}" />
<mkdir dir="${artifacts.jars.dir}" />
<delete dir="${jce.target.dir}" />
<mkdir dir="${jce.target.dir}" />
<copyStandardFiles toDir="${jce.target.dir}" />
<copy todir="${jce.target.src.dir}">
<fileset dir="${src.dir}">
<exclude name="PKITS/**" />
<exclude name="cmp/**" />
<exclude name="rfc4134/**" />
<exclude name="org/bouncycastle/**/AllTests.java" />
<exclude name="org/bouncycastle/**/test/**" />
<exclude name="org/bouncycastle/crypto/*/*Test.java" />
<exclude name="org/bouncycastle/util/*Test.java" />
<exclude name="**/*.crl" />
<exclude name="org/bouncycastle/**/test/*.crt" />
<exclude name="org/bouncycastle/**/test/*.cer" />
<exclude name="org/bouncycastle/**/test/*.csr" />
<exclude name="org/bouncycastle/**/test/*.cvcert" />
<exclude name="org/bouncycastle/**/test/*.eml" />
<exclude name="org/bouncycastle/**/test/*.sig" />
<exclude name="org/bouncycastle/**/test/*.data" />
<exclude name="org/bouncycastle/**/test/*.der" />
<exclude name="org/bouncycastle/**/test/*.properties" />
<exclude name="org/bouncycastle/util/utiltest/**" />
<exclude name="org/bouncycastle/mail/**" />
<exclude name="org/bouncycastle/cms/**" />
<exclude name="org/bouncycastle/dvcs/**" />
<exclude name="org/bouncycastle/eac/**" />
<exclude name="org/bouncycastle/cert/**" />
<exclude name="org/bouncycastle/pkcs/**" />
<exclude name="org/bouncycastle/operator/**" />
<exclude name="org/bouncycastle/sasn1/**" />
<exclude name="org/bouncycastle/tsp/**" />
<exclude name="org/bouncycastle/openpgp/**" />
<exclude name="org/bouncycastle/openssl/**" />
<exclude name="org/bouncycastle/mozilla/**" />
<exclude name="org/bouncycastle/bcpg/**" />
<exclude name="org/bouncycastle/voms/**" />
<exclude name="org/apache/**/*.java" />
</fileset>
<fileset dir="${src.dir}" includes="org/bouncycastle/util/test/*.java" />
</copy>
<compile target="${jce}">
<jarFileSet>
<include name="**/*.class"/>
<exclude name="**/NTRU*.class" />
<exclude name="**/ntru/**/*.class" />
<include name="**/*.properties"/>
</jarFileSet>
<manifestElements>
<attribute name="Manifest-Version" value="1.0" />
<attribute name="Extension-Name" value="org.bouncycastle.bcjce" />
<attribute name="Specification-Vendor" value="BouncyCastle.org" />
<attribute name="Specification-Version" value="1.1" />
<attribute name="Implementation-Vendor-Id" value="org.bouncycastle" />
<attribute name="Implementation-Vendor" value="BouncyCastle.org" />
<attribute name="Implementation-Version" value="${release.name}.0" />
<attribute name="Application-Name" value="Bouncy Castle JCE and Provider" />
<attribute name="Trusted-Library" value="true" />
<attribute name="Permissions" value="all-permissions" />
<attribute name="Codebase" value="*" />
<attribute name="Application-Library-Allowable-Codebase" value="*" />
<attribute name="Caller-Allowable-Codebase" value="*" />
</manifestElements>
</compile>
<packJar jarbase="${artifacts.jars.dir}/${extjce}">
<manifest-element>
<manifest>
<attribute name="Manifest-Version" value="1.0" />
<attribute name="Extension-Name" value="org.bouncycastle.bcjceext" />
<attribute name="Specification-Vendor" value="BouncyCastle.org" />
<attribute name="Specification-Version" value="1.1" />
<attribute name="Implementation-Vendor-Id" value="org.bouncycastle" />
<attribute name="Implementation-Vendor" value="BouncyCastle.org" />
<attribute name="Implementation-Version" value="${release.name}.0" />
<attribute name="Application-Name" value="Bouncy Castle JCE and Provider" />
<attribute name="Trusted-Library" value="true" />
<attribute name="Permissions" value="all-permissions" />
<attribute name="Codebase" value="*" />
<attribute name="Application-Library-Allowable-Codebase" value="*" />
<attribute name="Caller-Allowable-Codebase" value="*" />
</manifest>
</manifest-element>
<fileset-element>
<fileset dir="${build.dir}/${jce}/classes">
<include name="**/*.class"/>
<include name="**/*.properties"/>
</fileset>
</fileset-element>
</packJar>
</target>
<target name="build-libraries" depends="initMacros, build-pkix, build-pg, build-mail" />
<!--
SMIME
-->
<target name="build-mail" depends="initMacros">
<mkdir dir="${mail.target.dir}" />
<copyStandardFiles toDir="${mail.target.dir}" />
<copy todir="${mail.target.src.dir}">
<fileset dir="${src.dir}">
<include name="org/bouncycastle/mail/**/*.java" />
<include name="org/bouncycastle/mail/**/*.properties" />
<exclude name="**/*Test.java" />
<exclude name="**/*Tests.java" />
<exclude name="**/test/*.java" />
</fileset>
</copy>
<compile target="${mail.target}">
<jarFileSet>
<include name="**/*.class"/>
<include name="**/*.properties"/>
</jarFileSet>
<manifestElements>
<attribute name="Manifest-Version" value="1.0" />
<attribute name="Extension-Name" value="org.bouncycastle.bcmail" />
<attribute name="Specification-Vendor" value="BouncyCastle.org" />
<attribute name="Specification-Version" value="1.1" />
<attribute name="Implementation-Vendor-Id" value="org.bouncycastle" />
<attribute name="Implementation-Vendor" value="BouncyCastle.org" />
<attribute name="Implementation-Version" value="${release.name}.0" />
<attribute name="Application-Name" value="Bouncy Castle S/MIME API" />
<attribute name="Trusted-Library" value="true" />
<attribute name="Permissions" value="all-permissions" />
<attribute name="Codebase" value="*" />
<attribute name="Application-Library-Allowable-Codebase" value="*" />
<attribute name="Caller-Allowable-Codebase" value="*" />
</manifestElements>
</compile>
</target>
<target name="build-pkix" depends="initMacros">
<mkdir dir="${pkix.target.dir}" />
<copyStandardFiles toDir="${pkix.target.dir}" />
<copy todir="${pkix.target.src.dir}">
<fileset dir="${src.dir}">
<include name="org/bouncycastle/cms/**/*.java" />
<include name="org/bouncycastle/dvcs/**/*.java" />
<include name="org/bouncycastle/eac/**/*.java" />
<include name="org/bouncycastle/cert/**/*.java" />
<include name="org/bouncycastle/mozilla/**/*.java" />
<include name="org/bouncycastle/openssl/**/*.java" />
<include name="org/bouncycastle/operator/**/*.java" />
<include name="org/bouncycastle/pkcs/**/*.java" />
<include name="org/bouncycastle/tsp/**/*.java" />
<include name="org/bouncycastle/voms/**/*.java" />
<exclude name="**/*Test.java" />
<exclude name="**/*Tests.java" />
<exclude name="**/test/*.*" />
<exclude name="**/test/**.*" />
</fileset>
</copy>
<compile target="${pkix.target}">
<jarFileSet>
<include name="**/*.class"/>
<include name="**/*.properties"/>
</jarFileSet>
<manifestElements>
<attribute name="Manifest-Version" value="1.0" />
<attribute name="Extension-Name" value="org.bouncycastle.bcpkix" />
<attribute name="Specification-Vendor" value="BouncyCastle.org" />
<attribute name="Specification-Version" value="1.1" />
<attribute name="Implementation-Vendor-Id" value="org.bouncycastle" />
<attribute name="Implementation-Vendor" value="BouncyCastle.org" />
<attribute name="Implementation-Version" value="${release.name}.0" />
<attribute name="Application-Name" value="Bouncy Castle PKIX API" />
<attribute name="Trusted-Library" value="true" />
<attribute name="Permissions" value="all-permissions" />
<attribute name="Codebase" value="*" />
<attribute name="Application-Library-Allowable-Codebase" value="*" />
<attribute name="Caller-Allowable-Codebase" value="*" />
</manifestElements>
</compile>
</target>
<!--
PG
-->
<target name="build-pg" depends="initMacros">
<mkdir dir="${pg.target.dir}" />
<filter token="RELEASE_NAME" value="${release.name}" />
<copyStandardFiles toDir="${pg.target.dir}" />
<copy todir="${pg.target.src.dir}" filtering="true">
<fileset dir="${src.dir}" includes="org/bouncycastle/bcpg/**/*.java" />
</copy>
<copy todir="${pg.target.src.dir}">
<fileset dir="${src.dir}">
<include name="org/bouncycastle/openpgp/**/*.java" />
<exclude name="**/*Test.java" />
<exclude name="**/*Tests.java" />
<exclude name="**/test/*.java" />
</fileset>
<fileset dir="${bzip2.src.dir}">
<include name="org/bouncycastle/apache/**/*.java" />
</fileset>
</copy>
<compile target="${pg.target}">
<jarFileSet>
<include name="**/*.class"/>
<include name="**/*.properties"/>
</jarFileSet>
<manifestElements>
<attribute name="Manifest-Version" value="1.0" />
<attribute name="Extension-Name" value="org.bouncycastle.bcpg" />
<attribute name="Specification-Vendor" value="BouncyCastle.org" />
<attribute name="Specification-Version" value="1.1" />
<attribute name="Implementation-Vendor-Id" value="org.bouncycastle" />
<attribute name="Implementation-Vendor" value="BouncyCastle.org" />
<attribute name="Implementation-Version" value="${release.name}.0" />
<attribute name="Application-Name" value="Bouncy Castle OpenPGP API" />
<attribute name="Trusted-Library" value="true" />
<attribute name="Permissions" value="all-permissions" />
<attribute name="Codebase" value="*" />
<attribute name="Application-Library-Allowable-Codebase" value="*" />
<attribute name="Caller-Allowable-Codebase" value="*" />
</manifestElements>
</compile>
</target>
<!--
Tests
-->
<target name="build-test" depends="initMacros">
<property name="test.target" value="bctest-${target.name}" />
<mkdir dir="${artifacts.jars.dir}" />
<property name="test.target.dir" value="${artifacts.dir}/${test.target}" />
<property name="test.target.src.dir" value="${test.target.dir}/src" />
<mkdir dir="${test.target.dir}" />
<copyStandardFiles toDir="${test.target.dir}" />
<copy todir="${test.target.src.dir}">
<fileset dir="${src.dir}" includes="**/*AllTests.java" />
<fileset dir="${src.dir}" includes="**/math/**/*Test.java" />
<fileset dir="${src.dir}" includes="**/crypto/*/*Test.java" />
<fileset dir="${src.dir}" includes="**/utiltest/*Test.java" />
<fileset dir="${src.dir}" includes="**/util/io/pem/*Test.java" />
<fileset dir="${src.dir}" includes="**/test/*.java" />
<fileset dir="${src.dir}" includes="**/test/*/*.java" />
<fileset dir="${src.dir}" includes="**/*.asc" />
<fileset dir="${src.dir}" includes="**/*.pem" />
<fileset dir="${src.dir}" includes="**/*.p7m" />
<fileset dir="${src.dir}" includes="**/*.eml" />
<fileset dir="${src.dir}" includes="**/*.sig" />
<fileset dir="${src.dir}" includes="**/*.data" />
<fileset dir="${src.dir}" includes="**/*.der" />
<fileset dir="${src.dir}" includes="**/*.crt" />
<fileset dir="${src.dir}" includes="**/*.cer" />
<fileset dir="${src.dir}" includes="**/*.crl" />
<fileset dir="${src.dir}" includes="**/*.csr" />
<fileset dir="${src.dir}" includes="**/*.txt" />
<fileset dir="${src.dir}" includes="**/*.rsp" />
<fileset dir="${src.dir}" includes="**/*.cvcert" />
<fileset dir="${src.dir}" includes="**/*.properties" />
<fileset dir="${src.dir}" includes="**/*.message" />
</copy>
<compile-test target="${test.target}">
<manifestElements>
<attribute name="Manifest-Version" value="1.0" />
<attribute name="Extension-Name" value="org.bouncycastle.bctest" />
<attribute name="Specification-Vendor" value="BouncyCastle.org" />
<attribute name="Specification-Version" value="1.1" />
<attribute name="Implementation-Vendor-Id" value="org.bouncycastle" />
<attribute name="Implementation-Vendor" value="BouncyCastle.org" />
<attribute name="Implementation-Version" value="${release.name}.0" />
<attribute name="Application-Name" value="Bouncy Castle Test Classes" />
<attribute name="Trusted-Library" value="true" />
<attribute name="Permissions" value="all-permissions" />
<attribute name="Codebase" value="*" />
<attribute name="Application-Library-Allowable-Codebase" value="*" />
<attribute name="Caller-Allowable-Codebase" value="*" />
</manifestElements>
</compile-test>
</target>
<target name="test">
<junit fork="yes" dir="${basedir}" failureProperty="test.failed">
<classpath>
<path refid="project.classpath" />
<fileset dir="${artifacts.jars.dir}">
<include name="**/*.jar" />
<exclude name="**/bcprov-jdk*.jar" />
</fileset>
</classpath>
<sysproperty key="bc.test.data.home" value="core/src/test/data" />
<formatter type="xml" />
<test name="${testcase}" todir="${artifacts.reports.xml.dir}" if="testcase" />
<batchtest todir="${artifacts.reports.xml.dir}" unless="testcase">
<fileset dir="${src.dir}">
<include name="**/AllTests.java" />
<include name="**/nist/Nist*Test.java" />
<include name="**/rsa3/RSA3CertTest.java" />
</fileset>
</batchtest>
</junit>
<junitreport todir="${artifacts.reports.xml.dir}">
<fileset dir="${artifacts.reports.xml.dir}">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${artifacts.reports.html.dir}" />
</junitreport>
</target>
<target name="test-lw">
<junit fork="yes" dir="${basedir}" failureProperty="test.failed">
<classpath>
<fileset dir="${artifacts.jars.dir}">
<include name="**/*.jar" />
<exclude name="**/bcprov-jdk*.jar" />
</fileset>
</classpath>
<formatter type="xml" />
<test name="${testcase}" todir="${artifacts.reports.xml.dir}" if="testcase" />
<batchtest todir="${artifacts.reports.xml.dir}" unless="testcase">
<fileset dir="${src.dir}">
<include name="**/crypto/test/AllTests.java" />
<include name="**/asn1/test/AllTests.java" />
<include name="**/encoders/test/AllTests.java" />
<include name="**/ntru/**/AllTests.java" />
</fileset>
</batchtest>
</junit>
<junitreport todir="${artifacts.reports.xml.dir}">
<fileset dir="${artifacts.reports.xml.dir}">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${artifacts.reports.html.dir}" />
</junitreport>
</target>
<target name="javadoc-libraries" depends="javadoc-pkix, javadoc-mail, javadoc-pg" />
<!--
Provider JavaDoc
-->
<target name="javadoc-provider" depends="initMacros">
<copy todir="${provider.target.src.dir}">
<fileset dir="${src.dir}">
<include name="org/bouncycastle/pqc/jcajce/**/test/*.java" />
<include name="org/bouncycastle/jce/**/test/*.java" />
<include name="org/bouncycastle/jce/**/test/*/*.java" />
<include name="org/bouncycastle/x509/**/test/*.java" />
<include name="org/bouncycastle/ocsp/**/test/*.java" />
</fileset>
</copy>
<compile-doc srcDir="${provider.target.src.dir}" docsDir="${artifacts.docs.dir}/bcprov">
<docElements>
<package name="org.bouncycastle.asn1.*" />
<package name="org.bouncycastle.crypto.*" />
<package name="org.bouncycastle.jce.*" />
<package name="org.bouncycastle.pqc.*" />
<package name="org.bouncycastle.x509.*" />
<package name="org.bouncycastle.ocsp.*" />
<package name="org.bouncycastle.util.*" />
<group title="JCE Utility and Extension Packages" packages="org.bouncycastle.jce*" />
<group title="OCSP Support Packages" packages="org.bouncycastle.ocsp*" />
<group title="ASN.1 Support Packages" packages="org.bouncycastle.asn1*" />
<group title="Lightweight Crypto Packages" packages="org.bouncycastle.crypto*" />
<group title="Post-Quantum Lightweight Crypto Packages" packages="org.bouncycastle.pqc.crypto*" />
<group title="Post-Quantum ASN.1 Packages" packages="org.bouncycastle.pqc.asn1*" />
<group title="Post-Quantum Lightweight Math Packages" packages="org.bouncycastle.pqc.math*" />
<group title="Utility Packages" packages="org.bouncycastle.util*:org.bouncycastle.math*" />
<group title="JCE Provider and Test Classes" packages="org.bouncycastle.jce.provider*" />
<group title="Post-Quantum Provider and Test Classes" packages="org.bouncycastle.pqc.jcajce.*" />
</docElements>
</compile-doc>
<copy todir="${provider.target.docs.dir}">
<fileset dir="${artifacts.docs.dir}/bcprov" />
</copy>
</target>
<target name="javadoc-jce" depends="initMacros">
<copy todir="${jce.target.src.dir}">
<fileset dir="${src.dir}">
<include name="org/bouncycastle/jce/**/test/*.java" />
<include name="org/bouncycastle/jce/**/test/*/*.java" />
<include name="org/bouncycastle/x509/**/test/*.java" />
<include name="org/bouncycastle/ocsp/**/test/*.java" />
</fileset>
</copy>
<compile-doc srcDir="${jce.target.src.dir}" docsDir="${artifacts.docs.dir}/jce">
<docElements>
<package name="org.bouncycastle.asn1.*" />
<package name="org.bouncycastle.crypto.*" />
<package name="org.bouncycastle.jce.*" />
<package name="org.bouncycastle.x509.*" />
<package name="org.bouncycastle.ocsp.*" />
<package name="org.bouncycastle.util.*" />
<package name="javax.crypto.*" />
<group title="JCE Package" packages="javax.crypto*" />
<group title="JCE Utility and Extension Packages" packages="org.bouncycastle.jce*" />
<group title="OCSP Support Packages" packages="org.bouncycastle.ocsp*" />
<group title="ASN.1 Support Packages" packages="org.bouncycastle.asn1*" />
<group title="Lightweight Crypto Packages" packages="org.bouncycastle.crypto*" />
<group title="Utility Packages" packages="org.bouncycastle.util*:org.bouncycastle.math*" />
<group title="JCE Provider and Test Classes" packages="org.bouncycastle.jce.provider*" />
</docElements>
</compile-doc>
<copy todir="${jce.target.docs.dir}">
<fileset dir="${artifacts.docs.dir}/jce" />
</copy>
</target>
<!--
Mail JavaDoc
-->
<target name="javadoc-mail" depends="initMacros">
<copy todir="${mail.target.src.dir}">
<fileset dir="${src.dir}">
<include name="org/bouncycastle/mail/**/test/*.java" />
<include name="org/bouncycastle/mail/**/*.html" />
</fileset>
</copy>
<compile-doc srcDir="${mail.target.src.dir}" docsDir="${artifacts.docs.dir}/bcmail">
<docElements>
<package name="org.bouncycastle.mail.*" />
<group title="S/MIME Packages" packages="org.bouncycastle.mail.smime*" />
</docElements>
</compile-doc>
<copy todir="${mail.target.docs.dir}">
<fileset dir="${artifacts.docs.dir}/bcmail" />
</copy>
</target>
<!--
PKIX JavaDoc
-->
<target name="javadoc-pkix" depends="initMacros">
<copy todir="${pkix.target.src.dir}">
<fileset dir="${src.dir}">
<include name="org/bouncycastle/cms/**/test/*.java" />
<include name="org/bouncycastle/dvcs/**/test/*.java" />
<include name="org/bouncycastle/eac/**/test/*.java" />
<include name="org/bouncycastle/cert/**/test/*.java" />
<include name="org/bouncycastle/pkcs/**/test/*.java" />
<include name="org/bouncycastle/openssl/**/test/*.java" />
<include name="org/bouncycastle/mozilla/**/test/*.java" />
<include name="org/bouncycastle/operator/**/test/*.java" />
<include name="org/bouncycastle/cms/**/*.html" />
<include name="org/bouncycastle/dvcs/**/*.html" />
<include name="org/bouncycastle/eac/**/*.html" />
<include name="org/bouncycastle/cert/**/*.html" />
<include name="org/bouncycastle/pkcs/**/*.html" />
<include name="org/bouncycastle/openssl/**/*.html" />
<include name="org/bouncycastle/operator/**/*.html" />
<include name="org/bouncycastle/mozilla/**/*.html" />
<include name="org/bouncycastle/tsp/**/test/*.java" />
<include name="org/bouncycastle/tsp/**/*.html" />
</fileset>
</copy>
<compile-doc srcDir="${pkix.target.src.dir}" docsDir="${artifacts.docs.dir}/bcpkix">
<docElements>
<package name="org.bouncycastle.cms.*" />
<package name="org.bouncycastle.dvcs.*" />
<package name="org.bouncycastle.eac.*" />
<package name="org.bouncycastle.cert.*" />
<package name="org.bouncycastle.pkcs.*" />
<package name="org.bouncycastle.openssl.*" />
<package name="org.bouncycastle.operator.*" />
<package name="org.bouncycastle.mozilla.*" />
<package name="org.bouncycastle.tsp.*" />
<group title="TSP Packages" packages="org.bouncycastle.tsp*" />
<group title="CMS Packages" packages="org.bouncycastle.cms*" />
<group title="DVCS Packages" packages="org.bouncycastle.dvcs*" />
<group title="Extended Access Control Packages" packages="org.bouncycastle.eac*" />
<group title="Certificate Packages" packages="org.bouncycastle.cert*" />
<group title="PKCS Packages" packages="org.bouncycastle.pkcs*" />
<group title="OpenSSL and PEM Support Packages" packages="org.bouncycastle.openssl*" />
</docElements>
</compile-doc>
<copy todir="${pkix.target.docs.dir}">
<fileset dir="${artifacts.docs.dir}/bcpkix" />
</copy>
</target>
<!--
PG JavaDoc
-->
<target name="javadoc-pg" depends="initMacros">
<copy todir="${pg.target.src.dir}">
<fileset dir="${src.dir}">
<include name="org/bouncycastle/openpgp/**/test/*.java" />
<include name="org/bouncycastle/bcpg/**/test/*.java" />
<include name="org/bouncycastle/openpgp/**/*.html" />
<include name="org/bouncycastle/bcpg/**/*.html" />
</fileset>
</copy>
<compile-doc srcDir="${pg.target.src.dir}" docsDir="${artifacts.docs.dir}/bcpg">
<docElements>
<package name="org.bouncycastle.openpgp.*" />
<package name="org.bouncycastle.bcpg.*" />
<group title="BCPG Support Packages" packages="org.bouncycastle.bcpg*" />
<group title="OpenPGP Packages" packages="org.bouncycastle.openpgp*" />
</docElements>
</compile-doc>
<copy todir="${pg.target.docs.dir}">
<fileset dir="${artifacts.docs.dir}/bcpg" />
</copy>
</target>
<!--
Light Weight JavaDoc
-->
<target name="javadoc-lw" depends="initMacros">
<copy todir="${lcrypto.target.src.dir}">
<fileset dir="${src.dir}">
<include name="org/bouncycastle/crypto/**/test/*.java" />
<include name="org/bouncycastle/asn1/**/test/*.java" />
</fileset>
</copy>
<compile-doc srcDir="${lcrypto.target.src.dir}" docsDir="${artifacts.docs.dir}/lcrypto">
<docElements>
<package name="org.bouncycastle.asn1.*" />
<package name="org.bouncycastle.crypto.*" />
<package name="org.bouncycastle.pqc.math.*" />
<package name="org.bouncycastle.pqc.crypto.*" />
<package name="org.bouncycastle.pqc.asn1.*" />
<package name="org.bouncycastle.math.*" />
<package name="org.bouncycastle.util.*" />
<group title="Lightweight Crypto Packages" packages="org.bouncycastle.crypto*" />
<group title="ASN.1 Support Packages" packages="org.bouncycastle.asn1*" />
<group title="Utility Packages" packages="org.bouncycastle.util*:org.bouncycastle.math*" />
<group title="Post-Quantum Lightweight Crypto Packages" packages="org.bouncycastle.pqc.crypto*" />
<group title="Post-Quantum Lightweight Math Packages" packages="org.bouncycastle.pqc.math*" />
<group title="Post-Quantum ASN.1 Packages" packages="org.bouncycastle.pqc.asn1*" />
</docElements>
</compile-doc>
<copy todir="${lcrypto.target.docs.dir}">
<fileset dir="${artifacts.docs.dir}/lcrypto" />
</copy>
</target>
<!--
jar up the source directories
-->
<target name="zip-src" depends="zip-src-check, zip-src-jce, zip-src-jce-ext, zip-src-provider, zip-src-provider-ext">
<zip basedir="${mail.target.src.dir}" destfile="${mail.target.src.zip}" />
<delete dir="${mail.target.src.dir}" />
<zip basedir="${pkix.target.src.dir}" destfile="${pkix.target.src.zip}" />
<delete dir="${pkix.target.src.dir}" />
<zip basedir="${pg.target.src.dir}" destfile="${pg.target.src.zip}" />
<delete dir="${pg.target.src.dir}" />
</target>
<target name="zip-src-jce" if="jce.present">
<zip basedir="${jce.target.src.dir}" destfile="${jce.target.src.zip}">
<exclude name="**/NTRU*.java" />
<exclude name="**/ntru/**/*.java" />
</zip>
</target>
<target name="zip-src-provider" if="provider.present">
<zip basedir="${provider.target.src.dir}" destfile="${provider.target.src.zip}">
<exclude name="**/javax/crypto/**/*.java"/>
<exclude name="**/NTRU*.java" />
<exclude name="**/ntru/**/*.java" />
</zip>
</target>
<target name="zip-src-jce-ext" if="jce.present">
<zip basedir="${jce.target.src.dir}" destfile="${jce.target.src.zip}">
</zip>
<delete dir="${jce.target.src.dir}" />
</target>
<target name="zip-src-provider-ext" if="provider.present">
<zip basedir="${provider.target.src.dir}" destfile="${provider.target.src.zip}">
<exclude name="**/javax/crypto/**/*.java"/>
</zip>
<delete dir="${provider.target.src.dir}" />
</target>
<target name="zip-src-check">
<available property="jce.present" file="${jce.target.src.dir}" />
<available property="provider.present" file="${provider.target.src.dir}" />
</target>
</project>