# Copyright (c) 2014-2016 Eike Stepper (Loehne, Germany) 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:
#    Eike Stepper - initial API and implementation

# UpdateTrigger = 20160322-1212

jars.compile.order = .
source.. = src/
bin.includes = META-INF/,\
               about.html,\
               about.ini,\
               about.mappings,\
               about.properties,\
               plugin.properties,\
               plugin.xml,\
               toc.xml,\
               html/,\
               images/,\
               toc.xmi,\
               javadoc/,\
               schemadoc/,\
               oomph32.png,\
               book.css
src.includes = about.html,\
               book.css

doc.depends = org.eclipse.oomph.util.doc,\
              org.eclipse.oomph.p2.doc,\
              org.eclipse.oomph.targlets.doc

generateSourceReferences = true
