# Copyright (c) 2014 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/,\
               .,\
               about.html,\
               plugin.properties,\
               icons/,\
               oomph32.png,\
               about.properties,\
               about.mappings,\
               about.ini,\
               splash.bmp,\
               html/,\
               fonts/
src.includes = about.html,\
               ProductCatalogGenerator.launch,\
               pom.xml

generateSourceReferences = true
