# Copyright (c) 2005 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.3 2006/03/08 19:13:13 khussey Exp $

# NLS_MESSAGEFORMAT_VAR

bin.includes = about.html,\
               plugin.*,\
               uml2.uml.jar,\
               **/*.ecore,\
               **/*.ecore2xml,\
               **/*.genmodel,\
               **/*.xsd,\
               META-INF/
src.includes = about.html,\
               **/*.ecore2ecore,\
               **/*.emx,\
               **/*.uml2
jars.compile.order = uml2.uml.jar
source.uml2.uml.jar = src/
output.uml2.uml.jar = bin/
exclude.uml2.uml.jar = **/doc-files/**
