###############################################################################
# Copyright (c) 2013 Willink Transformations and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     E.D.Willink - initial API and implementation
###############################################################################
## BEGIN PROJECT BUILD PROPERTIES ##

thirdPartyDownloadLicenseAcceptance="I accept"

projectid=mdt.ocl
zipPrefix=mdt-ocl
incubation=
version=3.0.0
buildType=N
mainFeatureToBuildID=org.eclipse.ocl.all.sdk
testFeatureToBuildID=org.eclipse.emf.ocl.tests

build.steps=buildZips,buildTests,buildUpdate,generateDigests,test,publish,cleanup

workspaceDir=N:/helios_m1/eclipse/ocl
localSourceCheckoutDir=${workspaceDir}/org.eclipse.ocl.tree
localSourceCheckoutDirExcludes=**/doc/org.eclipse.emf.ocl**,\
**/plugins/org.eclipse.emf.ocl**,\
**/tests/org.eclipse.emf.ocl.tests

# use this to omit pack200 step (does not yet work on Windows - https://bugs.eclipse.org/bugs/show_bug.cgi?id=268405)
skipPack=true

dependencyURLs=http://download.eclipse.org/eclipse/downloads/drops/S-3.6M1-200908061400/eclipse-SDK-3.6M1-win32.zip,\
http://download.eclipse.org/modeling/emf/emf/downloads/drops/2.6.0/S200908122048/emf-xsd-SDK-2.6.0M1.zip,\
http://download.eclipse.org/modeling/mdt/uml2/downloads/drops/3.1.0/S200908181011/mdt-uml2-SDK-3.1.0M1a.zip,\
http://download.eclipse.org/tools/orbit/downloads/drops/R20090825191606/orbit-R20090825191606.zip

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

JAVA_HOME=C:/Progra~1/Java/jdk1.5.0_19
JAVA14_HOME=C:/Progra~1/Java/jdk1.5.0_19
JAVA50_HOME=C:/Progra~1/Java/jdk1.5.0_19


LPGRuntimeVersion = 1.1.0
domainNamespace=*
projNamespace=org.eclipse.ocl
projRelengName=org.eclipse.ocl.releng

# For windows, must be explicit about paths using correct slashes (/); dirs with spaces should be avoided
relengBuilderDir=${workspaceDir}/releng
relengBaseBuilderDir=${workspaceDir}/../org.eclipse.releng.basebuilder
relengCommonBuilderDir=${workspaceDir}/../org.eclipse.dash.common.releng
writableBuildRoot=C:/tmp/build

## END PROJECT BUILD PROPERTIES ##
