checkstyle/build.xml

311 lines
11 KiB
XML

<project name="test" default="compile.checkstyle" basedir=".">
<!-- set global properties for this build -->
<!-- Give user a chance to override without editing this file -->
<!-- (and without typing -D each time it compiles it) -->
<property file="checkstyle.buildproperties" />
<property file="${user.home}/checkstyle.buildproperties" />
<!-- Note: to compile successfully, the classpath must point to the home -->
<!-- of ANTLR. This is because not all ANTLR classes are part of the ANTLR -->
<!-- distributed jar file. -->
<property name="antlr.home" value="c:/apps/antlr-2.7.1" />
<property name="regexp.jar" value="c:/apps/jakarta-regexp-1.2/jakarta-regexp-1.2.jar" />
<property name="junit.jar" value="c:/apps/junit3.7/junit.jar" />
<property name="checkstyle.dir" value="src/checkstyle/com/puppycrawl/tools/checkstyle" />
<property name="testreport.dir" value="testreports"/>
<property name="version" value="1.4" />
<path id="build.classpath">
<pathelement location="${antlr.home}" />
<pathelement location="${regexp.jar}" />
</path>
<path id="run.classpath">
<pathelement location="classes/checkstyle" />
<path refid="build.classpath" />
</path>
<!-- add classes to generate Javadoc -->
<path id="javadoc.classpath">
<pathelement location="${ant.home}/lib/ant.jar" />
<pathelement location="${ant.home}/lib/crimson.jar" />
<path refid="build.classpath" />
</path>
<path id="tests.buildpath">
<pathelement location="${junit.jar}" />
<path refid="run.classpath" />
</path>
<path id="tests.runpath">
<pathelement location="classes/tests" />
<path refid="tests.buildpath" />
</path>
<target name="display.classpath">
<property name="asd" refid="run.classpath" />
<echo message="Classpath is ${asd}" />
</target>
<!-- -->
<!-- Cleanup targets -->
<!-- -->
<target name="clean">
<delete>
<fileset dir="src/checkstyle" includes="**/Generated*.java" />
<fileset dir="src/checkstyle" includes="**/Generated*.txt" />
</delete>
<delete dir="classes" />
<delete dir="dist" />
<delete includeemptydirs="true">
<fileset dir="docs/api" includes="**" excludes=".cvsignore,CVS/**"/>
</delete>
<delete dir="${testreport.dir}" />
</target>
<!-- -->
<!-- ANTLR targets -->
<!-- -->
<!-- Checks whether the grammar file is newer that the generated code -->
<target name="check.antlr">
<uptodate property="uptodate.antlr"
targetfile="${checkstyle.dir}/GeneratedJavaLexer.java" >
<srcfiles dir= "${checkstyle.dir}" includes="java.g"/>
</uptodate>
</target>
<!-- Conditionally will compile the grammar. Deliberately do not use the -->
<!-- <antlr> task as it required the ANTLR classes to be in the classpath -->
<!-- which creates lots of problems. -->
<target name="build.antlr" depends="check.antlr" unless="uptodate.antlr">
<java classname="antlr.Tool"
classpath="${antlr.home}"
fork="yes"
dir="${checkstyle.dir}">
<arg value="java.g" />
</java>
</target>
<!-- -->
<!-- COMPILE TARGETS -->
<!-- -->
<target name="compile.checkstyle" depends="build.antlr">
<mkdir dir="classes/checkstyle" />
<depend srcdir="src/checkstyle" destdir="classes/checkstyle" closure="yes"/>
<javac srcdir="src/checkstyle"
destdir="classes/checkstyle"
deprecation="on" debug="on"
classpathref="build.classpath" />
</target>
<target name="compile.tests" depends="compile.checkstyle">
<mkdir dir="classes/tests" />
<depend srcdir="src/tests" destdir="classes/tests" closure="yes"/>
<javac srcdir="src/tests"
destdir="classes/tests"
deprecation="on" debug="on"
classpathref="tests.buildpath" />
</target>
<!-- -->
<!-- TEST TARGETS -->
<!-- -->
<!-- runs the command line version on a file -->
<target name="run.checkstyle" depends="compile.tests">
<java classname="com.puppycrawl.tools.checkstyle.Main"
fork="yes"
dir="src/tests/com/puppycrawl/tools/checkstyle"
classpathref="run.classpath">
<sysproperty key="checkstyle.allow.tabs" value="yes"/>
<arg value="InputSimple.java" />
</java>
</target>
<target name="checkstyle.simple" depends="compile.tests">
<taskdef name="checkstyle"
classname="com.puppycrawl.tools.checkstyle.CheckStyleTask">
<classpath refid="run.classpath"/>
</taskdef>
<checkstyle file="src/tests/com/puppycrawl/tools/checkstyle/InputWhitespace.java"/>
</target>
<target name="checkstyle.import" depends="compile.tests">
<taskdef name="checkstyle"
classname="com.puppycrawl.tools.checkstyle.CheckStyleTask">
<classpath refid="run.classpath"/>
</taskdef>
<echo message="Expect to get a message after checkstyle"/>
<checkstyle failOnViolation="false"
file="src/tests/com/puppycrawl/tools/checkstyle/InputImport.java" />
<echo message="THIS IS THE EXPECTED MESSAGE"/>
</target>
<target name="checkstyle.checkstyle" depends="compile.checkstyle">
<taskdef name="checkstyle"
classname="com.puppycrawl.tools.checkstyle.CheckStyleTask">
<classpath refid="run.classpath"/>
</taskdef>
<delete file="classes/cachefile" />
<checkstyle headerfile="docs/java.header"
ignorebraces="false"
cachefile="classes/cachefile"
headerignoreline="3"
memberPattern="^m[A-Z][a-zA-Z0-9]*$"
staticPattern="^s[A-Z][a-zA-Z0-9]*$"
paramPattern="^a[A-Z][a-zA-Z0-9]*$">
<fileset dir="src/checkstyle"
includes="**/*.java"
excludes="**/Generated*.java"/>
<formatter type="plain"/>
</checkstyle>
</target>
<target name="checkstyle.noargs" depends="compile.checkstyle">
<taskdef name="checkstyle"
classname="com.puppycrawl.tools.checkstyle.CheckStyleTask">
<classpath refid="run.classpath"/>
</taskdef>
<echo message="Calling checkstyle with no arguments" />
<checkstyle>
</checkstyle>
</target>
<target name="run.tests" depends="compile.tests">
<mkdir dir="${testreport.dir}"/>
<property name="tests.dir"
location="src/tests/com/puppycrawl/tools/checkstyle"/>
<junit printsummary="yes"
fork="yes"
haltonfailure="no"
failureProperty="tests.have.failed">
<jvmarg value="-Dtests.dir=${tests.dir}"/>
<formatter type="xml" />
<classpath refid="tests.runpath"/>
<batchtest todir="${testreport.dir}">
<fileset dir="src/tests">
<include name="**/*Test.java" />
</fileset>
</batchtest>
</junit>
<junitreport todir="${testreport.dir}">
<fileset dir="${testreport.dir}">
<include name="TEST-*.xml"/>
</fileset>
<report todir="${testreport.dir}"/>
</junitreport>
<!-- if only fail had an if attribute ... ugly workaround follows -->
<antcall target="tests.failed"/>
</target>
<target name="tests.failed" if="tests.have.failed">
<property name="report" value="${basedir}/${testreport.dir}/index.html"/>
<fail message="Unit tests failed - Report is available in ${report}"/>
</target>
<!-- -->
<!-- DIST TARGETS -->
<!-- -->
<target name="build.bindist" depends="compile.checkstyle, javadoc">
<delete dir="dist/checkstyle-${version}" />
<mkdir dir="dist/checkstyle-${version}" />
<jar jarfile="dist/checkstyle-${version}/checkstyle-${version}.jar"
basedir="classes/checkstyle" />
<!-- copy the JARS and make a mega JAR out of them -->
<copy file="${regexp.jar}"
todir="dist/checkstyle-${version}" />
<copy file="${antlr.home}/antlr.jar"
todir="dist/checkstyle-${version}" />
<mkdir dir="dist/checkstyle-${version}/tmp" />
<unjar src="dist/checkstyle-${version}/antlr.jar"
dest="dist/checkstyle-${version}/tmp" />
<unjar src="dist/checkstyle-${version}/jakarta-regexp-1.2.jar"
dest="dist/checkstyle-${version}/tmp" />
<unjar src="dist/checkstyle-${version}/checkstyle-${version}.jar"
dest="dist/checkstyle-${version}/tmp" />
<delete dir="dist/checkstyle-${version}/tmp/META-INF" />
<jar jarfile="dist/checkstyle-${version}/checkstyle-all-${version}.jar"
basedir="dist/checkstyle-${version}/tmp" />
<delete dir="dist/checkstyle-${version}/tmp" />
<!-- copy documentation -->
<copy todir="dist/checkstyle-${version}">
<fileset dir=".">
<include name="ChangeLog"/>
<include name="LICENSE*"/>
<include name="README"/>
<include name="RIGHTS.antlr"/>
<include name="TODO"/>
<include name="docs/**"/>
<include name="**/.cvsignore"/>
<include name="**/CVS"/>
</fileset>
</copy>
<!-- create the final zip & tar/gzip files -->
<zip zipfile="dist/checkstyle-${version}.zip">
<fileset dir="dist">
<include name="checkstyle-${version}/**"/>
</fileset>
</zip>
<tar tarfile="dist/checkstyle-${version}.tar"
basedir="dist" includes="checkstyle-${version}/**" />
<gzip zipfile="dist/checkstyle-${version}.tar.gz"
src="dist/checkstyle-${version}.tar" />
</target>
<target name="build.srcdist" depends="checkstyle.checkstyle">
<delete dir="dist/checkstyle-src-${version}" />
<mkdir dir="dist/checkstyle-src-${version}" />
<copy todir="dist/checkstyle-src-${version}">
<fileset dir=".">
<include name="LICENSE*"/>
<include name="README"/>
<include name="RIGHTS.antlr"/>
<include name="TODO"/>
<include name="build.xml"/>
<include name="docs/*"/>
<include name="src/**"/>
</fileset>
</copy>
<!-- Produce the final distributions -->
<zip zipfile="dist/checkstyle-src-${version}.zip">
<fileset dir="dist">
<include name="checkstyle-src-${version}/**"/>
</fileset>
</zip>
<tar tarfile="dist/checkstyle-src-${version}.tar"
basedir="dist" includes="checkstyle-src-${version}/**" />
<gzip zipfile="dist/checkstyle-src-${version}.tar.gz"
src="dist/checkstyle-src-${version}.tar" />
</target>
<target name="javadoc" depends="compile.checkstyle">
<mkdir dir="docs/api" />
<move toDir="src/checkstyle">
<fileset dir="src/checkstyle" includes="**/Generated*.java" />
<fileset dir="src/checkstyle" includes="**/Generated*.txt" />
<fileset dir="src/checkstyle" includes="**/MyCommonAST.java" />
<mapper type="glob" from="*" to="*.HIDING"/>
</move>
<javadoc sourcepath="src/checkstyle" destdir="docs/api"
packagenames="com.puppycrawl.tools.checkstyle"
Windowtitle="Checkstyle API"
classpathref="javadoc.classpath" />
<move toDir="src/checkstyle">
<fileset dir="src/checkstyle" includes="**/*.HIDING" />
<mapper type="glob" from="*.HIDING" to="*"/>
</move>
</target>
</project>