﻿<?xml version="1.0" encoding="utf-8"?>
<project name="TD7-Interface" default="compile">

<!-- Projet Figures 
   *
   * auteur : Matthias Colin
   * version : 2.0 (03/05/2010)
  -->

 <!-- répertoire contenant le code source Java -->
<property name="src.dir" value="src" />

<!-- répertoire contenant toute la production générée à partir des sources
	et de ce fichier de pilotage de projet -->
<property name="build.dir" value="build" />

<!-- répertoire contenant le bytecode produit -->
<property name="classes.dir" value="${build.dir}/classes" />

<!-- nom de la classe exécutable -->
<property name="test.mainclass" value="fr.eisti.ing1.mc.java.figures.tests.TestFigures" />

<!-- répertoire contenant la librairie produite -->
<property name="lib.dir" value="${build.dir}/lib" />

<!-- nom de la librairie produite -->
<property name="lib.name" value="figuresMC.jar" />

<!-- répertoire contenant les archives -->
<property name="archive.dir" value="${build.dir}/archive" />

<!-- serveur de depot -->
<property name="server.name" value="deathstar.etude.pau.eisti.fr"/>
<!-- répertoire de depot sur le serveur (repository) -->
<property name="repository.dir" value="Archives/Java"/>
<!-- login sur le server de depot -->
<property name="login" value="mc"/>
<!-- password ou passphrase peuvent être écrit en dur dans ce fichier
	pour automatiser une tâche de backup ou déploiement
	mais c'est à déconseiller (surtout pour le password !!!)
	On peut alors définir une des 2 propriétés suivantes ou pour plus de
	sécurité les lire en ligne de commande (ant -Dpassphrase=XXXX targetXXX)
-->
<!-- password sur le server de depot (à éviter) -->
<!-- <property name="password" value="XXXX"/> -->
<!-- passphrase pour la commande scp (préférable) -->
<!-- <property name="passphrase" value="XXXX"/> -->


<!-- phase de test de la librairie -->

<!-- cible de compilation -->
<target name="compile.test">
	<mkdir dir="${classes.dir}"/>
	<javac srcdir="${src.dir}" destdir="${classes.dir}" />
</target>

<!-- cible d'exécution -->
<target name="run.test">
	<java classpath="${classes.dir}" classname="${test.mainclass}" fork="true"/>
</target>

<!-- génération de la librairie -->
<target name="compile.lib" depends="clean">
	<mkdir dir="${classes.dir}"/>
	<javac srcdir="${src.dir}" destdir="${classes.dir}" 
				excludes="**/tests/**" />
	<!-- on peut utiliser aussi includes="fr/eisti/ing1/mc/java/figures/*.java"  -->
	<mkdir dir="${lib.dir}"/>
	<jar destfile="${lib.dir}/${lib.name}" basedir="${classes.dir}" />
</target>

<!-- archivage du projet (tout sauf build/) -->
<target name="archive">
	<mkdir dir="${archive.dir}"/>
	<tar destfile="${archive.dir}/${ant.project.name}.tgz" compression="gzip">
		<tarfileset dir="../"
			includes="${ant.project.name}/**"
			excludes="${ant.project.name}/${build.dir}/**" />
	</tar>
</target>

<!-- règle de depot sur deathstar -->
<!-- attention : scp/ssh utilise un outil externe jsch.jar
		packets debian à avoir : libjsch-java, ant-optional
		+ lien /usr/share/ant/lib/jsch.jar -> ../../java/jsch.jar
		si ant ne trouve pas jsch
-->
<target name="depot" depends="archive">
		<!-- 1ère solution avec passphrase : -->
		<scp file="${archive.dir}/${ant.project.name}.tgz"
				todir="${login}@${server.name}:${repository.dir}" 
				keyfile="${user.home}/.ssh/id_dsa"
				passphrase="${passphrase}" trust="true"/>
		<!-- autre solution, moins sure (password) : -->
		<!--
		<scp file="${archive.dir}/${ant.project.name}.tgz"
				todir="${login}:${password}@${server.name}:${repository.dir}" 
				trust="true"/>
		-->
</target>


<!-- cible de nettoyage -->
<target name="clean">
	<delete dir="${build.dir}"/>
</target>

</project>

