<?xml version="1.0" encoding="UTF-8"?>
<!--
 *************************************************************************
 * Copyright (c) 2006 Actuate Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *  Actuate Corporation - initial API and implementation
 *  
 *************************************************************************
 *
 *  build.xml
 *
 *  Build script for project org.eclipse.datatools.modelbase.sql.xml.query.nl
 *
 * "Clean" - Clean nl.jar file and *.properties files generated from
 *           native2ascii.exe.
 * "Jar"   - Convert *_xx_YY.msg files into *_xx_YY.properties files by native2ascii.exe and
 *            create nl.jar file.
 * "Export" - Export the project, for instance, jar files are copied to a designated folder. 
 *            this task must be called after calling Jar task, so it needn't depend on Jar explicitly
 *
 *  Usage:
 *    ant [any one or more of the public targets] 
 *        -Declipse.home=<your eclipse home> 
 *		  -Ddtp.home=<your DTP plugins source home>  [optional]
 *
 *  Default target is "Jar".
 *
 *  Notes:
 *  1. classpath need to be set for junit.jar
 *  2. The build script requires Ant 1.6
 *
-->

<project name="org.eclipse.datatools.modelbase.sql.xml.query.nl" default="Jar" basedir=".">
	<description>NL Fragment for org.eclipse.datatools.modelbase.sql.xml.query.edit</description>

	<property file="META-INF/MANIFEST.MF" />
    <property name="dir.src" value="src" />
 	<property name="dir.bin" value="bin" />
	<property name="nl.group" value="1" />
	<property name="module.name" value="org.eclipse.datatools.modelbase.sql.xml.query.nl" />
	<property name="jar.name" value="${module.name}${nl.group}_${Bundle-Version}.jar" />

	<target name="Clean">
		<delete>
			<fileset dir="." includes="**/*_??_??.properties" />
			<fileset dir="." includes="${jar.name}" />
		</delete>
	</target>
	
	<target name="NativeToAscii" 
	     description="Execute native2ascii for *.msg files">


		<native2ascii encoding="Cp1252"
					  src="." 
					  dest="." 
					  ext=".properties" 
					  includes="**/*_de_DE.msg, **/*_fr_FR.msg, **/*_es_ES.msg"/>
		<native2ascii encoding="GBK" 
					  src="." 
					  dest="." 
					  ext=".properties" 
					  includes="**/*_zh_CN.msg"/>	
		<native2ascii encoding="SJIS" 
					  src="." 
					  dest="." 
					  ext=".properties"
					  includes="**/*_ja_JP.msg"/>
		<native2ascii encoding="MS949" 
					  src="." 
					  dest="." 
					  ext=".properties"
					  includes="**/*_ko_KR.msg"/>
	</target>
	
	<target name="nl-jar">
		<jar destfile="${jar.name}" manifest="./META-INF/MANIFEST.MF">
		<zipfileset dir="." includes="plugin_??_??.properties"/>
		</jar>
	</target>
	
	<target name="Jar" depends="NativeToAscii, nl-jar" >
	</target>
	<target name="Export">
		<copy todir="${export.dir}">
	        <fileset dir="." includes="${jar.name}"/>
	  </copy>
	</target>

</project>
