# major version
version=3.1.0

# eclipse versions to build and test against
targets=3.3,3.4,3.5

# base directory for eclipse sdk and eclipse test 
eclipse.base=${basedir}/tools

# working directory for building
build.home=${basedir}/build
build.timestamp=${build.home}/timestamp.properties

# distribution directory for update sites
dist.home=${basedir}/dist

# unix group that needs write access to artifcats
dist.group=mylynadmin

# test-reporter properties
build.reporter.config=${basedir}/repository.properties
build.reporter.jar=${basedir}/test-report.jar
build.reporter.jvm=${java.home}/bin/java

# directory for build artifact
build.results=${basedir}/build-results

# test parameter
build.credentials=${basedir}/credentials.properties
build.host=default
build.assertAgainst=v20080619-1900
build.baseline=3.0_${build.assertAgainst}-${build.assertAgainst}
build.db=${basedir}/db
build.scenario=org.eclipse.mylyn
build.extraTestArgs=-Dmylyn.credentials=${build.credentials}
build.testxml=org.eclipse.mylyn.tests_0.0.0/test.xml

# build environment
build.os=linux
build.ws=gtk
build.arch=x86
build.archive=${build.os}-${build.ws}.tar.gz

#build.os=win32
#build.ws=win32
#build.arch=x86
#build.archive=${build.os}.zip

#eclipse.url.base=http://www.eclipse.org/downloads/download.php?r=1&file=/eclipse/downloads/drops
eclipse.url.archive=http://archive.eclipse.org/eclipse/downloads/drops
eclipse.url.download=http://download.eclipse.org/eclipse/downloads/drops
eclipse.url.test=${eclipse.url.archive}/R-3.3.2-200802211800/eclipse-test-framework-3.3.2.zip
eclipse.url.derby=http://www.apache.org/dist/db/derby/db-derby-10.4.2.0/derby_core_plugin_10.4.2.zip
#eclipse.url.svn=http://downloads.sourceforge.net/svn-pde-build/org.eclipse.pde.build.svn-1.0.1RC2.zip

eclipse.sdk.3.3=3.3.2
eclipse.sdk.3.4=3.4.2
eclipse.sdk.3.5=3.5M6
#eclipse.sdk.3.5=I20090224-0800

eclipse.url.3.3=${eclipse.url.archive}/R-${eclipse.sdk.3.3}-200802211800/eclipse-SDK-${eclipse.sdk.3.3}-${build.archive}
eclipse.url.3.4=${eclipse.url.download}/R-${eclipse.sdk.3.4}-200902111700/eclipse-SDK-${eclipse.sdk.3.4}-${build.archive}
eclipse.url.3.5=${eclipse.url.download}/S-${eclipse.sdk.3.5}-200903130100/eclipse-SDK-${eclipse.sdk.3.5}-${build.archive}
#eclipse.url.3.5=${eclipse.url.download}/${eclipse.sdk.3.5}/eclipse-SDK-${eclipse.sdk.3.5}-${build.archive}
