# Copyright (c) 2011-2013 Eike Stepper (Berlin, Germany) and others.
# 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:
#    Eike Stepper - initial API and implementation

jars.compile.order = .
source.. = src/
output.. = bin/
bin.includes = .,\
               META-INF/,\
               plugin.properties,\
               plugin.xml
src.includes = debug/frame.html,\
               debug/index.html,\
               build.xml,\
               buildLib.ant,\
               buildTemplate.ant,\
               generateDocPlugins.launch,\
               generateDocPlugins (Articles).launch

doc.project = org.eclipse.emf.cdo.releng.help

generateSourceReferences = true
