###############################################################################
# Copyright (c) 2013 RCP Vision (http://www.rcp-vision.com) 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
###############################################################################
# Where all the output should go
buckminster.output.root=${user.home}/tmp/emf-components-rap/buckminster.output
# Where the temp files should go
buckminster.temp.root=${user.home}/tmp/emf-components-rap/buckminster.temp

# How .qualifier in versions should be replaced
# time of the last modified resource
# qualifier.replacement.*=generator:lastModified
# generator.lastModified.format='v'yyyyMMdd-HHmm
# alternative: get the build timestamp instead of time of last modified resource
qualifier.replacement.*=generator:buildTimestamp
generator.buildTimestamp.format='v'yyyyMMdd-HHmm
# it is better to use the timestamp otherwise we might get the same qualifier
# replacement if a plugin is not changed in the repository

# alternative: get the build timestamp instead of time of last modified resource
# qualifier.replacement.*=generator:buildTimestamp
# generator.buildTimestamp.format='v'yyyyMMdd-HHmm

target.os=*
target.ws=*
target.arch=*