Files
sdk/compiler/dart_analyzer.xml
T
devoncarew@google.com 50d731bd00 Rev the version of apache ant in third_party to 1.8.4. This will fix an issue with
windows build failures not being reported correctly (older versions of ant didn't 
properly return process eit codes). It will also let us use some newer features of
ant.
Review URL: https://codereview.chromium.org//11973012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17228 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-17 17:56:34 +00:00

191 lines
6.5 KiB
XML

<!--
Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
for details. All rights reserved. Use of this source code is governed by a
BSD-style license that can be found in the LICENSE file.
-->
<project default="dist">
<import file="sources.xml"/>
<import file="test_sources.xml"/>
<!--
The file build.properties does not exist. If provided, properties can be customized.
-->
<property file="build.properties" />
<!--
Configuration properties.
-->
<property name="build.dir" value="out"/>
<property name="build.classes.dir" value="${build.dir}/classes"/>
<property name="build.test.classes.dir" value="${build.dir}/test/classes"/>
<property name="dart_analyzer.jar" value="${build.dir}/dart_analyzer.jar"/>
<property name="dist.dir" value="${build.dir}/dist"/>
<property name="test.report.dir" value="${build.dir}/test"/>
<property name="third_party.dir" value="../third_party"/>
<property name="test_py" location="../tools/test.py"/>
<!--
Define buildtime and runtime classpaths.
-->
<path id="classpath.compile">
<pathelement location="${third_party.dir}/args4j/2.0.12/args4j-2.0.12.jar"/>
<pathelement location="${third_party.dir}/guava/r09/guava-r09.jar"/>
<pathelement location="${third_party.dir}/json/r2_20080312/json.jar"/>
</path>
<path id="classpath.runtime">
<path refid="classpath.compile"/>
</path>
<path id="classpath.compile.tests">
<path refid="classpath.compile"/>
<pathelement location="${build.classes.dir}"/>
<pathelement location="${third_party.dir}/junit/v4_8_2/junit.jar"/>
</path>
<path id="classpath.run.tests">
<path refid="classpath.compile.tests"/>
<pathelement location="${build.test.classes.dir}"/>
<pathelement location="${third_party.dir}/hamcrest/v1_3/hamcrest-core-1.3.0RC2.jar"/>
<pathelement location="${third_party.dir}/hamcrest/v1_3/hamcrest-generator-1.3.0RC2.jar"/>
<pathelement location="${third_party.dir}/hamcrest/v1_3/hamcrest-integration-1.3.0RC2.jar"/>
<pathelement location="${third_party.dir}/hamcrest/v1_3/hamcrest-library-1.3.0RC2.jar"/>
<pathelement location="${third_party.dir}/fest/fest-util-1.1.6.jar"/>
<pathelement location="${third_party.dir}/fest/fest-assert-1.4.jar"/>
</path>
<target name="compile" description="Compiles all of the java source and copies resources to the classes directory.">
<!--
Ensure the necessary subdirectories exist.
-->
<mkdir dir="${build.classes.dir}"/>
<javac destdir="${build.classes.dir}"
sourcepath=""
srcdir="java"
includes="${java_sources}"
fork="true"
debug="true"
source="1.6"
target="1.6"
includeAntRuntime="false">
<classpath refid="classpath.compile"/>
</javac>
<!--
Copy all non-java resources.
-->
<copy todir="${build.classes.dir}">
<filelist refid="java_resources"/>
</copy>
</target>
<!--
We rely on GYP to call these targets when dependencies change, hence this
ant file cannot be used standalone.
-->
<target name="compile-tests" depends="compile" description="Compiles all of the java tests and copies the resources to the test classes directory." >
<mkdir dir="${build.test.classes.dir}"/>
<javac destdir="${build.test.classes.dir}"
sourcepath=""
srcdir="javatests"
includes="${javatests_sources}"
excludes="com/google/dart/compiler/vm/**"
fork="true"
debug="true"
source="1.6"
target="1.6"
includeAntRuntime="false">
<classpath refid="classpath.compile.tests"/>
</javac>
<!--
Copy the non-java resources.
-->
<copy todir="${build.test.classes.dir}">
<filelist refid="javatests_resources"/>
</copy>
</target>
<target name="dart_analyzer.jar" depends="compile" description="Creates a jar without bundling the dependencies.">
<jar destfile="${dart_analyzer.jar}" basedir="${build.classes.dir}"
manifest="dart_analyzer.mf"/>
</target>
<target name="dist" depends="dart_analyzer.jar"
description="Create a directory with a standalone distribution.">
<!--
Ensure the necessary subdirectories exist.
-->
<mkdir dir="${dist.dir}/bin"/>
<mkdir dir="${dist.dir}/util"/>
<mkdir dir="${dist.dir}/util/analyzer"/>
<!--
Copy the dart jar to the lib folder.
-->
<copy file="${dart_analyzer.jar}" todir="${dist.dir}/util/analyzer"/>
<!--
Re-root the classpaths from third_party into the util folder of the distro.
-->
<pathconvert property="analyzer.classpath.runtime.unix" targetos="unix" refid="classpath.runtime">
<regexpmapper from="${third_party.dir}/(.*)" to="$DART_ANALYZER_LIBS/\1"/>
</pathconvert>
<pathconvert property="analyzer.classpath.runtime.win" targetos="windows" refid="classpath.runtime">
<regexpmapper from="(.*)third_party\\(.*)" to="%DART_ANALYZER_LIBS%\\\2"/>
</pathconvert>
<copy file="scripts/dart_analyzer.sh" tofile="${dist.dir}/bin/dart_analyzer">
<filterset>
<filter token="CLASSPATH" value="$DART_ANALYZER_LIBS/dart_analyzer.jar:${analyzer.classpath.runtime.unix}"/>
</filterset>
</copy>
<chmod file="${dist.dir}/bin/dart_analyzer" perm="a+rx"/>
<copy file="scripts/dart_analyzer.bat" tofile="${dist.dir}/bin/dart_analyzer.bat">
<filterset>
<filter
token="CLASSPATH"
value="%DART_ANALYZER_LIBS%\dart_analyzer.jar;${analyzer.classpath.runtime.win}"/>
</filterset>
</copy>
<!--
TODO: The following files are not strictly due to dist, move them out.
-->
<copy todir="${build.dir}">
<fileset dir="scripts">
<include name="analyzer_metrics.sh"/>
</fileset>
<filterset>
<filter token="CLASSPATH" value="$DART_ANALYZER_LIBS/dart_analyzer.jar:${analyzer.classpath.runtime.unix}"/>
</filterset>
</copy>
<chmod file="${build.dir}/analyzer_metrics.sh" perm="a+rx"/>
<!--
Copy of all dependencies to the util folder.
-->
<copy todir="${dist.dir}/util/analyzer">
<path refid="classpath.runtime"/>
<regexpmapper from="(.*)third_party[/\\](.*)" to="\2"/>
</copy>
</target>
<target name="clean" description="Deletes the build output directory.">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
</target>
<target name="tests.jar" depends="compile-tests">
<jar destfile="${build.dir}/tests.jar" basedir="${build.test.classes.dir}"/>
</target>
</project>