## 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=m2m.qvtoml
zipPrefix=m2m-qvtoml
incubation=
version=3.0.0
buildType=N
mainFeatureToBuildID=org.eclipse.m2m.qvt.oml.sdk
testFeatureToBuildID=org.eclipse.m2m.qvt.oml.tests

# MUST BE SET #
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
JAVA50_HOME=/System/Library/Frameworks/JavaVM.framework/Home
JAVA14_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home
dependencyURLs=http://download.eclipse.org/eclipse/downloads/drops/R-3.5-200906111540//eclipse-SDK-3.5-macosx-cocoa-x86_64.tar.gz,http://modeling.eclipse.org/modeling/emf/emf/downloads/drops/2.6.0/S200908122048/emf-xsd-SDK-2.6.0M1.zip,http://modeling.eclipse.org/modeling/mdt/ocl/downloads/drops/1.4.0/S200908170953/mdt-ocl-SDK-1.4.0M1.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
build.steps=buildUpdate,buildZips,buildTests,generateDigests,test,publish,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.m2m/org.eclipse.m2m.qvtoml.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 ##
