| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <project name="libthrift" default="dist" basedir="." |
| xmlns:ivy="antlib:org.apache.ivy.ant"> |
| |
| <description>Thrift Build File</description> |
| |
| <property name="gen" location="gen-java" /> |
| <property name="genbean" location="gen-javabean" /> |
| |
| <property name="src" location="src" /> |
| <property name="build" location="build" /> |
| <property name="javadoc" location="${build}/javadoc" /> |
| <property name="install.path" value="/usr/local/lib" /> |
| <property name="src.test" location="test" /> |
| <property name="build.test" location="${build}/test" /> |
| <property name="test.thrift.home" location="../../test"/> |
| |
| <property file="${user.home}/.thrift-build.properties" /> |
| |
| <!-- ivy properties --> |
| <property name="ivy.version" value="2.0.0-rc2" /> |
| <property name="ivy.dir" location="${build}/ivy" /> |
| <property name="ivy.jar" location="${ivy.dir}/ivy-${ivy.version}.jar"/> |
| <property name="ivy.lib.dir" location="${ivy.dir}/lib" /> |
| <property name="ivy_repo_url" value="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"/> |
| <property name="ivysettings.xml" location="${ivy.dir}/ivysettings.xml" /> |
| |
| <path id="compile.classpath"> |
| <fileset dir="${ivy.lib.dir}"> |
| <include name="**/*.jar" /> |
| </fileset> |
| </path> |
| |
| <path id="test.classpath"> |
| <path refid="compile.classpath" /> |
| <pathelement location="build/test" /> |
| <pathelement location="libthrift.jar" /> |
| </path> |
| |
| <target name="init"> |
| <tstamp /> |
| <mkdir dir="${build}"/> |
| <mkdir dir="${build.test}" /> |
| <!-- |
| Allow Ivy to be disabled with "-Dnoivy=". |
| It is kind of a hack to pretend that we already found it, |
| but Ant doesn't provide an easy way of blocking dependencies |
| from executing or checking multiple conditions. |
| --> |
| <condition property="ivy.found"><isset property="noivy" /></condition> |
| <condition property="offline"><isset property="noivy" /></condition> |
| </target> |
| |
| <target name="ivy-init-dirs"> |
| <mkdir dir="${ivy.dir}" /> |
| <mkdir dir="${ivy.lib.dir}" /> |
| </target> |
| |
| <target name="ivy-download" depends="ivy-init-dirs" description="To download ivy" unless="offline"> |
| <get src="${ivy_repo_url}" dest="${ivy.jar}" usetimestamp="true"/> |
| </target> |
| |
| <target name="ivy-probe-antlib"> |
| <condition property="ivy.found"> |
| <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/> |
| </condition> |
| </target> |
| |
| <target name="ivy-init-antlib" depends="ivy-download,ivy-probe-antlib" unless="ivy.found"> |
| <typedef uri="antlib:org.apache.ivy.ant" onerror="fail" |
| loaderRef="ivyLoader"> |
| <classpath> |
| <pathelement location="${ivy.jar}"/> |
| </classpath> |
| </typedef> |
| <fail> |
| <condition > |
| <not> |
| <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/> |
| </not> |
| </condition> |
| You need Apache Ivy 2.0 or later from http://ant.apache.org/ |
| It could not be loaded from ${ivy_repo_url} |
| </fail> |
| </target> |
| |
| <target name="resolve" depends="ivy-init-antlib" description="retrieve dependencies with ivy" unless="noivy"> |
| <ivy:retrieve /> |
| </target> |
| |
| <target name="compile" depends="init,resolve"> |
| <javac srcdir="${src}" destdir="${build}" source="1.5" debug="true" classpathref="compile.classpath" /> |
| </target> |
| |
| <target name="javadoc" depends="init"> |
| <javadoc sourcepath="${src}" |
| destdir="${javadoc}" |
| version="true" |
| windowtitle="Thrift Java API" |
| doctitle="Thrift Java API"> |
| </javadoc> |
| </target> |
| |
| <target name="dist" depends="compile"> |
| <jar jarfile="libthrift.jar"> |
| <fileset dir="${build}"> |
| <include name="**/*.class" /> |
| </fileset> |
| <fileset dir="src"> |
| <include name="**/*.java" /> |
| </fileset> |
| </jar> |
| </target> |
| |
| <target name="install" depends="dist,javadoc"> |
| <exec executable="install"> |
| <arg line="libthrift.jar ${install.path}" /> |
| </exec> |
| <copy todir="${install.javadoc.path}"> |
| <fileset dir="${javadoc}"> |
| <include name="**/*" /> |
| </fileset> |
| </copy> |
| </target> |
| |
| <target name="clean"> |
| <delete dir="${build}" /> |
| <delete dir="${gen}"/> |
| <delete dir="${genbean}"/> |
| <delete dir="${javadoc}"/> |
| <delete file="libthrift.jar" /> |
| </target> |
| |
| <target name="compile-test" description="Build the test suite classes" depends="generate,dist"> |
| <javac debug="true" srcdir="${gen}" destdir="${build.test}" classpathref="test.classpath" /> |
| <javac debug="true" srcdir="${genbean}" destdir="${build.test}" classpathref="test.classpath" /> |
| <javac debug="true" srcdir="${src.test}" destdir="${build.test}" classpathref="test.classpath" /> |
| </target> |
| |
| <target name="test" description="Run the full test suite" depends="compile-test"> |
| <java classname="org.apache.thrift.test.JSONProtoTest" |
| classpathref="test.classpath" failonerror="true" /> |
| <java classname="org.apache.thrift.test.TCompactProtocolTest" |
| classpathref="test.classpath" failonerror="true" /> |
| <java classname="org.apache.thrift.test.IdentityTest" |
| classpathref="test.classpath" failonerror="true" /> |
| <java classname="org.apache.thrift.test.EqualityTest" |
| classpathref="test.classpath" failonerror="true" /> |
| <java classname="org.apache.thrift.test.ToStringTest" |
| classpathref="test.classpath" failonerror="true" /> |
| <java classname="org.apache.thrift.test.DeepCopyTest" |
| classpathref="test.classpath" failonerror="true" /> |
| <java classname="org.apache.thrift.test.MetaDataTest" |
| classpathref="test.classpath" failonerror="true" /> |
| <java classname="org.apache.thrift.test.JavaBeansTest" |
| classpathref="test.classpath" failonerror="true" /> |
| </target> |
| |
| <target name="generate"> |
| <exec executable="../../compiler/cpp/thrift"> |
| <arg line="--gen java:hashcode ${test.thrift.home}/ThriftTest.thrift" /> |
| </exec> |
| <exec executable="../../compiler/cpp/thrift"> |
| <arg line="--gen java:hashcode ${test.thrift.home}/DebugProtoTest.thrift" /> |
| </exec> |
| <exec executable="../../compiler/cpp/thrift"> |
| <arg line="--gen java:hashcode ${test.thrift.home}/OptionalRequiredTest.thrift" /> |
| </exec> |
| <exec executable="../../compiler/cpp/thrift"> |
| <arg line="--gen java:beans,nocamel ${test.thrift.home}/JavaBeansTest.thrift" /> |
| </exec> |
| </target> |
| |
| </project> |