################################################################################
# Copyright (c) 2008, 2012 Obeo.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# 
# Contributors:
#     Obeo - initial API and implementation
################################################################################
bin.includes = plugin.xml,\
               META-INF/,\
               about.html,\
               about.ini,\
               about.mappings,\
               about.properties,\
               plugin.properties,\
               index/,\
               toc.xml,\
               acceleo32.png,\
               toc_gettingstarted.xml,\
               toc_reference.xml,\
               pages/,\
               assets/
src.includes = toc.xml,\
               about.html,\
               about.ini,\
               about.mappings,\
               about.properties,\
               acceleo32.png,\
               toc_gettingstarted.xml,\
               toc_reference.xml,\
               pages/,\
               assets/,\
               index/
