<?xml version="1.0" encoding="UTF-8"?>
<project name="blancoFileManager" default="build" basedir=".">
	<target name="build" depends="blanco1g,blanco2g,compile,jar,pack" />

	<property name="version" value="0.0.1" />

	<property name="project" value="blancoFileManager" />
	<property name="project.lower" value="blancofilemanager" />
	<property name="project.zip" value="${project}-${version}-src.zip" />
	<property name="project.main.jar" value="blancofilemanager-${version}.jar" />

	<property name="encoding" value="UTF-8" />

	<!-- Antタスク定義 begin -->
	<taskdef name="blancoanttask" classname="blanco.anttask.task.BlancoAntTaskTask">
		<classpath>
			<fileset dir="lib" includes="*.jar" />
			<fileset dir="lib/blanco1g" includes="*.jar" />
		</classpath>
	</taskdef>

	<taskdef name="blancodb" classname="blanco.db.task.BlancoDbTask">
		<classpath>
			<fileset dir="lib" includes="*.jar" />
			<fileset dir="lib/blanco1g" includes="*.jar" />
		</classpath>
	</taskdef>

	<taskdef name="blancodbtableaccessor" classname="blanco.db.tableaccessor.task.BlancoDbTableAccessorTask">
		<classpath>
			<fileset dir="lib" includes="*.jar" />
			<fileset dir="lib/blanco1g" includes="*.jar" />
		</classpath>
	</taskdef>

	<taskdef name="blancofilemanagerdbtable" classname="blanco.filemanager.task.BlancoFileManagerDbTableTask">
		<classpath>
			<fileset dir="lib" includes="*.jar" />
			<fileset dir="lib/blanco1g" includes="*.jar" />
		</classpath>
	</taskdef>

	<taskdef name="blancofilemanagerimport" classname="blanco.filemanager.task.BlancoFileManagerImportTask">
		<classpath>
			<fileset dir="lib" includes="*.jar" />
			<fileset dir="lib/blanco1g" includes="*.jar" />
		</classpath>
	</taskdef>

	<taskdef name="blancofilemanagerreport" classname="blanco.filemanager.task.BlancoFileManagerReportTask">
		<classpath>
			<fileset dir="lib" includes="*.jar" />
			<fileset dir="lib/blanco1g" includes="*.jar" />
		</classpath>
	</taskdef>

	<taskdef name="blanco2g" classname="blanco.blanco2g.task.Blanco2gTask">
		<classpath>
			<fileset dir="lib/blancofw" includes="*.jar" />
			<fileset dir="lib/blanco1g" includes="*.jar" />
			<fileset dir="lib/blanco2g" includes="*.jar" />
			<fileset dir="lib/eclipse" includes="*.jar" />
		</classpath>
	</taskdef>

	<target name="pack">
		<echo>packing project</echo>
		<delete file="${project.zip}" />
		<delete dir="bin" />
		<delete dir="javadoc" />

		<delete dir="tmp" />

		<!-- このシステムではコピーは行わないことにします。代わりに手動でコピーしてください。
		<copy todir="lib.ant">
			<fileset dir=".">
				<include name="${project.lower}-*.jar" />
			</fileset>
		</copy>
		-->

		<!-- コピーしないので削除もしません。
		<delete>
			<fileset dir=".">
				<include name="${project.lower}-*.jar" />
			</fileset>
		</delete>
		-->

		<zip destfile="${project.zip}">
			<zipfileset dir="." prefix="${project}" excludes="${project.zip},**/*.class,tmp.db/**,derby.log" />
		</zip>

	</target>

	<target name="jar">
		<echo>building jar</echo>

		<delete file="${project.main.jar}" />
		<jar destfile="${project.main.jar}">
			<zipfileset dir="doc" prefix="doc" />
			<!-- classの取り込み (※sampleは除外) -->
			<zipfileset dir="bin" includes="**/*" excludes="blanco/sample/**" />
			<!-- Javaソースコード(通常)の取り込み (※sampleは除外) -->
			<zipfileset dir="src" includes="**/*" prefix="src" excludes="blanco/sample/**" />
			<!-- Javaソースコード(自動生成)の取り込み (※sampleは除外) -->
			<zipfileset dir="blanco/main" includes="**/*.java" prefix="src" excludes="blanco/sample/**" />
			<!-- プロパティファイルの取り込み -->
			<zipfileset dir="blanco/main" includes="**/*.properties" excludes="blanco/sample/**" />
			<!-- 自動生成の原料 (meta) の取り込み -->
			<zipfileset dir="meta" prefix="doc/meta" />
		</jar>
	</target>

	<target name="compile">
		<delete dir="bin" />
		<mkdir dir="bin" />
		<javac destdir="bin" debug="true" source="1.5" target="1.5" fork="false" encoding="${encoding}">
			<src path="blanco/main/" />
			<src path="src/" />
			<classpath>
				<!-- ワイルドカードで一括取り込み -->
				<fileset dir="lib" includes="*.jar" />
				<fileset dir="lib/apache" includes="*.jar" />
				<fileset dir="lib/blanco1g" includes="*.jar" />
				<fileset dir="lib/blancofw" includes="*.jar" />
			</classpath>
			<include name="**/*.java" />
		</javac>
	</target>

	<target name="javadoc">
		<echo>JavaDocを生成します。</echo>
		<delete dir="javadoc" />
		<javadoc destdir="javadoc" encoding="${encoding}">
			<fileset dir="src" includes="**/*.java" />
			<fileset dir="blanco/main" includes="**/*.java" />
			<classpath>
				<fileset dir="lib" includes="*.jar" />
				<fileset dir="lib/apache" includes="*.jar" />
				<fileset dir="lib/blanco1g" includes="*.jar" />
				<fileset dir="lib/blancofw" includes="*.jar" />
			</classpath>
		</javadoc>
	</target>

	<target name="blanco1g.clean">
		<delete>
			<fileset dir="blanco/main">
				<include name="**/*.java" />
				<include name="**/*.properties" />
			</fileset>
		</delete>
	</target>

	<target name="blanco2g">
		<!-- Entry point for Blanco2g -->
		<!-- Two pass code generate -->
		<blanco2g sourcedir="src" sourcedir2="blanco/main" targetdir="blanco/main" verbose="true" />
		<blanco2g sourcedir="src" sourcedir2="blanco/main" targetdir="blanco/main" verbose="true" />
	</target>

	<target name="blanco1g">
		<blancoanttask metadir="meta/anttask" verbose="true" encoding="${encoding}" />

		<blancofilemanagerdbtable jdbcdriver="org.apache.derby.jdbc.EmbeddedDriver" jdbcurl="jdbc:derby:tmp.db/derby.db;create=true" jdbcuser="user" jdbcpassword="password" create="true" verbose="true" />
		<blancofilemanagerdbtable jdbcdriver="org.apache.derby.jdbc.EmbeddedDriver" jdbcurl="jdbc:derby:;shutdown=true" jdbcuser="user" jdbcpassword="password" create="false" verbose="true" />

		<blancodb jdbcdriver="org.apache.derby.jdbc.EmbeddedDriver" jdbcurl="jdbc:derby:tmp.db/derby.db;create=true" jdbcuser="user" jdbcpassword="password" metadir="meta/sql" basepackage="blanco.filemanager.db.runtime" encoding="${encoding}" sql="true" />
	</target>

	<target name="blanco1g.dbaccessor">
		<!-- 注意：テーブル単位簡易アクセスは別途 ANT 実行の必要があります -->
		<blancodbtableaccessor jdbcdriver="org.apache.derby.jdbc.EmbeddedDriver" jdbcurl="jdbc:derby:tmp.db/derby.db;create=true" jdbcuser="user" jdbcpassword="password" metadir="meta/dbaccessor" basepackage="blanco.filemanager.db.runtime" encoding="${encoding}" />
	</target>

	<target name="testImport">
		<!-- ファイル状況を取り込みます -->
		<!-- テスト用テーブルは本体のビルドにより生成されます -->
		<blancofilemanagerimport jdbcdriver="org.apache.derby.jdbc.EmbeddedDriver" jdbcurl="jdbc:derby:tmp.db/derby.db;create=true" jdbcuser="user" jdbcpassword="password" inputdir="." verbose="true" />
	</target>

	<target name="testReport">
		<!-- 現在の管理下にあるファイル状況を報告します -->
		<blancofilemanagerreport jdbcdriver="org.apache.derby.jdbc.EmbeddedDriver" jdbcurl="jdbc:derby:tmp.db/derby.db;create=true" jdbcuser="user" jdbcpassword="password" templatefile="meta/template/blancoFileManagerTemplate.xls" outputfile="tmp/test.xls" verbose="true" />
	</target>
</project>