# Copyright (c) 2005, 2018 IBM Corporation, CEA, 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:
#   IBM - initial API and implementation
#   Kenn Hussey (CEA) - 327039
#   Christian W. Damus (CEA) - 227616
#   Kenn Hussey - 535301
#

# NLS_MESSAGEFORMAT_VAR

source.. = src/
output.. = bin/
bin.includes = about.*,\
               modeling32.png,\
               plugin.*,\
               .,\
               model/*.ecore,\
               model/*.ecore2xml,\
               model/*.genmodel,\
               META-INF/,\
               schema/
src.includes = about.html,\
               model/*.ecore2ecore,\
               model/*.uml
exclude.. = **/doc-files/**
javacSource = 1.5
javacTarget = 1.5
