#################################################################################
# Copyright (c) 2006, 2014 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 = META-INF/,\
               plugin.properties,\
               about.html,\
               plugin.xml
src.includes = src/,\
               about.html
# for the javadoc generation.
jars.extra.classpath = platform:/plugin/org.eclipse.emf.compare,\
                       platform:/plugin/org.eclipse.emf.compare.edit,\
                       platform:/plugin/org.eclipse.emf.compare.ide,\
                       platform:/plugin/org.eclipse.emf.compare.ide.ui,\
                       platform:/plugin/org.eclipse.emf.compare.rcp,\
                       platform:/plugin/org.eclipse.emf.compare.rcp.ui
