###############################################################################
# Copyright (c) 2011, 2019 Mia-Software 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:
#    Nicolas Bros (Mia-Software) - initial API and implementation
###############################################################################
# Copyright (c) 2009, 2018 Mia-Software 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:
#     Gregoire DUPE (Mia-Software) - initial API and implementation
#     Gregoire DUPE (Mia-Software) - Bug 341752 - Extract report metamodel from the benchmark plug-in to avoid Acceleo troubles.
#	  Fabien Giquel (Mia-Software) - Bug 533168 - (releng) OutOfMemory during quality postprocessing because large number of checkstyle warnings
# 

bin.includes = .,\
               model/,\
               META-INF/,\
               plugin.xml,\
               OSGI-INF/,\
               about.html
jars.compile.order = .
source.. = src-gen/
output.. = bin/
src.includes = about.html
