<project default="run" name="org.eclipse.nebula.widgets.releng/build.xml - Run a build using the Athena CBI">
	<target name="run">
		<!-- 
			1. You must check out the following projects to your workspace:
		
				org.eclipse.releng.basebuilder
				org.eclipse.dash.common.releng 
				org.eclipse.myproject.releng
				
			2. You must provide Ant-Contrib in one of four places:
			
				org.eclipse.dash.common.releng/lib/ant-contrib.jar
				org.eclipse.myproject.releng/lib/ant-contrib.jar
				${thirdPartyJarsDir}/ant-contrib.jar (path can be customized below) 
				/usr/share/java/ant-contrib.jar (may require a symlink)
			
				You can install Ant-Contrib via RPM, or download it here:
			
				http://downloads.sourceforge.net/ant-contrib/ant-contrib-1.0b3-bin.zip
			
			3. If your project's sources are in SVN, you must unpack this zip into the basebuilder project's plugins/ folder:
			
				http://downloads.sourceforge.net/svn-pde-build/org.eclipse.pde.build.svn-1.0.1RC2.zip
				
			4. To run automated JUnit tests headlessly, you will require Xvfb or Xvnc; without this, 
				UI tests will be launched into your current OS session (ie., on view port :0) and you may
				inadvertently interact with them. (Non-UI tests can be run without fear of accidental 
				interaction and do not have this requirement.) 
				
			5. You must also ensure that the path specified for Java, and the version of Eclipse stated in build.properties
				are correct for your machine. Edit these properties to suit your needs. Note that JAVA*_HOME variables are for 
				convenience, set in common.releng/server.properties. You can override them in your build.properties, or define 
				different defaults in server.properties, if you intend to run more than one build on this server.  
				
					dependencyURLs=http://download.eclipse.org/eclipse/downloads/drops/S-3.5M5-200902021535/eclipse-SDK-3.5M5-linux-gtk.tar.gz 
					JAVA_HOME=${JAVA14_HOME}
		-->

		<!-- load properties and set timestamp for the build -->
		<property file="build.properties" />
		<tstamp>
			<format property="buildTimestamp" pattern="yyyyMMddHHmm" />
		</tstamp>
		
		<property name="forceContextQualifier" value="v${buildTimestamp}" />
		
		<!-- calculate workspaceDir as parent of this folder, the project's .releng folder (relengBuilderDir) -->
		<property name="relengBuilderDir" value="${basedir}" />
		<dirname file="${relengBuilderDir}" property="workspaceDir" />

		<!-- 
			can build in /tmp, eg., in /tmp/build, or in workspace, eg.,
			${relengBuilderDir}/build
		-->
		<property name="writableBuildRoot" value="/tmp/build" />

		<!-- 
			can be simple path, eg., 
			${writableBuildRoot}/${buildType}${buildTimestamp} or longer, eg.,
			${writableBuildRoot}/${topprojectName}/${projectName}/downloads/drops/${version}/${buildType}${buildTimestamp} or
			${writableBuildRoot}/${topprojectName}/${projectName}/${subprojectName}/downloads/drops/${version}/${buildType}${buildTimestamp}
		-->
		<property name="buildDir" value="${writableBuildRoot}/${buildType}${buildTimestamp}" />

		<!-- invoke a new Eclipse process and launch the build from the common.releng folder -->
		<property name="relengCommonBuilderDir" value="${workspaceDir}/org.eclipse.dash.common.releng" />
		<ant antfile="${relengCommonBuilderDir}/buildAll.xml" target="runEclipse" dir="${relengCommonBuilderDir}" />
	</target>
</project>
