# The location underwhich all of the build output will be collected.
# This is a subdirectory of $buildDirectory
# Set collectingFolder and archivePrefix to . if you want to create archives without
# trailing eclipse in the paths of the included files
collectingFolder=.

# The prefix that will be used in the generated archive. 
# Does not make sense to use a different archivePrefix than collectingFolder, 
# because zip wouldn't find any files to include into the target zip otherwise
archivePrefix=.

# The list of {os, ws, arch} configurations to build.  This 
# value is a '&' separated list of ',' separate triples.  For example, 
#     configs=win32,win32,x86 & linux,motif,x86
# By default the value is *,*,*

# We specify os and ws to ensure that org.eclipse.objectteams.otequinox.sunjvm is built,
# but we don't specify arch so the build can be run on all architectures
configs=linux,gtk,* 

JavaSE-12=/shared/common/java/openjdk/jdk-12_x64-latest/lib/jrt-fs.jar
JavaSE-11=/shared/common/java/openjdk/jdk-11_x64-latest/lib/jrt-fs.jar
JavaSE-10=/shared/common/java/oracle/jdk-10_x64-latest/lib/jrt-fs.jar
JavaSE-9=/shared/common/java/oracle/jdk-9_x64-latest/lib/jrt-fs.jar

JavaSE-1.8=/shared/common/jdk1.8.0_x64-latest/jre/lib/charsets.jar:/shared/common/jdk1.8.0_x64-latest/jre/lib/deploy.jar:/shared/common/jdk1.8.0_x64-latest/jre/lib/javaws.jar:/shared/common/jdk1.8.0_x64-latest/jre/lib/jce.jar:/shared/common/jdk1.8.0_x64-latest/jre/lib/jfr.jar:/shared/common/jdk1.8.0_x64-latest/jre/lib/jfxswt.jar:/shared/common/jdk1.8.0_x64-latest/jre/lib/jsse.jar:/shared/common/jdk1.8.0_x64-latest/jre/lib/management-agent.jar:/shared/common/jdk1.8.0_x64-latest/jre/lib/plugin.jar:/shared/common/jdk1.8.0_x64-latest/jre/lib/resources.jar:/shared/common/jdk1.8.0_x64-latest/jre/lib/rt.jar

JavaSE-1.7=/shared/common/oracle-jre1.7.0/lib/rt.jar:/shared/common/oracle-jre1.7.0/lib/charsets.jar:/shared/common/oracle-jre1.7.0/lib/deploy.jar:/shared/common/oracle-jre1.7.0/lib/management-agent.jar:/shared/common/oracle-jre1.7.0/lib/alt-rt.jar:/shared/common/oracle-jre1.7.0/lib/plugin.jar:/shared/common/oracle-jre1.7.0/lib/security/US_export_policy.jar:/shared/common/oracle-jre1.7.0/lib/security/local_policy.jar:/shared/common/oracle-jre1.7.0/lib/resources.jar:/shared/common/oracle-jre1.7.0/lib/jsse.jar:/shared/common/oracle-jre1.7.0/lib/jce.jar:/shared/common/oracle-jre1.7.0/lib/javaws.jar

JavaSE-1.6=/opt/public/common/ibm-java-x86_64-60/jre/lib/amd64/default/jclSC160/vm.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/annotation.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/beans.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/java.util.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/jndi.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/logging.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/security.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/sql.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/ibmorb.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/ibmorbapi.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/ibmcfw.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/rt.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/charsets.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/resources.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/ibmpkcs.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/ibmcertpathfw.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/ibmjgssfw.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/ibmjssefw.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/ibmsaslfw.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/ibmjcefw.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/ibmjgssprovider.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/ibmjsseprovider2.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/ibmcertpathprovider.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/ibmxmlcrypto.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/management-agent.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/xml.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/jlm.jar:/opt/public/common/ibm-java-x86_64-60/jre/lib/javascript.jar

J2SE-1.5=/shared/common/jdk-1.5.0-22.x86_64/jre/lib/charsets.jar:/shared/common/jdk-1.5.0-22.x86_64/jre/lib/jce.jar:/shared/common/jdk-1.5.0-22.x86_64/jre/lib/jsse.jar:/shared/common/jdk-1.5.0-22.x86_64/jre/lib/rt.jar

J2SE-1.4=/shared/common/j2sdk1.4.2_19/jre/lib/rt.jar


skipBase=true
base=${build.root.dir}
# baseLocation is set from run.xml
#eclipseBuildId=SDK-3.6RC3
#eclipseDrop=${eclipseBuildId}-201005271700
#eclipseURL=/home/data/httpd/download.eclipse.org/eclipse/downloads/drops/${eclipseDrop}
#eclipseBaseURL=${eclipseURL}/eclipse-${eclipseBuildId}-linux-gtk-${basearch}.tar.gz

p2.gathering=true
#p2.build.repo is set individually in customTargets.xml
skipMirroring=true
#skipDirector=true
p2.metadata.repo.name="Object Teams Updates"

individualSourceBundles=true

generateSourceReferences=true