# Version of org.ecilpse.pdebuild
pdeBuildPluginVersion=3.4.0.v20080604

# Version of org.eclipse.equinox.launcher
equinoxLauncherPluginVersion=1.0.100.v20080509-1800

# directory of Eclipse to build against
baseLocation=D:/pdebuild/bin/eclipse-SDK-3.4-win32/eclipse

# directory of the Eclipse installation to execute the PDE build
eclipseLocation=${baseLocation}

# Eclipse directory to run junit tests against
testLocation=${baseLocation}

# path to java 5 runtime jar
J2SE-1.5=D:/java/jdk1.5.0_15/jre/lib/rt.jar

# if defined, the build sources plugins and features from the workspace
# workspaceLocation=<path/to/workspace>

# if defined, properites like buildLabel, buildId, qualifier are read from latest.properties
# restartLocation=<path/to/directory>

# directory with dumps to regression test
# regtestDumpsLocation=<path/to/dumps>

# directory of updateSite
# updateSiteLocation=<path/to/updatesite location>