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

relengroot=
releng=releng
releng.wtpbuilder=releng.wtpbuilder

# 	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=M2_34
#eclipse.builder.version=r322_v20070104
eclipse.builder.fetch=true


# WTP specific builder
wtpBuildTools.url=http://download.eclipse.org/webtools/wtpBuildTools/drops/R3.0/T-T200706302239-200706302239/updateSite/plugins 
wtpBuildTools.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:  projects/wtp-R3.0-I
build.current=projects


# 	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:  tests/wtp-R3.0-I
build.tests=tests

# 	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/webtools
cvsServer=dev.eclipse.org
cvsProtocol=ext
cvsUser=david_williams

# 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
#eclipse.launcher=${pde.builder.path}/startup.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}
