###############################################################################
# Copyright (c) 2005, 2011 BEA Systems, Inc.
# 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
###############################################################################
source.apt.jar = src/
source.aptext.jar = srcext/
output.apt.jar = bin/
bin.includes = plugin.xml,\
               test.xml,\
               META-INF/,\
               resources/,\
               *.jar,\
               about.html,\
               plugin.properties
src.includes = about.html
jars.compile.order = aptext.jar,apt.jar