#/*******************************************************************************
#* 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 Platforms Plug-in Tests
_productName=EclipseLink
release.version=2.5.3
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. 
platformsplugin.jarfile=platformsplugin_test.jar
platformsplugin.jarfile.src=platformsplugin_test_src.jar

# Defines for build directories.
compile.platformsplugin.resources=${_rootResourceDir}
compile.platformsplugin.srcdir=${_rootSourceDir}
compile.platformsplugin.destdir=${_classesDestDir}
compile.platformsplugin.classpath= \
	${_jarDestDir}/utility_test.jar; \
	${_jarDestDir}/framework_test.jar; \
	${_mwdevLibDir}/platformsplugin.jar; \
	${_mwdevLibDir}/platformsmodel.jar; \
	${_mwdevLibDir}/framework.jar; \
	${_mwdevLibDir}/uitools.jar; \
	${_mwdevLibDir}/utility.jar; \
	${junit.lib}
