###############################################################################
# Copyright (c) 2010, 2019 CEA LIST
# 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 Bros (Mia-Software) - initial API and implementation
###############################################################################
bin.includes = .,\
               META-INF/,\
               plugin.xml,\
               plugin.properties,\
               schema/,\
               model/,\
               about.html,\
               org.eclipse.modisco.facet.widgets.celleditors.core.modelcelleditors
jars.compile.order = .
source.. = src/
output.. = bin/
src.includes = about.html
