<project name="Build specific targets and properties" default="noDefault" basedir=".">

	<!-- ===================================================================== -->
	<!-- Run a given ${target} on all elements being built -->
	<!-- ===================================================================== -->
	<target name="allElements">
		<ant antfile="${genericTargets}" target="${target}">
			<property name="type" value="feature" />
			<property name="id" value="org.eclipse.rse.sdk" />
		</ant>
	</target>

	<!-- ===================================================================== -->
	<!-- Targets to assemble the built elements for particular configurations  -->
	<!-- These generally call the generated assemble scripts (named in -->
	<!-- ${assembleScriptName}) but may also add pre and post processing -->
	<!-- Add one target for each root element and each configuration -->
	<!-- ===================================================================== -->

	<target name="assemble.org.eclipse.rse.sdk">
		<property name="archiveName" value="RSE-SDK-${buildAlias}.zip" />
		<ant antfile="${assembleScriptName}" />
		<!-- ADD POST STEPS -->
	</target>

	<!-- ===================================================================== -->
	<!-- Check out map files from correct repository -->
	<!-- Replace values for cvsRoot, package and mapVersionTag as desired. -->
	<!-- ===================================================================== -->
	<target name="checkLocal">
		<available property="mapsLocal" file="${buildDirectory}/maps" />
	</target>

	<target name="getMapFiles" depends="checkLocal" unless="mapsLocal">

		<!-- ***  change the repo info -->
		<property name="mapCvsRoot" value=":${cvsReadProtocol}:${cvsReadUser}@${cvsHost}:${cvsRep}" />

		<property name="mapVersionTag" value="HEAD" />
		<!-- <property name="packagePath" value="org.eclipse.${projectName}/org.eclipse.${subprojectName2}.releng/maps"/> -->
		<property name="packagePath" value="org.eclipse.${projectName}.${subprojectName2}/releng/org.eclipse.${projectName}.releng/maps"/>

		<cvs cvsRsh="ssh" cvsRoot="${mapCvsRoot}" tag="${mapVersionTag}" 
			package="${packagePath}" dest="${buildDirectory}/maps" />
		<copy todir="${buildDirectory}/maps/CVS" overwrite="true">
			<fileset dir="${buildDirectory}/maps/${packagePath}/CVS" />
		</copy>
		<copy todir="${buildDirectory}/maps" overwrite="true">
			<fileset dir="${buildDirectory}/maps/${packagePath}" />
		</copy>
		<delete dir="${buildDirectory}/maps/org.eclipse.${projectName}" />

		<!--tag the map files project-->
		<antcall target="tagMapFiles" />
	</target>

	<target name="tagMapFiles" if="tagMaps">
		<cvs cvsRsh="ssh" dest="${buildDirectory}/maps" command="tag v${timestamp}" />
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before setup -->
	<!-- ===================================================================== -->
	<target name="preSetup">
		<mkdir dir="${buildDirectory}/${buildLabel}"/>
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after setup but before starting the build proper -->
	<!-- ===================================================================== -->
	<target name="postSetup">
		<!-- TODO: if your project requires more dependencies, add them here; if it does not require all of these, remove those not required -->
		<echo message="Download, then unpack: Eclipse, EMF ..." />
		<ant target="getDependency" antfile="${buildDirectory}/../org.eclipse.modeling.common.releng/scripts/getDependencies.xml">
			<property name="url" value="${eclipseURL}" />
			<property name="file" value="${eclipseFile}" />
			<property name="isUnpackedFile" value="${buildDirectory}/plugins/org.eclipse.platform.doc.isv/plugin.xml" />
		</ant>

		<!-- Important: This must be the last dependency downloaded, because the
				getDependency target strips versions from all plug-ins -->
		<echo message="Download Orbit Bundles ..." />
		<ant target="getBundle" antfile="${buildDirectory}/../org.eclipse.modeling.common.releng/scripts/getDependenciesHelper.xml">
			<property name="url" value="${orbitURL}"/>
			<property name="file" value="${orbitFile}"/>
		</ant>
		<echo message="Unpack selected jars ..." />
		<unzip dest="${buildDirectory}/.." src="${downloadsDir}/${orbitFile}">
			<patternset>
				<include name="**/org.apache.oro*.jar"/>
				<include name="**/org.apache.commons.net*.jar"/>
			</patternset>
		</unzip>
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before fetching the build elements -->
	<!-- ===================================================================== -->
	<target name="preFetch">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after the fetch -->
	<!-- ===================================================================== -->
	<target name="postFetch">
		<replace dir="${buildDirectory}/plugins" value="${timestamp}" token="@buildid@">
			<include name="**/about.mappings" />
		</replace>
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before generating build scripts -->
	<!-- ===================================================================== -->
	<target name="preGenerate">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after generating the build scripts -->
	<!-- ===================================================================== -->
	<target name="postGenerate">
		<antcall target="clean" />
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before assembling -->
	<!-- ===================================================================== -->
	<target name="preAssemble">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after assembling-->
	<!-- ===================================================================== -->
	<target name="postAssemble">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before running the build.xmls for the elements being built. -->
	<!-- ===================================================================== -->
	<target name="preProcess">
		<replace dir="${buildDirectory}/plugins" value="${timestamp}" token="@build@">
			<include name="**/about.mappings" />
		</replace>
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after running the build.xmls for the elements being built. -->
	<!-- ===================================================================== -->
	<target name="postProcess">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after everything is built and assembled -->
	<!-- (e.g., testing, posting, emailing, ...) -->
	<!-- ===================================================================== -->
	<target name="postBuild">
		<antcall target="gatherLogs" />
	</target>

	<!-- ===================================================================== -->
	<!-- Helper targets -->
	<!-- ===================================================================== -->
	<target name="gatherLogs">
		<mkdir dir="${buildDirectory}/${buildLabel}/compilelogs" />
		<antcall target="allElements">
			<param name="target" value="gatherLogs" />
		</antcall>

		<unzip dest="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true">
			<fileset dir="${buildDirectory}/features/org.eclipse.rse.sdk">
				<include name="*.log.zip" />
			</fileset>
		</unzip>
	</target>
	<target name="clean" unless="noclean">
		<antcall target="allElements">
			<param name="target" value="cleanElement" />
		</antcall>
	</target>

	<!-- ===================================================================== -->
	<!-- Default target                                                        -->
	<!-- ===================================================================== -->
	<target name="noDefault">
		<echo message="You must specify a target when invoking this file" />
	</target>

</project>
