###########################################################################
#  Copyright (c) 2011, 2019 Mia-Software 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:
#    Nicolas Guyomar (Mia-Software) - Bug 333553 - The user has not to deal with two files to create a facet
#    Nicolas Guyomar (Mia-Software) - Bug 339899 - everything must be externalized before UI freeze
###########################################################################
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
               .,\
               OSGI-INF/,\
               about.html,\
               plugin.xml,\
               schema/
src.includes = about.html
