
# comment out, if you want tests to run
# skipUnitTests=yes

mapVersionTag=HEAD
buildType=I
build.distribution=dltk


relengroot=
releng=releng.maps
releng.dltkbuilder=releng.dltkbuilder

# 	javacFailOnError must be false otherwise the 
# 	build will terminated at the first compile error
javacFailOnError=false
javacDebugInfo=true

# 	Asks the compiler for verbose output.  This should be set 
#   to true in order for *.bin.log files to be generated when
# 	using the JDT Compiler Adapter to compile.
javacVerbose=true


# This is the eclipse releng driver
# It is only used to drive the build process
# it must be relative to the build home
#
#
# in 3.2 based builds, this version is no longer appended to 
# pde builder directory name.
#eclipse.base.version=3.1.0

eclipse.builder=org.eclipse.releng.basebuilder
eclipse.builder.version=RC4_33
eclipse.builder.fetch=true


# WTP builder
dltkBuildTools.url=http://download.eclipse.org/webtools/wtpBuildTools/drops/R3.0/T-T200706302239-200706302239/updateSite/plugins 
dltkBuildTools.file=org.eclipse.wtp.releng.tools_1.0.0.v200706302235.jar


archivesFormat=*,*,*-antZip

# 	This parameter is specific to the compiler
# 	being used (JDT Compiler, in our case).
# 	'showversion' causes the version of JDT Compiler to be 
# 	printed to the compiler log file. 
#compilerArg=-showversion -encoding ISO-8859-1 -warn:-discouraged,serial,raw
compilerArg=-showversion -encoding ISO-8859-1 -warn:-serial,raw,typeHiding,unchecked

logExtension=.xml
# 	Asks the compiler for verbose output.  This should be set to true in order for *.bin.log files to be generated when
# 	using the JDT Compiler Adapter to compile.
javacVerbose=true

#############################################################


# 	Set this to the relative path for the 
# 	directory to be use for the current build.
# 	It must be relative to the build home
# 	Final name will include the ditribution name and build type
# 	e.g:  build-wtp-I
build.current=build


# 	Set this to the relative path for the 
# 	directory to be use for the current test pass.
# 	It must be relative to the build home
# 	Final name will include the component and build type
# 	e.g:  test-wtp-I
build.tests=test

# 	Set this to the relative path for the 
# 	directory to be used for the peformance test.
# 	It is relative to the build home.
build.perf.tests=perf-current

# This is the directory in which eclipse driver
# that will be used to compile the build will
# be installed into it is relative to the build.current
base.location=eclipse


# 	This is the working directory in which 
# 	build process will do its job
# 	It is relative to the build.current
build.directory=workdir

# Set this to the relative path for the 
# directory that keeps the downloaded drivers (local repository)
# It must be relative to the buildHome
build.local.repository=downloads

# This is the CVS Repository
# that is used during the build process
# 
cvsRoot=/cvsroot/technology
cvsServer=dev.eclipse.org
cvsProtocol=ext
cvsUser=aplatov
cvsPrefix=org.eclipse.dltk

# Asks the compiler for verbose output.  This should be set to true in order for *.bin.log files to be generated when
# using the JDT Compiler Adapter to compile.
javacVerbose=true


#############################################################
# Other inline resolved properties
pde.builder.path=${env.BUILD_HOME}/builders/${eclipse.builder.version}/${eclipse.builder}
# Beginning with 33M5, the startup.jar was removed. Currently, in basebuilder, 
# this launcher is provided without version number. If we ever move to use plain
# eclipse, we'll need a bit of script find and rename (or set the variable). 
# to ever "go backwards" this one variable could be ${pde.builder.path}/startup.jar
eclipse.launcher=${pde.builder.path}/plugins/org.eclipse.equinox.launcher.jar


# in 3.2 based builds, pde's directory no longer has version number
#pde.build.scripts=${pde.builder.path}/plugins/org.eclipse.pde.build_${eclipse.base.version}/scripts
pde.build.scripts=${pde.builder.path}/plugins/org.eclipse.pde.build/scripts
buildDirectory=${env.BUILD_HOME}/${build.current}-${build.distribution}-${buildBranch}-${buildType}/${build.directory}
pde.builder.path=${env.BUILD_HOME}/builders/${eclipse.builder.version}/${eclipse.builder}
