# Copyright (c) 2008-2010, 2012 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

# NLS_MESSAGEFORMAT_VAR

bin.includes = .,\
               META-INF/,\
               plugin.properties,\
               .options,\
               about.html,\
               plugin.xml,\
               about.ini,\
               about.mappings,\
               about.properties,\
               modeling32.png
jars.compile.order = .
source.. = src/
output.. = bin/
src.includes = about.html

generateSourceReferences = true
