##
#  Copyright (c) 2009-2011 Thales Corporate Services S.A.S.
#
#  This program and the accompanying materials
#  are made available under the terms of the Eclipse Public License 2.0
#  which accompanies this distribution, and is available at
#  https://www.eclipse.org/legal/epl-2.0
#
#  SPDX-License-Identifier: EPL-2.0
# 
#  Contributors:
#      Thales Corporate Services S.A.S - initial API and implementation
##
bin.includes = transformation/,\
               src/,\
               model/,\
               launch/,\
               README.txt,\
               about.html,\
               plugin.properties,\
               META-INF/,\
               egf/,\
               .,\
               plugin.xml
output.. = bin/
src.includes = README.txt,\
               about.html,\
               launch/,\
               model/,\
               transformation/
source.. = src/
