###############################################################################
# Copyright (c) 2000, 2009 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,\
               test.xml,\
               about.html,\
               testbuildfiles/,\
               testresources/,\
               testlib/,\
               lib/,\
               lib/*.jar,\
               *.jar,\
               META-INF/
               
source.anttestscore.jar = test plugin/,\
                          tests/
source.lib/antTestsSupport.jar = test support/
jars.compile.order=anttestscore.jar,lib/antTestsSupport.jar
output.lib/antTestsSupport.jar = test_support_bin/
output.anttestscore.jar = bin/
