<?xml version="1.0"?>

<project xmlns:antcontrib="antlib:net.sf.antcontrib" xmlns:artifact="antlib:org.apache.maven.artifact.ant" xmlns:ivy="antlib:org.apache.ivy.ant" name="Build script for IDE users" basedir=".." default="theme-and-default-widgetset">
	<!-- FIXME, should use 7.0-SNAPSHOT of client compiler -->
	<property name="work.dir" location="work" />
	<property name="gwt.root" location="${basedir}/../trunk" />
	<property name="gwt.lib.dir" location="${gwt.root}/build/lib" />
	<property name="gwt.user.jar" location="${gwt.lib.dir}/gwt-user.jar" />
	<property name="gwt.dev.jar" location="${gwt.lib.dir}/gwt-dev.jar" />
	<property name="theme-version" location="9.9.9.INTERNAL-DEBUG-BUILD" />
	<echo>Using gwt-dev.jar from ${gwt.dev.jar}</echo>

	<ivy:resolve file="build/ivy-ide.xml" />
	<ivy:cachepath pathid="ivy.deps" conf="default" />

	<path id="classpath">
		<pathelement location="${gwt.user.jar}" />
		<pathelement location="${gwt.dev.jar}" />
		<path refid="ivy.deps" />
		<path location="bin" />
		<path location="build/classes" />
		<path location="server/src" />
		<path location="shared/src" />
		<path location="uitest/src" />
		<path location="client/src" />
	</path>

	<target name="theme-and-default-widgetset" depends="default-widgetset, themes">
	</target>
	<target name="themes">
		<antcall target="compile-theme">
			<param name="theme" value="base" />
		</antcall>
		<antcall target="compile-theme">
			<param name="theme" value="runo" />
		</antcall>
		<antcall target="compile-theme">
			<param name="theme" value="reindeer" />
		</antcall>
		<antcall target="compile-theme">
			<param name="theme" value="chameleon" />
		</antcall>
		<antcall target="compile-theme">
			<param name="theme" value="liferay" />
		</antcall>
	</target>

	<target name="compile-theme">
		<java classname="com.vaadin.buildhelpers.CompileTheme" failonerror="yes" fork="yes">
			<classpath refid="classpath" />
			<jvmarg value="-Djava.awt.headless=true" />
			<arg value="--theme" />
			<arg value="${theme}" />
			<arg value="--theme-version" />
			<arg value="${theme-version}" />
			<arg value="--theme-folder" />
			<arg value="WebContent/VAADIN/themes" />
		</java>

	</target>
	<target name="default-widgetset">
		<property name="module" value="com.vaadin.DefaultWidgetSet" />
		<property name="module.output.dir" location="WebContent/VAADIN/widgetsets" />
		<property name="style" value="PRETTY" />
		<property name="localWorkers" value="2" />
		<property name="extraParams" value="" />

		<mkdir dir="${module.output.dir}" />

		<echo>Compiling ${module} to ${module.output.dir} with parameters -logLevel TRACE -style ${style} -localWorkers ${localWorkers} -strict ${extraParams}</echo>

		<!--<ivy:resolve inline="true" organisation="javax.validation" module="validation-api" revision="1.0.0.GA"/>-->

		<!-- compile the module -->
		<java classname="com.google.gwt.dev.Compiler" classpathref="classpath" failonerror="yes" fork="yes" maxmemory="512m">
			<arg value="-workDir" />
			<arg value="${work.dir}" />
			<arg value="-logLevel" />
			<arg value="TRACE" />
			<arg value="-war" />
			<arg value="${module.output.dir}" />
			<arg value="-style" />
			<arg value="${style}" />

			<arg value="-localWorkers" />
			<arg value="${localWorkers}" />
			<arg value="-strict" />
			<arg line="${extraParams}" />
			<arg value="${module}" />

			<sysproperty key="vFailIfNotSerializable" value="true" />

			<jvmarg value="-Xss8M" />
			<jvmarg value="-XX:MaxPermSize=256M" />
			<jvmarg value="-Djava.awt.headless=true" />
		</java>

	</target>
</project>