dart-sdk/compiler/build.xml

183 lines
6.2 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">
<!--
EDIT DARTC.XML FIRST. This file is no longer used to build
dartc proper. It is only here to avoid breaking dartium.gyp
short term. Change dartc.xml to get everything working,
then update this file to match.
-->
<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/r13/guava-13.0.1.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"/>
</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">
<classpath refid="classpath.compile"/>
</javac>
<!--
Copy all non-java resources.
-->
<copy todir="${build.classes.dir}">
<filelist refid="java_resources"/>
</copy>
</target>
<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">
<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 for dartc 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="Creates a directory that contains 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 library 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>
<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="$DARTC_LIBS/dart_analyzer.jar:${analyzer.classpath.runtime.unix}"/>
</filterset>
</copy>
<chmod file="${build.dir}/analyzer_metrics.sh" perm="a+rx"/>
<!--
Copy of all of the dependencies to the lib folder.
-->
<copy todir="${dist.dir}/util/analyzer">
<path refid="classpath.runtime"/>
<regexpmapper from="${third_party.dir}/(.*)" to="\1"/>
</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>