# Copyright (c) 2004 - 2008 Eike Stepper, Germany.
# 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
#
# $Id: build.properties,v 1.1 2008-08-08 10:10:35 estepper Exp $

bin.includes = .,\
               icons/,\
               META-INF/,\
               plugin.xml,\
               plugin.properties,\
               about.html,\
               copyright.txt,\
               epl-v10.html,\
               license.html,\
               readme.txt
jars.compile.order = .
source.. = src/
output.. = bin/
