# Copyright (c) 2006, 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
#   Kenn Hussey (CEA) - 351776
#
# $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 = ./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
