###############################################################################
# Copyright (c) 2000, 2005 IBM Corporation 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
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
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.*
source.. = 	 batch/,\
	         codeassist/,\
	         compiler/,\
	         eval/,\
	         formatter/,\
	         dom/,\
	         model/,\
	         search/
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/
