#/*******************************************************************************
#* 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 Workbench Utility Library Tests
_productName=EclipseLink
release.version=2.5.2
javac.version=1.6

# Defines for basic build directories. 
_classesDestDir=${basedir}/classes
_libDir=${basedir}/../../eclipselink.utils.workbench.lib
_mwdevLibDir=${_libDir}/mw
_jarDestDir=${_libDir}/mwtest
_rootResourceDir=${basedir}/resource
_rootSourceDir=${basedir}/source

# Defined jarfile names. 
utility.jarfile=utility_test.jar
utility.jarfile.src=utility_test_src.jar

# Defines for build directories.
compile.utility.resources=${_rootResourceDir}
compile.utility.srcdir=${_rootSourceDir}
compile.utility.destdir=${_classesDestDir}
compile.utility.classpath= \
	${_mwdevLibDir}/utility.jar; \
	${junit.lib}
