# The location of this pluginbuilder project. It provides the base directory for the build scripts.
# @category localsettings
# @type Directory
buildHome=/home/jerome/tools/easyant/easyant4e.git/org.apache.easyant4e.releng

# The directory where the build takes place. This directory WILL BE DELETED before every build.
# @category localsettings
# @type Directory
buildDirectory=/home/jerome/pluginbuilder/org.apache.easyant4e.releng

# The eclipse build host. Must be an Eclipse SDK installation with JDT and PDE. And in the case of RCP builds the RCP Delta Pack must be included, too.
# @category localsettings
# @type Directory
eclipseDir=/home/jerome/tools/easyant/eclipse

# Environment for both the Eclipse build and test host. Determines baseos.
# @category localsettings
os=linux

# Environment for both the Eclipse build and test host. Determines basews.
# @category localsettings
ws=gtk

# Environment for both the Eclipse build and test host. Determines basearch.
# @category localsettings
arch=x86