# BlackBerry WebWorks Packager Directory
#
#   The BlackBerry WebWorks Packager (bbwp) is required for compiling and packaging
#   BlackBerry WebWorks applications for deployment to a BlackBerry device
#   or simulator.  The bbwp utility is installed with the standalone BlackBerry 
#   WebWorks SDK, and as part of the BlackBerry Web Plugin for Eclipse.
#
#   Please specify the location of the BlackBerry WebWorks Packager in your
#   environment.
#
#   Typical location of bbwp for standalone BlackBerry WebWorks SDK installation:
#     C:\Program Files (x86)\Research In Motion\BlackBerry Widget Packager
#
#   Typical location of bbwp for BlackBerry Web Plugin for Eclipse installation:
#     C:\Eclipse-3.5.2\plugins\net.rim.browser.tools.wcpc_1.0.0.201003191451-126\wcpc
#
#   The ANT script is brittle and requires you to escape the backslashes.
#     e.g. C:\some\path must be C:\\some\\path
#
#   Please remember to:
#     - Double escape your backslashes (i.e. \ must be \\)
#     - Do not add a trailing slash (e.g. C:\some\path)
#
blackberry.bbwp.dir=C:\\Program Files\\Research In Motion\\BlackBerry WebWorks Packager
playbook.bbwp.dir=C:\\Program Files\\Research In Motion\\BlackBerry WebWorks SDK for TabletOS 2.1.0.6\\bbwp
qnx.bbwp.dir=/Developer/SDKs/Research In Motion/BlackBerry 10 WebWorks SDK 1.0.1.17

# (Optional) Simulator Directory 
# 
#   If sim.dir is not specified, the build script will use the simulator directory 
#   within the BlackBerry WebWorks Packager.
#
blackberry.sim.dir=C:\\Program Files\\Research In Motion\BlackBerry WebWorks Packager\\simpack\\6.0.0.227

# (Optional) Simulator Binary 
# 
#   If sim.bin is not specified, the build script will attempt to use the default
#   simulator in the simulator directory.  
#
#blackberry.sim.bin=9700.bat

# (Optional) MDS Directory 
# 
#   If mds.dir is not specified, the build script will attempt to use the MDS that 
#   is installed with the BlackBerry WebWorks Packager.
#
blackberry.mds.dir=C:\\Program Files\\Research In Motion\\BlackBerry WebWorks Packager\\mds

# BlackBerry Code Signing Password
#
#   If you leave this field blank, then
#   the signing tool will prompt you each time
#
blackberry.sigtool.password=

# Playbook Code Signing Password
#
#   If you leave these fields blank, then
#   signing will fail
#
playbook.sigtool.csk.password=
playbook.sigtool.p12.password=

# BB10 Code Signing Password
qnx.sigtool.password=

# BlackBerry Simulator Password
#
#   If you leave this field blank, then
#   you cannot deploy to simulator
#
blackberry.sim.password=

# Playbook Simulator IP
#
#   If you leave this field blank, then
#   you cannot deploy to simulator
#
playbook.sim.ip=

# Playbook Simulator Password
#
#   If you leave this field blank, then
#   you cannot deploy to simulator
#
playbook.sim.password=

# Playbook Device IP
#
#   If you leave this field blank, then
#   you cannot deploy to device
#
playbook.device.ip=

# Playbook Device Password
#
#   If you leave this field blank, then
#   you cannot deploy to device
#
playbook.device.password=

# QNX Simulator IP
#
#   If you leave this field blank, then
#   you cannot deploy to simulator
#
qnx.sim.ip=

# QNX Simulator Password
#
#   If you leave this field blank, then
#   you cannot deploy to simulator
#
qnx.sim.password=

# QNX Device IP
#
#   If you leave this field blank, then
#   you cannot deploy to device
#
qnx.device.ip=

# QNX Device Password
#
#   If you leave this field blank, then
#   you cannot deploy to device
#
qnx.device.password=
