###############################################################################
# Copyright (c) 2013, 2014 Willink Transformations and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v20.html
#
# Contributors:
#     E.D.Willink - initial API and implementation
###############################################################################
#

bin.includes = .,\
               model/,\
               META-INF/,\
               build.properties,\
               plugin.xml,\
               plugin.properties,\
               about.html,\
               .options,\
               about.ini,\
               about.properties,\
               schema/,\
               model-gen/,\
               icons/,\
               annotations/,\
               about.mappings,\
               modeling32.png
jars.compile.order = .
source.. = src/,\
           emf-gen/
output.. = bin/
src.includes = about.html,\
               annotations/

