## BEGIN PROJECT BUILD PROPERTIES ##

# default settings for all this project's builds, for this branch; see also o.e.d.common.releng/build.properties for more overrideable defaults

# To permit automatic downloads of non-EPL compatible code, set this to property to "I accept"
thirdPartyDownloadLicenseAcceptance="I accept"

# MUST BE SET #
projectid=emf.ecoretools
zipPrefix=emft-ecoretools
incubation=-incubation
version=0.10.0
buildType=N
mainFeatureToBuildID=org.eclipse.emf.ecoretools.sdk
testFeatureToBuildID=org.eclipse.emf.ecoretools.tests


#	LINUX		#
JAVA_HOME=/opt/public/common/ibm-java2-ppc-50
JAVA50_HOME=/opt/public/common/ibm-java2-ppc-50
dependencyURLs=http://download.eclipse.org/eclipse/downloads/drops/S-3.6M4-200912101301/eclipse-SDK-3.6M4-linux-gtk-ppc.tar.gz,http://download.eclipse.org/modeling/emf/emf/downloads/drops/2.6.0/S200912121603/emf-xsd-SDK-2.6.0M4.zip,http://download.eclipse.org/tools/gef/downloads/drops/3.6.0/S200912151157/GEF-ALL-3.6.0M4.zip,http://download.eclipse.org/modeling/gmf/gmf/downloads/drops/2.3.0/S200912162102/gmf-sdk-2.3.0M4.zip,http://download.eclipse.org/modeling/emf/validation/downloads/drops/1.4.0/S200912161043/emf-validation-SDK-1.4.0M4.zip,http://download.eclipse.org/modeling/emf/transaction/downloads/drops/1.4.0/S200912161108/emf-transaction-SDK-1.4.0M4.zip,http://download.eclipse.org/modeling/emf/query/downloads/drops/1.4.0/S200912161005/emf-query-SDK-1.4.0M4.zip,http://download.eclipse.org/modeling/mdt/ocl/downloads/drops/3.0.0/S200912160635/mdt-ocl-SDK-3.0.0M4.zip

#what steps should we do? default: build.steps=buildUpdate,buildZips,buildTests,generateDigests,test,publish,cleanup
build.steps=buildUpdate,buildZips,buildTests,generateDigests,test,publish,cleanup
#-------------#


#	Mac OSX	#
#JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
#JAVA50_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
#dependencyURLs=http://download.eclipse.org/eclipse/downloads/drops/R-3.5-200906111540/eclipse-SDK-3.5-macosx-cocoa.tar.gz,http://download.eclipse.org/modeling/emf/emf/downloads/drops/2.5.0/R200906151043/emf-xsd-SDK-2.5.0.zip,http://download.eclipse.org/tools/orbit/downloads/drops/R20090529135407/orbit-R20090529135407.zip
#what steps should we do? default: build.steps=buildUpdate,buildZips,buildTests,generateDigests,test,publish,cleanup
#build.steps=buildUpdate,buildZips,buildTests,generateDigests,test,publish,cleanup
#-------------#

#	WINDOWS	#
#JAVA_HOME=c:/Java/sun/jre1.5.0_13
#JAVA50_HOME=c:/Java/sun/jre1.5.0_13
#dependencyURLs=http://download.eclipse.org/eclipse/downloads/drops/R-3.5-200906111540/eclipse-SDK-3.5-win32.zip,http://download.eclipse.org/modeling/emf/emf/downloads/drops/2.5.0/R200906151043/emf-xsd-SDK-2.5.0.zip,http://download.eclipse.org/modeling/emf/emf/downloads/drops/2.5.0/R200906151043/emf-xsd-Examples-2.5.0.zip,http://download.eclipse.org/modeling/mdt/ocl/downloads/drops/1.3.0/R200906151742/mdt-ocl-runtime-1.3.0.zip
#what steps should we do? default: build.steps=buildUpdate,buildZips,buildTests,generateDigests,test,publish,cleanup
#build.steps=buildUpdate,buildZips,buildTests,generateDigests,test,cleanup
#-------------#



compilerArg=-enableJavadoc -encoding ISO-8859-1
flattenDependencies=true
parallelCompilation=true
generateFeatureVersionSuffix=true
individualSourceBundles=true

#################################################################################################################

#TODO: [269290] make javadokken work.
#javadocEnabled=true
#JAVADOC14_HOME=/opt/public/common/ibm-java2-ppc-50/bin

# TODO: are these still required/used?
#projRelengRoot=:pserver:anonymous@dev.eclipse.org:/cvsroot/tools
projRelengRoot=:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling
projRelengPath=org.eclipse.emf/org.eclipse.emf.ecoretools/releng
basebuilderBranch=R35_RC4

# TODO: not used yet
# define regex patterns to use when automatically selecting zips from a directory or list file
#dependencyRegexFilter=R3_4_maintenance:M200.*/eclipse-SDK-|R-.*200.*/eclipse-SDK-

# TODO: not used yet
# could be file://, http://, cvs path, or relative path?
#mapLocation=maps/

# TODO: implement use of packager.map for defining deps?
# TODO: could be relative, absolute (local), or http/ftp paths to archives when defining dependencyURLs above

## END PROJECT BUILD PROPERTIES ##

