# Copyright (c) 2006, 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:05 khussey Exp $

# NLS_MESSAGEFORMAT_VAR
bin.includes = *.html,\
               plugin.*,\
               .,\
               ant_tasks/uml2.uml.ecore.importer.tasks.jar,\
               META-INF/
src.includes = *.html,\
               examples/
jars.compile.order = .,\
                     ant_tasks/uml2.uml.ecore.importer.tasks.jar
jars.extra.classpath = ../org.eclipse.emf.ant/ant_tasks/emf.ant.tasks.jar
source.. = src/
source.ant_tasks/uml2.uml.ecore.importer.tasks.jar = tasks/
output.. = bin/
output.ant_tasks/uml2.uml.ecore.importer.tasks.jar = bin.tasks/
exclude.. = **/doc-files/**
exclude.ant_tasks/. = **/doc-files/**
javacSource = 1.5
javacTarget = 1.5
