# common properties
# easier to set here than in xml file

# set common.dir when used without ant (e.g. IvyDE)
common.dir	= ${ivy.settings.dir}

ivy.jar		= ${common.dir}/sigil/ivy-2.0.0-rc1.jar
sigil-ivy-plugin.jar = ${common.dir}/sigil/sigil-ivy-plugin.jar

build.dir	= ${basedir}/build
build_xml	= build.xml
classes.dir	= ${build.dir}/main-classes
deps.dir	= ${build.dir}/deps
composite.dir	= ${basedir}/xml
src.dir		= ${basedir}/src
ivy.file	= ${basedir}/ivy.xml

_build.dir	= ${build.dir}
build.lib.dir	= ${_build.dir}/lib
build.etc.dir	= ${_build.dir}/etc

top-build.dir	= ${common.dir}/../build
site.dir	= ${common.dir}/../site
dist.dir	= ${top-build.dir}/dist
install.dir	= ${top-build.dir}/install
repository.dir	= ${top-build.dir}/repository
cache.dir	= ${common.dir}/../cache
# note: clean-local task assumes repository.pattern starts with ${ivy.module}
repository.pattern = [module]/[revision]/[type]s/[artifact].[ext]

ivy.install.version=2.0.0
bnd.install.version=0.0.312
equinox.install.version=3.4.0.v20080421-2006
equinox.release=ganymede

resolve.log	= download-only

# over-ridden by hudson
buildVersion	= 0.9.0.SNAPSHOT

# end

