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

#The id of the top level element we are building
topLevelElementType = feature
topLevelElementId = org.example.master

runPackager=true

# The prefix that will be used in the generated archive.
archiveName=master.zip
archivePrefix=example
collectingFolder=${archivePrefix}

# The list of {os, ws, arch} configurations to build.  This 
configs = win32,win32, x86 & linux, gtk, x86

#group all configurations into one archive, and jar everything
groupConfigurations=true
outputUpdateJars = true

buildDirectory=${base}/build

# Type of build.  Used in naming the build output.  
timestamp=007
buildType=I
buildId=${timestamp}
buildLabel=${buildType}.${buildId}

forceContextQualifier=v${timestamp}

############# BASE CONTROL #############
# Base location for anything the build needs to compile against.
# base= to be set by launching scripts
baseLocation=${base}/eclipse

# see customTargets.xml / getBaseComponents
eclipseURL=https://download.eclipse.org/eclipse/downloads/drops/R-3.4.1-200809111700
eclipseRCPBinary=eclipse-RCP-3.4.1-win32.zip
eclipseDeltaPack=eclipse-3.4.1-delta-pack.zip

############# MAP FILE CONTROL ################
# This section defines CVS tags to use when fetching the map files from the repository.
# If you want to fetch the map file from repository / location, change the getMapFiles target in the customTargets.xml
mapsRepo=:pserver:anonymous@dev.eclipse.org/cvsroot/eclipse
mapsRoot=pde-build-home/examples/packaging_p2_product/org.example.releng/maps
mapsCheckoutTag=HEAD


# Specify the output format of the compiler log when eclipse jdt is used
logExtension=.log
javacDebugInfo=false 
javacFailOnError=true
#javacVerbose=true
