<?xml version="1.0"?>
<!--
###############################################################################
# Copyright (c) 2012 IBM Corporation and others.
# 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:
#     IBM Corporation - initial API and implementation
###############################################################################
-->
<project name="STEM PDE Builder" default="build" basedir=".">	

	<property name="relengHome" value="${basedir}" />
	<property file="${basedir}/build.properties" />
	
	<property name="buildHome" value="${basedir}/build"/>

	<property name="repoBaseLocation" value="${basedir}/inputRepos" />
	<property name="transformedRepoLocation" value="${basedir}/transformedRepos" />
	
	<property name="buildFeature" value="true" />
	<property name="buildProduct" value="true" />
	<property name="runTests" value="false" />
	
	<property name="data.version" value="3.0.0.201410041849" />
	
	<tstamp>
    	<format property="buildDate" pattern="yyyyMMddHHmmss" />
  	</tstamp>
  	
  	
  	
	<property name="buildQualifier" value="" />
	<property name="majorVersion" value="2.0.0" />
	<property name="buildTypeFull" value="nightly" />
	<property name="publishBuild" value="false" />
	<property name="cleanupFirst" value="false" />
	<property name="publishDir" value="${basedir}" />
	<!--<property name="eclipse.home" location="/Developer/eclipse-installs/eclipse3710-bare" />-->
	<!--<property name="eclipse.deltapack.home" location="/Users/mattadav/Downloads/delta"/>-->
	
	<property name="mapDirectoryFile" value="${basedir}/maps/directories.properties" />
	<property file="${mapDirectoryFile}" />
	
	<!--<property name="skipData" value="true" />-->
	
	
	

	<target name="clean.build.home" if="is.build.feature">
		<delete dir="${buildHome}"/>
	</target>
	
	<target name="init" depends="set.build.label,clean.build.home">
		<mkdir dir="${buildHome}" />
		<mkdir dir="${buildHome}/maps" />
		<copy file="${basedir}/maps/stem.map" todir="${buildHome}/maps" />
	</target>

	 <target name="build.feature" depends="fetch.eclipse.components" if="is.build.feature">
	 	<echo>Building Features for ${buildLabelSuffix}</echo>
	 	 <ant antfile="${basedir}/buildFeature.xml" inheritAll="true" />
	 	 <ant antfile="${basedir}/buildModelGenFeature.xml" inheritAll="true" />
	 </target>
	 
	 <target name="build.product" depends="fetch.eclipse.deltapack,prepare.lang.packs" if="is.build.product">
	 	<echo>Building Product for ${buildLabelSuffix}</echo>
	 	<property name="archiveNamePrefix" value="STEM-${buildLabelSuffix}" />
	 	<ant antfile="${basedir}/buildProduct.xml" inheritAll="true" />
	 </target>
	 
	 <target name="run.tests" if="is.run.tests">
	 	<echo>Running Test Suite for ${buildLabelSuffix}</echo>
		<ant antfile="${basedir}/runTests.xml" inheritAll="true" />
	 </target>
	 
	 
	 <target name="build.all.eclipse" depends="init,build.feature,build.product,run.tests" >
	 	<echo>Done building ${buildLabelSuffix}</echo>
	 </target>
	 
	 <!--,build.feature,build.product-->
	 <target name="build.all" if="eclipse.running" >
	 	<antcall target="build.all.eclipse" />
	 </target>
	 
	<path id="eclipse.class.path">
   		<fileset dir="${eclipse.home}/plugins">
   			<include name="org.eclipse.equinox.launcher_*.jar"/>
   		</fileset>
  	</path>
  	
  	
  	<target name="prepare.lang.packs">
		<mkdir dir="${buildHome}/languages/plugins" />	
		<mkdir dir="${buildHome}/languages/plugins" />	
		
		<unzip dest="${buildHome}/languages" >
			<globmapper from="eclipse/*" to="*"/>
		    <fileset dir="${relengHome}/resources/babel">
		        <include name="**/*.zip"/>
		    </fileset>
		</unzip>
	</target>
  	
  	<target name="fetch.eclipse.components">
  		<echo>Synchronizing Eclipse dependencies</echo>

		
  		<p2.mirror destination="file:${repoBaseLocation}/mirrored" description="STEM dependencies">
  			<source>
  			<repository location="http://download.eclipse.org/stem/update-site/data/" />
  			<repository location="http://download.eclipse.org/releases/juno/" />
  			<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20120119162704/repository/" />
  			<repository location="http://download.eclipse.org/stem/update-site/data/" />
  			<repository location="http://download.itemis.com/updates/" />
  			</source>

  			<iu id="org.eclipse.draw2d.feature.group" version="3.9.0.201212170307" />
			<iu id="org.eclipse.gef.feature.group" version="3.9.0.201212170307" />
  			<iu id="org.eclipse.zest.feature.group" version="1.5.0.201212170307" />
  			<iu id="org.eclipse.emf.feature.group" version="2.8.3.v20130125-0826" />
  			<iu id="org.eclipse.birt.feature.group" version="4.2.2.v201301281649-ClBI9nGZcVSofEz-Xuz0n-ruJtUm" />  			
  			<!--<iu id="org.apache.commons.math" version="2.1.0.v201105210652l" />-->
  			<iu id="org.apache.commons.collections" version="3.2.0.v201005080500" />
  			<iu id="org.apache.commons.io" version="2.0.1.v201105210651" />
  			<iu id="org.apache.commons.lang" version="2.1.0.v201005080500" />
  			
  			<iu id="org.eclipse.stem.data.feature.feature.group" version="${data.version}" />
  			<iu id="org.eclipse.xtext.sdk.feature.group" version="2.3.1.v201208210947" />
  			<iu id="org.eclipse.xtend.sdk.feature.group" version="2.3.1.v201208210947" />
  			
  			<!--<iu id="de.itemis.xtext.antlr.sdk.feature.group" version="2.0.0.v201108011202" />
  			-->
 			<slicingOptions includeFeatures="true" followStrict="true"/>
		</p2.mirror>
		
  	</target>
  	
  	<target name="fetch.eclipse.deltapack" if="is.build.product" unless="eclipse.deltapack.available">
  		<!--<echo>Synchronizing Eclipse deltapack dependencies</echo>
  		<p2.mirror destination="file:${repoBaseLocation}/mirrored" description="Eclipse Deltapack dependencies">
  			<source>
	  			<repository location="http://download.eclipse.org/eclipse/updates/3.7/" />
  			</source>
  			<iu id="org.eclipse.equinox.executable.feature.group" version="3.5.0.v20110530-7P7NFUFFLWUl76mart" />
  			<iu id="org.eclipse.platform.feature.group" version="3.7.1.r37x_v20110729-9gF7UHOxFtniV7mI3T556iZN9AU8bEZ1lHMcVK" />
  			<iu id="org.eclipse.rcp.feature.group" version="3.7.1.r37x_v20110729-9DB5FmNFnFLSFCtLxnRfMqt15A4A"  />
   			<slicingOptions includeFeatures="true" followStrict="true"/>
		</p2.mirror>-->
  	</target>
  	

	 <target name="eclipse.sane" unless="eclipse.running">
	 	<available 
	 		property="eclipse.home.valid" 
	 		type="dir"
	 		file="${eclipse.home}/plugins" />
	 	<fail unless="eclipse.home.valid" 
	 		message="eclipse.home is not a valid path.  Please verify eclipse.home is a valid path." />
	 
	 	<available ignoresystemclasses="true" 
			property="eclipse.launcher.available" 
			classname="org.eclipse.core.launcher.Main" 
			classpathref="eclipse.class.path" />
		<fail unless="eclipse.launcher.available" 
			message="Eclipse launcher not available. Please verify eclipse.home is a valid path." />
	 
	 	<condition property="eclipse.deltapack.available">
	 		<or>
	 			<available type="file" file="feature.xml">
	 				<filepath>
	 					<dirset dir="${eclipse.home}/features">
  							<include name="**/org.eclipse.equinox.executable*/**"/>
  						</dirset>
	 				</filepath>
	 			</available>
	 			<and>
	 				<available type="dir" file="${eclipse.deltapack.home}/features"/>
	 				<available type="file" file="feature.xml">
	 					<filepath>
	 					<dirset dir="${eclipse.deltapack.home}/features">
  							<include name="**/org.eclipse.equinox.executable*/**"/>
  						</dirset>
  						</filepath>
  					</available>
	 			</and>
	 		</or>
	 	</condition>
	 
	 	<!--<fail unless="eclipse.deltapack.available" 
			message="Eclipse Deltapack not available. Please install into eclipse.home or set eclipse.deltapack.home property." />
			-->
	 </target>

	 <target name="launch.eclipse" depends="eclipse.sane">
	 	
	 	<java classname="org.eclipse.core.launcher.Main" fork="true" failonerror="true">
			<syspropertyset id="source.path.properties">
				<propertyref builtin="all"/>
			</syspropertyset>
			<!-- -Xdebug -Xrunjdwp:transport=dt_socket,address=localhost:8000,suspend=n -->
			<jvmarg line="-XX:+UseParNewGC -Xms256M -Xmx768M -XX:MaxPermSize=512M" />
			<classpath refid="eclipse.class.path" />
			<arg value="-application"/>
			<arg value="org.eclipse.ant.core.antRunner"/>
			<arg value="-logger" />
			<arg value="org.apache.tools.ant.DefaultLogger" />
			<arg value="-buildfile" />
			<arg value="${relengHome}/build.xml"/>
	 		<arg value="build.all" />
	   </java>
	 </target>

	<target name="build" depends="launch.eclipse,build.all">
	</target>
	
	<target name="set.build.label" depends="set.build.label.nightly,set.build.label.integration,set.build.label.stable,set.build.label.release">
		<property name="forceContextQualifier" value="${buildQualifierPrefix}${buildDate}" />
	</target>
	
	<target name="set.build.label.nightly" if="is.nightly.build">
		<echo>Nightly Build</echo>
		<property name="buildQualifierPrefix" value="N" />
		<property name="buildLabelSuffix" value="${majorVersion}.${buildQualifierPrefix}${buildDate}" />
	</target>
	
	<target name="set.build.label.integration" if="is.integration.build">
		<echo>Integration Build</echo>
		<property name="buildQualifierPrefix" value="I" />
		<property name="buildLabelSuffix" value="${majorVersion}.${buildQualifierPrefix}${buildDate}" />
	</target>
	
	<target name="set.build.label.stable" if="is.stable.build">
		<echo>Stable Build</echo>
		<property name="buildQualifierPrefix" value="M" />
		<property name="buildLabelSuffix" value="${majorVersion}${buildQualifier}" />
	</target>
	
	<target name="set.build.label.release" if="is.release.build">
		<echo>Release Build</echo>
		<property name="buildLabelSuffix" value="${majorVersion}" />
	</target>

	<condition property="is.nightly.build">
		<equals arg1="${buildTypeFull}" arg2="nightly" />
	</condition>
	<condition property="is.integration.build">
		<equals arg1="${buildTypeFull}" arg2="integration" />
	</condition>
	<condition property="is.stable.build">
		<equals arg1="${buildTypeFull}" arg2="stable" />
	</condition>
	<condition property="is.release.build">
		<equals arg1="${buildTypeFull}" arg2="release" />
	</condition>
	
	<condition property="is.publish.build">
		<istrue value="${publishBuild}" />
	</condition>
	
	<condition property="is.build.feature">
		<istrue value="${buildFeature}" />
	</condition>
	<condition property="is.build.product">
		<istrue value="${buildProduct}" />
	</condition>	
	<condition property="is.run.tests">
		<istrue value="${runTests}" />
	</condition>
	<condition property="is.skip.data">
		<istrue value="${skipData}" />
	</condition>
	
</project>
