##
#  Copyright (c) 2009-2010 Thales Corporate Services S.A.S.
#
#  This program and the accompanying materials
#  are made available under the terms of the Eclipse Public License 2.0
#  which accompanies this distribution, and is available at
#  https://www.eclipse.org/legal/epl-2.0
#
#  SPDX-License-Identifier: EPL-2.0
# 
#  Contributors:
#      Thales Corporate Services S.A.S - initial API and implementation
##

#eclipse
eclipse.download.prefix=file:/home/data/httpd/download.eclipse.org

#buckminster installation
buckminster.download.url=${eclipse.download.prefix}/tools/buckminster
director.url=${buckminster.download.url}/products/director_latest.zip
buckminster.release=3.6
bm.headless.site=${buckminster.download.url}/headless-${buckminster.release}

#do not generate version range with buckminster in manifest.mf and content.jar
pde.bundle.range.generation=false

#build
buckminster.loglevel=INFO

target.os=*
target.ws=*
target.arch=*

qualifier.replacement.*=generator:buildTimestamp
generator.buildTimestamp.format='v'yyyyMMdd-HHmm

signing.type=eclipse.local
site.signing=true
site.pack200=true
site.retain.unpacked=false

#egf
base.path=${build.root}/sources

#local
#eclipse.download.prefix=http://download.eclipse.org
#site.signing=false