###############################################################################
# Copyright (c) 2012 IBM Corporation 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:
#     IBM Corporation - initial API and implementation
###############################################################################

# Required. Local path to an Eclipse install.  The path is the Eclipse 
# root folder that contains the "plugins" and "features" subfolders.
#eclipse.home = /path/to/eclipse

# Local path to an Eclipse delta pack install.  Not required, but 
# recommended to enable packaging for platforms other than the installed one.
# Default is eclipse.home.  If the delta pack is installed in eclipse.home, 
# eclipse.deltapack.home does not need to be set.
#eclipse.deltapack.home = /path/to/eclipse/deltapack


# Property file that describes the local checkout paths of STEM projects. 
# - For use with "hierarchical" checkouts, e.g. using "svn co" in CI systems (default)
#mapDirectoryFile = ${basedir}/maps/directories.properties
# - For use with "flat" checkouts, e.g. an Eclipse workspace
#mapDirectoryFile = ${basedir}/maps/directories.ide.properties

# Compile the Eclipse features that make up STEM.  Default is true.
#buildFeature = true

# Assemble and package the STEM product.  Default is true.
#buildProduct = true

# Run the JUnit test suite.  Default is false.
#runTests = false

# Skip compiling the STEM denominator data.  Default is false.
#skipData = true

# Major Version of the Build
#majorVersion = 1.3.0

# Build type.  Options are 'nightly', 'integration', 'stable', and 'release'.
#buildTypeFull = nightly

# Build qualifier for stable and release builds.  Example is 
# "RC1" for Release Candidate 1, etc.
#buildQualifier = RC1

# Copy the resulting build artifacts upon a successful build.  Default is false.
#publishBuild = false

# Clean the publish directory before copying the new binaries. 
# This removes old builds for the current build type.  Default is false.
#cleanupFirst = false

# Location to copy the build artifacts if publishBuild is true.  Default is
# the build home.
#publishDir = /path/to/copy/build/output

#######################################
# Advanced Properties.  Do not change #
# unless you know what you're doing.  #
#######################################

# Build date.  Default is the current date.
#buildDate = 20120101

# Overrides the default platforms that STEM is built for.  See
# Eclipse documentation for details on using this
#configs = *, *, *

# P2 repositories where dependencies will be stored.
#repoBaseLocation = /path/to/base/repository
#transformedRepoLocation = /path/to/transformed/repository

