# Copyright (c) 2005, 2011 IBM Corporation, CEA, 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
#   Kennn Hussey (CEA) - 327039
#
# $Id: build.properties,v 1.13 2007/09/28 21:14:32 jbruck Exp $

# NLS_MESSAGEFORMAT_VAR

source.. = src/
output.. = bin/
bin.includes = about.html,\
               plugin.*,\
               .,\
               model/*.ecore,\
               model/*.ecore2xml,\
               model/*.genmodel,\
               META-INF/,\
               schema/
src.includes = about.html,\
               model/*.ecore2ecore,\
               model/*.uml
exclude.. = **/doc-files/**
javacSource = 1.5
javacTarget = 1.5
