###############################################################################
# Copyright (c) 2010 Tasktop Technologies 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:
#      Tasktop Technologies - initial API and implementation
###############################################################################
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
               .,\
               about.html,\
               plugin.properties,\
               plugin.xml,\
               icons/
src.includes = about.html,\
               schema/
additional.bundles = org.eclipse.core.databinding
jars.extra.classpath = platform:/plugin/org.eclipse.jdt.core,platform:/plugin/org.eclipse.debug.ui,platform:/plugin/org.eclipse.jdt.ui,platform:/plugin/org.eclipse.jdt.junit,
