##
# Copyright (c) 2008 Borland Software 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:
#     Artem Tikhomirov (Borland) - initial API and implementation
##
bin.includes = META-INF/,\
               .,\
               antsupport.jar,\
               about.html,\
               plugin.xml,\
               plugin.properties,\
               examples/
src.includes = src/,\
               src-ant/,\
               examples/,\
               about.html
source..=src/
output..=bin/
source.antsupport.jar=src-ant/
output.antsupport.jar=bin-ant/
jars.extra.classpath=platform:/plugin/org.apache.ant/lib/ant.jar
jars.compile.order = .,\
                     antsupport.jar
bin.excludes = examples/templates/,\
               examples/test1.xml

