# Copyright (c) 2009-2013 Eike Stepper (Berlin, Germany) 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:
#    Eike Stepper - initial API and implementation

source.. = src/
output.. = bin/
bin.includes = plugin.xml,\
               META-INF/,\
               .,\
               icons/,\
               images/,\
               about.html,\
               config/
src.includes = about.html,\
               config/,\
               GastroTable1.launch,\
               GastroTable2.launch

generateSourceReferences = true
