###############################################################################
# Copyright (c) 2000, 2016 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
###############################################################################
customBuildCallbacks=customBuildCallbacks.xml
customBuildCallbacks.inheritall=true
bin.includes = plugin.xml,\
               plugin.properties,\
               about.html,\
               .,\
               jdtCompilerAdapter.jar,\
               .options,\
               META-INF/
javadoc.packages = org.eclipse.jdt.core.*,\
                   org.eclipse.jdt.core.formatter.*,\
                   org.eclipse.jdt.core.compiler.*,\
                   org.eclipse.jdt.core.eval.*,\
                   org.eclipse.jdt.core.jdom.*,\
                   org.eclipse.jdt.core.dom.*,\
                   org.eclipse.jdt.core.dom.rewrite.*,\
                   org.eclipse.jdt.core.search.*,\
                   org.eclipse.jdt.core.index.*
source.. =   batch/,\
	         codeassist/,\
	         compiler/,\
	         eval/,\
	         formatter/,\
	         dom/,\
	         search/,\
	         model/
output.. = bin/
output.jdtCompilerAdapter.jar = antbin/
source.jdtCompilerAdapter.jar = antadapter/
jars.compile.order=.,jdtCompilerAdapter.jar
jars.extra.classpath=platform:/plugin/org.apache.ant/lib/ant.jar
src.includes = about.html,\
               schema/
generateSourceReferences=true
javacWarnings..=+fieldHiding,-unavoidableGenericProblems
