###############################################################################
# Copyright (c) 2004, 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/,\
               lib/,\
               lib/*.jar,\
               *.jar,\
               META-INF/
               
source.anttestsui.jar = test plugin/,\
                        Ant Editor Tests/,\
                        Ant Debug Tests/,\
                        External Tools/,\
                        Ant Tests/
						
source.lib/antUITestsSupport.jar = test support/
jars.compile.order=anttestsui.jar,lib/antUITestsSupport.jar
output.lib/antUITestsSupport.jar = test_support_bin/
output.anttestsui.jar = bin/
