## 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.1
buildType=N
mainFeatureToBuildID=org.eclipse.m2m.qvt.oml.sdk
testFeatureToBuildID=org.eclipse.m2m.qvt.oml.tests

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

dependencyURLs=\
http://download.eclipse.org/eclipse/downloads/drops/R-3.6.1-201009090800/eclipse-SDK-3.6.1-linux-gtk-x86_64.tar.gz
#http://download.eclipse.org/tools/orbit/downloads/drops/R20100519200754/orbit-R20100519200754.zip

repositoryURLs=\
http://download.eclipse.org/modeling/emf/emf/downloads/drops/2.6.x/R201009141218/emf-xsd-Update-2.6.1.zip,\
http://download.eclipse.org/modeling/mdt/ocl/downloads/drops/3.0.1/R201009240345/mdt-ocl-Update-3.0.1.zip
#http://download.eclipse.org/tools/orbit/downloads/drops/R20100519200754/repository
featureIDsToInstall=org.eclipse.emf+org.eclipse.xsd+org.eclipse.ocl

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

# MUST BE SET #
#JAVA50_HOME=/opt/public/common/ibm-java2-ppc-50
#JAVA14_HOME=/opt/public/common/ibm-java2-142
#JAVA_HOME=${JAVA50_HOME}

JAVA_HOME=${JAVA_HOME}
JAVA14_HOME=${JAVA_HOME}
JAVA50_HOME=${JAVA_HOME}
JAVA50_64_HOME=${JAVA_HOME}
JAVA60_HOME=${JAVA_HOME}
JAVADOC_HOME=${JAVA_HOME}/bin
PACK200_JAVA_HOME=${JAVA_HOME}

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

#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
projRelengBranch=R3_0_maintenance
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 ##
