##
#  Copyright (c) 2009-2010 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
##
source.. = src/,\
           generated/
output.. = bin/
bin.includes = META-INF/,\
               .,\
               about.html,\
               egf/Default_pattern_strategy_task.fcore,\
               egf/Filtered_pattern_strategy_task.fcore,\
               egf/Model_driven_pattern_strategy_task.fcore,\
               egf/Pattern_task.fcore,\
               plugin.properties,\
               plugin.xml,\
               egf/Substitution_composition.fcore,\
               egf/,\
               templates/
src.includes = about.html
