mirror of https://github.com/apache/cassandra
122 lines
4.3 KiB
XML
122 lines
4.3 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
<project basedir="." default="build" name="cassandra">
|
|
<property environment="env"/>
|
|
<property name="debuglevel" value="source,lines,vars"/>
|
|
|
|
<property name="basedir" value="."/>
|
|
<property name="build.src" value="${basedir}/src"/>
|
|
<property name="build.lib" value="${basedir}/lib"/>
|
|
<property name="build.dir" value="${basedir}/build"/>
|
|
<property name="build.classes" value="${build.dir}/classes"/>
|
|
<property name="test.dir" value="${basedir}/test"/>
|
|
<property name="test.classes" value="${build.dir}/test/classes"/>
|
|
<property name="final.name" value="cassandra"/>
|
|
|
|
<!--
|
|
Add all the dependencies.
|
|
-->
|
|
<path id="cassandra.classpath">
|
|
<pathelement location="${build.classes}"/>
|
|
<fileset dir="${build.lib}">
|
|
<include name="**/*.jar" />
|
|
</fileset>
|
|
</path>
|
|
|
|
<!--
|
|
Setup the output directories.
|
|
-->
|
|
<target name="init">
|
|
<mkdir dir="${build.classes}"/>
|
|
<mkdir dir="${test.classes}"/>
|
|
</target>
|
|
<target name="clean">
|
|
<delete dir="${build.classes}"/>
|
|
<delete dir="${test.classes}"/>
|
|
</target>
|
|
<target depends="clean" name="cleanall"/>
|
|
|
|
|
|
|
|
<!--
|
|
This generates the CLI grammar files from Cli.g
|
|
-->
|
|
<target name="gen-cli-grammar">
|
|
<echo>Building Grammar ${build.src}/org/apache/cassandra/infrastructure/cli/Cli.g ....</echo>
|
|
<java classname="org.antlr.Tool"
|
|
classpath="${build.lib}/antlr-3.0.1.jar:${build.lib}/stringtemplate-3.0.jar:${build.lib}/antlr-2.7.7.jar"
|
|
fork="true">
|
|
<arg value="${build.src}/org/apache/cassandra/infrastructure/cli/Cli.g" />
|
|
</java>
|
|
</target>
|
|
|
|
<!--
|
|
This generates the CQL grammar files from Cql.g
|
|
-->
|
|
<target name="gen-cql-grammar">
|
|
<echo>Building Grammar ${build.src}/org/apache/cassandra/infrastructure/cql/compiler/parse/Cql.g ....</echo>
|
|
<java classname="org.antlr.Tool"
|
|
classpath="${build.lib}/antlr-3.0.1.jar:${build.lib}/stringtemplate-3.0.jar:${build.lib}/antlr-2.7.7.jar"
|
|
fork="true">
|
|
<arg value="${build.src}/org/apache/cassandra/infrastructure/cql/compiler/parse/Cql.g" />
|
|
</java>
|
|
</target>
|
|
|
|
<!--
|
|
The build target builds all the .class files
|
|
-->
|
|
<target depends="build-subprojects,build-project" name="build"/>
|
|
<target name="build-subprojects"/>
|
|
<target depends="init" name="build-project">
|
|
<echo message="${ant.project.name}: ${ant.file}"/>
|
|
<javac debug="true" debuglevel="${debuglevel}" destdir="${build.classes}">
|
|
<src path="${build.src}"/>
|
|
<classpath refid="cassandra.classpath"/>
|
|
</javac>
|
|
</target>
|
|
|
|
<!--
|
|
The jar target makes cassandra.jar output.
|
|
-->
|
|
<target name="jar" depends="build">
|
|
<jar jarfile="${build.dir}/${final.name}.jar"
|
|
basedir="${build.classes}">
|
|
<manifest>
|
|
<!-- <section name="org/apache/cassandra/infrastructure"> -->
|
|
<attribute name="Implementation-Title" value="Cassandra"/>
|
|
<attribute name="Implementation-Version" value="1.1"/>
|
|
<attribute name="Implementation-Vendor" value="Facebook"/>
|
|
<attribute name="Premain-Class" value="org.apache.cassandra.infrastructure.continuations.CAgent"/>
|
|
<!-- </section> -->
|
|
</manifest>
|
|
</jar>
|
|
</target>
|
|
|
|
|
|
<target name="build-test" depends="build" description="Build the Cassandra classes">
|
|
<javac
|
|
debug="${javac.debug}"
|
|
debuglevel="${javac.debuglevel}"
|
|
destdir="${test.classes}"
|
|
>
|
|
<classpath refid="cassandra.classpath"/>
|
|
<src path="${test.dir}"/>
|
|
</javac>
|
|
</target>
|
|
|
|
<taskdef resource="testngtasks" classpath="lib/testng-5.8-jdk15.jar"/>
|
|
<target name="test" depends="build-test">
|
|
<echo message="running tests"/>
|
|
<testng outputDir="${build.dir}/test/output"
|
|
haltOnFailure="true"
|
|
verbose="2">
|
|
<jvmarg value="-Dstorage-config=conf"/>
|
|
<classpath>
|
|
<path refid="cassandra.classpath" />
|
|
<pathelement location="${test.classes}"/>
|
|
</classpath>
|
|
<classfileset dir="${test.classes}" includes="**/*.class" />
|
|
</testng>
|
|
</target>
|
|
|
|
</project>
|