###############################################################################
# Copyright (c) 2003, 2006 IBM Corporation and others.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# SPDX-License-Identifier: EPL-2.0
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

# The CVS tag to use when fetching the map files from the repository
mapVersionTag=HEAD
runPackager=true

# This is a subdirectory of $buildDirectory
# Set collectingFolder and archivePrefix to . if you want to create archives without
# trailing eclipse in the paths of the included files
collectingFolder=eclipse

# The prefix that will be used in the generated archive.
# Does not make sense to use a different archivePrefix than collectingFolder, 
# because zip wouldn't find any files to include into the target zip otherwise
archivePrefix=eclipse

# Whether or not to include debug info in the output jars
javacDebugInfo=false 

logExtension=.xml

# Whether or not to fail the build if there are compiler errors
javacFailOnError=true

##################################################
# Asks the compiler for verbose output.  This should be set to true in order for *.bin.log files to be generated when
# using the JDT Compiler Adapter to compile.
javacVerbose=true

sign=true

