# Copyright (c) 2005, 2007 IBM Corporation and others.
# 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: 
#   IBM - initial API and implementation
#
# $Id: build.properties,v 1.7 2007/04/04 02:20:06 khussey Exp $

# NLS_MESSAGEFORMAT_VAR
bin.includes = about.html,\
               plugin.*,\
               icons/,\
               libraries/,\
               metamodels/,\
               profiles/,\
               META-INF/
src.includes = about.html
javacSource = 1.5
javacTarget = 1.5
