| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <!-- |
| /* |
| ******************************************************************************* |
| * Copyright (C) 2008-2016, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ******************************************************************************* |
| * This is the ant build file for ICU Meta. |
| */ |
| --> |
| |
| <project name="meta" default="hello" basedir="."> |
| |
| <target name="init" depends="initBase"/> |
| |
| <target name="initBase" |
| description="Initialized meta build environment"> |
| <tstamp /> |
| <property name="project" value="icumeta" /> |
| <property name="src.dir" value="src" /> |
| <property name="dtdcache.dir" location="./dtdcache" /> |
| <property name="dtd.dir" location="./dtd" /> |
| <property name="build.dir" value="classes" /> |
| <property name="doc.dir" value="doc" /> |
| <property name="merger.class" value="com.ibm.icu.dev.meta.Merger" /> |
| <property name="validate.class" value="org.unicode.cldr.util.XMLValidator" /> |
| <property name="xml.dir" value="xml" /> |
| <property name="xml-base.file" value="icumeta.xml" /> |
| <property name="xml.file" value="${xml.dir}/${xml-base.file}" /> |
| <property name="json.file" value="${xml.dir}/icumeta.json" /> |
| <property name="input.dir" value="input" /> |
| <property name="lib.dir" value="lib" /> |
| <property name="jar.file" value="icumeta.jar" /> |
| <property file="build.properties" /> |
| <property name="icumeta.javac.source" value="1.7" /> |
| <property name="icumeta.javac.target" value="1.7" /> |
| |
| <!-- snag all jars in lib/*.jar --> |
| <fileset id="libjars" dir="${lib.dir}"> |
| <include name="**/*.jar"/> |
| </fileset> |
| |
| <fileset id="srcxml" dir="${input.dir}"> |
| <include name="**/*.xml"/> |
| </fileset> |
| |
| <path id="build.classpath"> |
| <fileset refid="libjars" /> |
| <pathelement path="${build.dir}" /> |
| </path> |
| |
| <!-- Load environment variables --> |
| <property environment="env" /> |
| |
| <!-- Capture the computer name in a cross-platform manner --> |
| <property name="env.COMPUTERNAME" value="${env.HOSTNAME}" /> |
| |
| <mkdir dir="${build.dir}" /> |
| <mkdir dir="${dtdcache.dir}" /> |
| |
| <echo message="java home: ${java.home}" /> |
| <echo message="java version: ${java.version}" /> |
| <echo message="ant java version: ${ant.java.version}" /> |
| <echo message="${ant.version}" /> |
| <echo message="${env.COMPUTERNAME} with ${os.name} ${os.version} on ${os.arch}" /> |
| <tstamp> |
| <format property="date.time" pattern="yyyy-MM-dd 'at' hh:mm:ss z" locale="en,US" /> |
| </tstamp> |
| |
| <echo message="Initialized at ${date.time}" /> |
| </target> |
| |
| |
| <target name="clean" depends="initBase" description="remove all build targets"> |
| <delete dir="${build.dir}" /> |
| <delete dir="${doc.dir}" /> |
| <delete dir="${dtdcache.dir}" /> |
| <delete file="${jar.file}" /> |
| </target> |
| |
| <target name="core" depends="init"> |
| <javac sourcepath="" |
| srcdir="${src.dir}" |
| destdir="${build.dir}" |
| classpathref="build.classpath" |
| source="${icumeta.javac.source}" |
| target="${icumeta.javac.source}" |
| debug="on" |
| deprecation="on" |
| includeantruntime="false" |
| encoding="ascii"> |
| <include name="com/ibm/icu/dev/meta/**/*.java" /> |
| </javac> |
| <copy todir="${build.dir}/com/ibm/icu/dev/meta/"> |
| <fileset dir="${dtd.dir}" includes="icumeta.*" /> |
| </copy> |
| </target> |
| |
| <target name="check-xml" depends="init"> |
| <dependset> |
| <srcfileset refid="srcxml"/> |
| <targetfilelist dir="${xml.dir}" files="${xml-base.file}"/> |
| </dependset> |
| <available file="${xml.file}" property="xml-ok"/> |
| </target> |
| |
| <target name="rebuild-xml" depends="init,core" unless="xml-ok"> |
| <echo message="DTD Cache: ${dtdcache.dir}" /> |
| <echo message="DTD Override: ${dtd.dir}" /> |
| <java classname="${merger.class}" classpathref="build.classpath"> |
| <arg value="-v"/> |
| <arg value="-o:${xml.file}"/> |
| <arg value="-j:${json.file}"/> |
| <arg value="${input.dir}/"/> <!-- load all .xml files from there --> |
| <sysproperty key="CLDR_DTD_CACHE" value="${dtdcache.dir}"/> |
| <sysproperty key="CLDR_DTD_OVERRIDE" value="${dtd.dir}"/> |
| <!-- sysproperty key="CLDR_DTD_CACHE_DEBUG" value="y"/> |
| <sysproperty key="CLDR_DTD_CACHE_ADEBUG" value="y"/> |
| <sysproperty key="ICU_DTD_CACHE_DEBUG" value="y"/> |
| <sysproperty key="ICU_DTD_CACHE_ADEBUG" value="y" --> |
| <sysproperty key="ICU_DTD_CACHE" value="${dtdcache.dir}"/> |
| <sysproperty key="ICU_DTD_OVERRIDE" value="${dtd.dir}"/> |
| </java> |
| </target> |
| |
| |
| <target name="validate-xml" depends="init"> |
| <java classname="${validate.class}" classpathref="build.classpath"> |
| <arg value="${xml.file}"/> |
| <sysproperty key="CLDR_DTD_CACHE" value="${dtdcache.dir}"/> |
| <sysproperty key="CLDR_DTD_OVERRIDE" value="${dtd.dir}"/> |
| <!-- sysproperty key="CLDR_DTD_CACHE_DEBUG" value="y"/> |
| <sysproperty key="CLDR_DTD_CACHE_ADEBUG" value="y"/> |
| <sysproperty key="ICU_DTD_CACHE_DEBUG" value="y"/> |
| <sysproperty key="ICU_DTD_CACHE_ADEBUG" value="y" --> |
| <sysproperty key="ICU_DTD_CACHE" value="${dtdcache.dir}"/> |
| <sysproperty key="ICU_DTD_OVERRIDE" value="${dtd.dir}"/> |
| </java> |
| <echo message="(No errors here means ${xml.file} is OK.)"/> |
| </target> |
| |
| <target name="xml" depends="init,core,check-xml,rebuild-xml,validate-xml"> |
| </target> |
| |
| <target name="hello" depends="init"> |
| <echo message="This is ${project}." /> |
| <echo message="Interesting targets:" /> |
| <echo message=" core - build base class(es)"/> |
| <echo message=" clean - cleanup stuff"/> |
| <echo message=" xml - regenerate ${xml.file} if needed"/> |
| <echo message=" rebuild-xml - regenerate ${xml.file} irregardless"/> |
| <echo message=" (the 'dtd' subdirectory has its own makefile, which see.)"/> |
| <!-- echo message=" dtd - rebuild dtd (may require download)" / --> |
| |
| <echo message=""/> |
| <echo message="Don't forget to put into ${lib.dir} the usual fun jars: cldr.jar icu4j.jar utilities.jar xalan.jar xerces.jar" /> |
| </target> |
| |
| <target name="jar" |
| depends="core" |
| description="build 'icumeta.jar' jar file"> |
| <jar jarfile="${jar.file}" compress="true"> |
| <!-- fileset dir="${basedir}" includes="license.html,unicode-license.txt" --> |
| <!-- fileset dir="${src.dir}" includes="com/ibm/icu/ICUConfig.properties" --> |
| <fileset dir="${build.dir}" includes="com/ibm/icu/dev/meta/**/*" excludes="META-INF/services/**/*,com/ibm/icu/charset/**/*,${icu4j.data.path}/*.cnv,${icu4j.data.path}/cnvalias.icu" /> |
| <manifest> |
| <attribute name="Built-By" value="${corp}" /> |
| <section name="common"> |
| <attribute name="Specification-Title" value="${manifest.specification.title}" /> |
| <attribute name="Specification-Version" value="${icu4j.spec.version.string}" /> |
| <attribute name="Specification-Vendor" value="ICU" /> |
| <attribute name="Implementation-Title" value=" ICU Metadata Processing" /> |
| <attribute name="Implementation-Version" value="?" /> |
| <attribute name="Implementation-Vendor" value="${corp}" /> |
| <attribute name="Implementation-Vendor-Id" value="com.ibm.icu" /> |
| <attribute name="Copyright-Info" value="${copyright}" /> |
| <attribute name="Sealed" value="false" /> |
| </section> |
| </manifest> |
| </jar> |
| </target> |
| </project> |