#/*******************************************************************************
#* 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:
#*     Oracle - initial API and implementation
#******************************************************************************/

#set defaults for values that should already be set
_LibraryName=EclipseLink Mapping Workbench Mappings Model
_productName=EclipseLink
release.version=2.5.3

# Defines for basic build directories.
_classesDestDir=${basedir}/classes
_libDir=${basedir}/../../eclipselink.utils.workbench.lib/
_jarDestDir=${_libDir}/mw
_rootResourceDir=${basedir}/resource
_rootSourceDir=${basedir}/source

# Defined jarfile names.
mappingsmodel.jarfile=mappingsmodel.jar
mappingsmodel.jarfile.src=mappingsmodel_src.jar

# Defines for build directories.
compile.mappingsmodel.resources=${_rootResourceDir}
compile.mappingsmodel.srcdir=${_rootSourceDir}
compile.mappingsmodel.destdir=${_classesDestDir}
compile.mappingsmodel.classpath= \
	${_jarDestDir}/platformsmodel.jar; \
	${_jarDestDir}/utility.jar; \
	${_libDir}/compile/xercesImpl.jar; \
	${_eclipselinkJar}
