# buckminster.properties
# ----------------------
# These properties control how buckminster performs a build, where output should be placed,
# where temporary files should be kept, and where options for signing, packing, and
# platforms are stated.
#

# Is used to select the dependency location in the rmap
# build.type=N

# Where all the output should go
buckminster.output.root=/temp/STEM/output

# Where the temp files should go
buckminster.temp.root=/temp/STEM/temp

# The generated p2 site
#p2repository = ${buckminster.output.root}/org.eclipse.stem.site.feature_0.0.0-eclipse.feature/site.p2

# Sets the Java compiler compliance level
org.eclipse.buckminster.core.jdt.compliancelevel= 1.5

# The number of threads to run in parallel for materialization
org.eclipse.buckminster.core.maxParallelMaterializations=4

# The number of threads to run in parallel for RMAP resolution
org.eclipse.buckminster.core.maxParallelResolutions=4

# How .qualifier in versions should be replaced

#qualifier.replacement.*=generator:lastModified
#generator.lastModified.format='v'yyyyMMdd-HHmm
#qualifier.replacement.*=generator:lastRevision
#generator.lastRevision.format=r{0,number,00000}
qualifier.replacement.*=generator:buildTimestamp
generator.buildTimestamp.format='v'yyyyMMdd'_'HHmm

# If a site should use pack200, turn off for faster build
# commented out, is controlled by the hudson interface
#site.pack200=false

# If a site should be signed
#site.signing=false

# Should source bundles be built and included
#cbi.include.source=true
cbi.include.source=false

# What platforms should be built, * for "all"
# This properties file is used to create the "update site" so it should specify
# "all" (i.e., "*") so that all of the different platforms will be present in 
# the collection of feature and plugins in the update site.  Not all will be 
# used.  We list all of the allowed values for reference.
#
# Possible Values for target.os: win32, win32, linux, macosx, aix, solaris, hpux, qnx
#target.os=*
# Possible Values for target.ws: win32, motif, gtk, photon, carbon 
#target.ws=*
# Possible values for target.arch: x86, x86_64, ia64, ia64_32, ppc, PA_RISC, sparc 
#target.arch=*


signing.type=eclipse.local
#signing.type=eclipse.remote

buckminster.p2.site=http://download.eclipse.org/tools/buckminster/headless-3.6
director.url=http://download.eclipse.org/tools/buckminster/products/director_latest.zip
eclipse.staging.area=${env.HUDSON_HOME}/jobs/${env.JOB_NAME}/signing
