# Copyright (c) 2011, 2018 Mia-Software.
# 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:
#     Fabien Giquel (Mia-Software) - design and implementation
#	 Fabien Giquel (Mia-Software) - Bug 533168 - (releng) OutOfMemory during quality postprocessing because large number of checkstyle warnings
# 

bin.includes = .,\
               model/,\
               META-INF/,\
               plugin.xml,\
               plugin.properties,\
               about.html,\
               OSGI-INF/
jars.compile.order = .
source.. = src-gen/,\
           src/
output.. = bin/
src.includes = about.html
