# Copyright (c) 2010 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:
#      Nicolas Payneau (Mia-Software) - initial API and implementation

bin.includes = .,\
               model/,\
               META-INF/,\
               plugin.xml,\
               plugin.properties,\
               about.html
jars.compile.order = .
source.. = src/
output.. = bin/
src.includes = about.html
