<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id$ -->
<project name="zweic" default="build" basedir=".">
<property environment="env"/>
<property name="scala.home" value="${env.SCALA_HOME}"/>
<property file="./build.properties"/>
<condition property="os.win"><os family="windows"/></condition>
<target name="init.win" if="os.win">
<property name="scala.home.win" value="${scala.home}"/>
<property name="scala.prefix" value="${scala.home.win}"/>
</target>
<target name="init.unix" unless="os.win">
<property name="scala.home.unix" value="${scala.home}"/>
<property name="scala.prefix" value="${scala.home.unix}/share/scala"/>
</target>
<target name="init" depends="init.win, init.unix">
<echo level="verbose">scala.prefix=${scala.prefix}</echo>
<path id="scala.cpath">
<pathelement location="${scala.prefix}/lib/fjbg.jar"/>
<pathelement location="${scala.prefix}/lib/msil.jar"/>
<pathelement location="${scala.prefix}/lib/scala.jar"/>
</path>
<path id="scalac.cpath">
<path refid="scala.cpath"/>
<pathelement location="${scala.prefix}/src"/>
<pathelement location="${scala.prefix}/lib/tools.jar"/>
</path>
<fail message="Directory ${scala.prefix} does not contain a valid Scala distribution">
<condition><not>
<available classname="scala.tools.scalac.ant.Scalac"
classpathref="scalac.cpath"/>
</not></condition>
</fail>
<taskdef name="scalac"
classname="scala.tools.scalac.ant.Scalac"
classpathref="scalac.cpath"/>
</target>
<target name="build" depends="init">
<mkdir dir="${output.dir}"/>
<javac srcdir="${sources.dir}" destdir="${output.dir}">
<classpath>
<pathelement location="${output.dir}"/>
</classpath>
<include name="**/*.java"/>
</javac>
<scalac srcdir="${sources.dir}" destdir="${output.dir}"
excludes="${exclude.files}">
<classpath>
<pathelement location="${output.dir}"/>
</classpath>
<include name="**/*.scala"/>
<exclude name="**/*-partial.scala"/>
</scalac>
</target>
<target name="init.zweic" depends="init">
<macrodef name="zweic">
<attribute name="classname"/>
<attribute name="srcdir"/>
<attribute name="file"/>
<sequential>
<echo/>
<echo>Running zweic on file @{file}</echo>
<java classname="@{classname}" fork="true">
<classpath>
<path refid="scala.cpath"/>
<pathelement location="${output.dir}"/>
</classpath>
<arg line="@{srcdir}/@{file}"/>
</java>
</sequential>
</macrodef>
</target>
<target name="run" depends="build, init.zweic">
<zweic classname="${compiler.main}" srcdir="${examples.dir}" file="${test.file}"/>
</target>
<target name="init.submit">
<echo level="verbose">group=${group}</echo>
<condition property="isset.group">
<length string="${group.number}" length="2"/>
</condition>
<fail unless="isset.group">Erreur: votre numero de groupe manque ou est incorrect; veuillez le definir dans votre fichier build.properties</fail>
</target>
<target name="submit" depends="init.submit">
<zip destfile="${group}.zip">
<zipfileset dir="${sources.dir}" prefix="${group}/sources"
includes="**/*.scala"/>
<zipfileset dir="." prefix="${group}"
includes="Makefile,build.*"/>
</zip>
<mail mailhost="${mailhost}" mailport="${mailport}"
subject="[COMPILATION] ${group}">
<from address="${from.address}"/>
<to address="${to.address}"/>
<message>You'll find attached the solution of group ${group}.
</message>
<fileset dir=".">
<include name="${group}.zip"/>
</fileset>
</mail>
<delete file="${group}.zip"/>
</target>
<target name="clean">
<delete quiet="true">
<fileset dir="${output.dir}" includes="**/*.class"/>
<fileset dir="." includes=".latest-*"/>
</delete>
</target>
<target name="distclean" depends="clean">
<delete>
<fileset dir="." includes="**/*~"/>
<fileset dir="." includes="**/core*"/>
</delete>
</target>
</project>