You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ti...@apache.org on 2012/08/24 02:36:15 UTC
[3/6] webworks commit: added initial building support for bb10
added initial building support for bb10
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/commit/dad90afc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/tree/dad90afc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/diff/dad90afc
Branch: refs/heads/master
Commit: dad90afcdb3cdfbe6d7215e57e7b17de8f78e602
Parents: 62a9301
Author: Gord Tanner <gt...@gmail.com>
Authored: Tue Aug 21 11:43:40 2012 -0400
Committer: Tim Kim <ti...@nitobi.com>
Committed: Thu Aug 23 11:48:37 2012 -0700
----------------------------------------------------------------------
bin/templates/project/build.xml | 18 +-
bin/templates/project/playbook.xml | 2 +-
bin/templates/project/project.properties | 33 +++-
bin/templates/project/qnx.xml | 280 +++++++++++++++++++++++++
bin/templates/project/www/config.xml | 4 +-
build.xml | 32 +++-
framework/ext-qnx/readme.md | 1 +
javascript/cordova.qnx.js | 1 +
8 files changed, 360 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/dad90afc/bin/templates/project/build.xml
----------------------------------------------------------------------
diff --git a/bin/templates/project/build.xml b/bin/templates/project/build.xml
index bde73c0..44c93be 100644
--- a/bin/templates/project/build.xml
+++ b/bin/templates/project/build.xml
@@ -39,6 +39,10 @@
<target name="playbook" >
<property name="subant.file" value="playbook.xml" />
</target>
+
+ <target name="qnx" >
+ <property name="subant.file" value="qnx.xml" />
+ </target>
<target name="load-device">
<subant target="load-device">
@@ -100,27 +104,29 @@ TARGETS
playbook .......... Builds a bar file and deploys to a device or simulator
+ qnx ............... Builds a bar file and deploys to a device or simulator
+
COMMANDS
help .............. Show this help menu.
ant, ant help
load-device ....... Builds and deploys project to a connected USB device.
- ant load-device
+ ant TARGET load-device
load-simulator .... Builds and deploys project to default simulator.
- ant load-simulator
+ ant TARGET load-simulator
build ............. Compiles and packages the project for deployment.
- ant build
+ ant TARGET build
clean ............. Remove all files from the build/ directory.
- ant clean
+ ant TARGET clean
clean-device ...... Remove this project from the connected USB device.
- ant clean-device
+ ant TARGET clean-device
clean-simulator ... Remove this project from the simulator (takes a while).
- ant clean-simulator
+ ant TARGET clean-simulator
GETTING STARTED
1. Edit project.properties
http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/dad90afc/bin/templates/project/playbook.xml
----------------------------------------------------------------------
diff --git a/bin/templates/project/playbook.xml b/bin/templates/project/playbook.xml
index 2cce58d..1e4b4b4 100644
--- a/bin/templates/project/playbook.xml
+++ b/bin/templates/project/playbook.xml
@@ -201,7 +201,7 @@
<!-- CLEAN SIMULATOR -->
- <target name="clean-simulator">
+ <target name="clean-simulator" depends="generate-cod-name">
<exec executable="${blackberry-deploy}" dir="." failonerror="true">
<arg value="-uninstallApp" />
<arg value="-device" />
http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/dad90afc/bin/templates/project/project.properties
----------------------------------------------------------------------
diff --git a/bin/templates/project/project.properties b/bin/templates/project/project.properties
index 72c3841..8b5b815 100644
--- a/bin/templates/project/project.properties
+++ b/bin/templates/project/project.properties
@@ -22,8 +22,8 @@
# - 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.8
# (Optional) Simulator Directory
#
@@ -61,6 +61,9 @@ blackberry.sigtool.password=
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
@@ -95,3 +98,31 @@ playbook.device.ip=
# 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=
http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/dad90afc/bin/templates/project/qnx.xml
----------------------------------------------------------------------
diff --git a/bin/templates/project/qnx.xml b/bin/templates/project/qnx.xml
new file mode 100644
index 0000000..a67f54a
--- /dev/null
+++ b/bin/templates/project/qnx.xml
@@ -0,0 +1,280 @@
+<project default="help">
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+ <!-- LOAD PROPERTIES -->
+
+ <property prefix="properties" file="project.properties" />
+ <property name="build.dir" location="build" />
+ <property name="widget.dir" location="${build.dir}/widget" />
+ <property name="code.sign" value="false" />
+ <property name="generate.ext" value="cod" />
+ <property name="build.num.file" value="buildId.txt" />
+
+ <!-- BlackBerry WebWorks Packager for Tablets directory is required. -->
+ <fail unless="properties.qnx.bbwp.dir" message="Please specify BlackBerry WebWorks Packager directory using 'qnx.bbwp.dir' in your 'project.properties' file." />
+
+ <!-- OS identification -->
+ <condition property="isMacOSX" else="false">
+ <and>
+ <os family="mac" />
+ <os family="unix" />
+ </and>
+ </condition>
+
+ <condition property="bbwp" value="${properties.qnx.bbwp.dir}/bbwp" else="${properties.qnx.bbwp.dir}/bbwp.exe">
+ <equals arg1="${isMacOSX}" arg2="true" />
+ </condition>
+
+ <condition property="blackberry-deploy" value="${properties.qnx.bbwp.dir}/dependencies/tools/bin/blackberry-deploy" else="${properties.qnx.bbwp.dir}/dependencies/tools/bin/blackberry-deploy.bat">
+ <equals arg1="${isMacOSX}" arg2="true" />
+ </condition>
+
+ <!-- LOAD DEVICE -->
+
+ <target name="load-device" depends="package-app">
+ <bbwp code-sign="true" />
+
+ <exec executable="${blackberry-deploy}" dir="." failonerror="true">
+ <arg value="-installApp" />
+ <arg value="-launchApp" />
+ <arg value="-device" />
+ <arg value="${properties.qnx.device.ip}" />
+ <arg value="-password" />
+ <arg value="${properties.qnx.device.password}" />
+ <arg value="-package" />
+ <arg file="${build.dir}/device/${cod.name}.bar" />
+ </exec>
+ </target>
+
+ <!-- DEBUG-LOAD DEVICE -->
+
+ <target name="debug-device" depends="package-app">
+ <bbwp code-sign="true" debug="true" />
+
+ <exec executable="${blackberry-deploy}" dir="." failonerror="true">
+ <arg value="-installApp" />
+ <arg value="-launchApp" />
+ <arg value="-device" />
+ <arg value="${properties.qnx.device.ip}" />
+ <arg value="-password" />
+ <arg value="${properties.qnx.device.password}" />
+ <arg value="-package" />
+ <arg file="${build.dir}/device/${cod.name}.bar" />
+ </exec>
+ </target>
+
+ <!-- LOAD SIMULATOR -->
+
+ <target name="load-simulator" depends="build">
+
+ <echo>This tool will not open the simulator for you </echo>
+
+ <exec executable="${blackberry-deploy}" dir="." failonerror="true">
+ <arg value="-installApp" />
+ <arg value="-launchApp" />
+ <arg value="-device" />
+ <arg value="${properties.qnx.sim.ip}" />
+ <arg value="-password" />
+ <arg value="${properties.qnx.sim.password}" />
+ <arg value="-package" />
+ <arg file="${build.dir}/simulator/${cod.name}.bar" />
+ </exec>
+ </target>
+
+ <!-- PACKAGE-APP -->
+
+ <target name="package-app" depends="generate-cod-name, clean">
+ <!-- Copy the WebWorks application -->
+ <mkdir dir="${widget.dir}" />
+ <copy todir="${widget.dir}" overwrite="true">
+ <fileset dir="www" >
+ <exclude name="ext/**"/>
+ <exclude name="ext-air/**"/>
+ <exclude name="playbook/**"/>
+ </fileset>
+ </copy>
+
+ <!-- Overwrite the cordova js with the qnx specific cordova js -->
+ <copy todir="${widget.dir}" overwrite="true">
+ <fileset dir="www/playbook">
+ <include name="*.js" />
+ </fileset>
+ </copy>
+
+ <!-- Update WebWorks Packager with the QNX APIs -->
+ <copy todir="${properties.qnx.bbwp.dir}\ext" overwrite="true">
+ <fileset dir="www/ext-qnx" excludes="README.md" />
+ </copy>
+
+ <!-- Package the WebWorks app by zipping the widget dir. -->
+ <mkdir dir="${build.dir}" />
+ <zip compress="false" destfile="${build.dir}/${cod.name}.zip" basedir="${widget.dir}" excludes="**/build/**,**/.settings/**,**/.project" />
+ </target>
+
+ <!-- BUILD -->
+
+ <target name="build" depends="package-app">
+ <bbwp code-sign="${code.sign}" />
+ </target>
+
+ <!-- BBWP MACRO -->
+
+ <macrodef name="bbwp">
+ <attribute name="code-sign" default="false" />
+ <attribute name="debug" default="false" />
+ <sequential>
+ <!-- check if debug flag was passed in and set an appropriate flag for CLI exec of bbwp -->
+ <if>
+ <equals arg1="@{debug}" arg2="true" />
+ <then>
+ <property name="debug.flag" value="-d" />
+ </then>
+ <else>
+ <property name="debug.flag" value="" />
+ </else>
+ </if>
+ <buildnumber file="${build.num.file}" />
+ <if>
+ <equals arg1="@{code-sign}" arg2="true" />
+ <then>
+ <exec executable="${bbwp}">
+ <arg file="${build.dir}/${cod.name}.zip" />
+ <arg value="-g" />
+ <arg value="${properties.qnx.sigtool.password}" />
+ <arg value="-o" />
+ <arg file="${build.dir}" />
+ <arg line="${debug.flag} -b" />
+ <arg value="${build.number}" />
+ </exec>
+ </then>
+ <else>
+ <exec executable="${bbwp}">
+ <arg file="${build.dir}/${cod.name}.zip" />
+ <arg value="-o" />
+ <arg file="${build.dir}" />
+ <arg line="${debug.flag}" />
+ </exec>
+ </else>
+ </if>
+ </sequential>
+ </macrodef>
+
+ <!-- CLEAN -->
+
+ <target name="clean">
+ <delete dir="${build.dir}" />
+ <delete dir="${widget.dir}" />
+ </target>
+
+ <!-- CLEAN DEVICE -->
+
+ <target name="clean-device" depends="generate-cod-name">
+ <exec executable="${blackberry-deploy}" dir="." failonerror="true">
+ <arg value="-uninstallApp" />
+ <arg value="-device" />
+ <arg value="${properties.qnx.device.ip}" />
+ <arg value="-password" />
+ <arg value="${properties.qnx.device.password}" />
+ <arg value="-package" />
+ <arg file="${build.dir}/device/${cod.name}.bar" />
+ </exec>
+ </target>
+
+ <!-- CLEAN SIMULATOR -->
+
+ <target name="clean-simulator" depends="generate-cod-name">
+ <exec executable="${blackberry-deploy}" dir="." failonerror="true">
+ <arg value="-uninstallApp" />
+ <arg value="-device" />
+ <arg value="${properties.qnx.sim.ip}" />
+ <arg value="-password" />
+ <arg value="${properties.qnx.sim.password}" />
+ <arg value="-package" />
+ <arg file="${build.dir}/simulator/${cod.name}.bar" />
+ </exec>
+ </target>
+
+ <!-- HELPER TASKS -->
+
+ <target name="generate-cod-name">
+ <xmlproperty file="www/config.xml" prefix="config.xml" />
+ <propertyregex property="cod.name"
+ input="${config.xml.widget.name}"
+ regexp="(\W+)"
+ replace=""
+ casesensitive="false"
+ global="true"
+ defaultValue="${config.xml.widget.name}" />
+ <echo message="Generated name: ${cod.name}.bar" />
+ </target>
+
+ <!-- HELP -->
+
+ <target name="help">
+ <echo>
+NAME
+ ${ant.project.name}
+
+SYNOPSIS
+ ant TARGET COMMAND [-D<argument>=<value>]...
+
+DESCRIPTION
+ You can build and deploy your project to a device or simulator.
+
+TARGETS
+ blackberry ........ Builds a cod file and deploys to a device or simulator
+
+ playbook .......... Builds a bar file and deploys to a device or simulator
+
+COMMANDS
+ help .............. Show this help menu.
+ ant, ant help
+
+ load-device ....... Builds and deploys project to a connected USB device.
+ ant load-device
+
+ load-simulator .... Builds and deploys project to default simulator.
+ ant load-simulator
+
+ build ............. Compiles and packages the project for deployment.
+ ant build
+
+ clean ............. Remove all files from the build/ directory.
+ ant clean
+
+ clean-device ...... Remove this project from the connected USB device.
+ ant clean-device
+
+ clean-simulator ... Remove this project from the simulator (takes a while).
+ ant clean-simulator
+
+GETTING STARTED
+ 1. Edit project.properties
+
+ 2. <ant <TARGET> load-simulator> to run the project on the simulator
+
+ 3. Customize your project by editing www/config.xml
+
+ 4. To run the project on a BlackBerry device, you will need to obtain
+ code signing keys from RIM. Once you have the key, a project is
+ installed by connecting a BlackBerry via USB and running
+ <ant <TARGET> load-device>.
+ </echo>
+ </target>
+</project>
http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/dad90afc/bin/templates/project/www/config.xml
----------------------------------------------------------------------
diff --git a/bin/templates/project/www/config.xml b/bin/templates/project/www/config.xml
index 1cc24e1..d9d33d3 100644
--- a/bin/templates/project/www/config.xml
+++ b/bin/templates/project/www/config.xml
@@ -24,10 +24,12 @@
<widget xmlns="http://www.w3.org/ns/widgets"
xmlns:rim="http://www.blackberry.com/ns/widgets"
- version="1.0.0.0">
+ version="1.0.0.0" id="__NAME__">
<name>__NAME__</name>
+ <author>Your Name Here</author>
+
<description>
A sample Apache Cordova application that responds to the deviceready event.
</description>
http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/dad90afc/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 4a45756..e9976bc 100644
--- a/build.xml
+++ b/build.xml
@@ -45,6 +45,10 @@
<property name="playbook.js.path" value="javascript/playbook" />
<property name="playbook.ext.src" location="framework/ext-air" />
<property name="playbook.ext.path" value="ext-air" />
+
+ <property name="qnx.js.path" value="javascript/qnx" />
+ <property name="qnx.ext.src" location="framework/ext-qnx" />
+ <property name="qnx.ext.path" value="ext-qnx" />
<property name="js.src" location="javascript" />
<property name="js.path" value="javascript" />
@@ -62,6 +66,9 @@
<mkdir dir="${build.dir}/${playbook.js.path}" />
<copy file="${js.src}/cordova.playbook.js" tofile="${build.dir}/${playbook.js.path}/${js.basename}" />
+ <!-- QNX Javascript -->
+ <mkdir dir="${build.dir}/${qnx.js.path}" />
+ <copy file="${js.src}/cordova.qnx.js" tofile="${build.dir}/${qnx.js.path}/${js.basename}" />
</target>
<!-- BUILD BLACKBERRY EXTENSION -->
@@ -85,9 +92,20 @@
<fileset dir="${playbook.ext.src}" />
</copy>
</target>
+
+ <!-- BUILD QNX EXTENSION -->
+
+ <target name="build-qnx-extension">
+
+ <!-- Copy Ext -->
+ <mkdir dir="${build.dir}/${qnx.ext.path}" />
+ <copy todir="${build.dir}/${qnx.ext.path}">
+ <fileset dir="${qnx.ext.src}" />
+ </copy>
+ </target>
<!-- CREATE A PROJECT -->
- <target name="create" depends="clean, build-javascript, build-bb-extension, build-pb-extension">
+ <target name="create" depends="clean, build-javascript, build-bb-extension, build-pb-extension, build-qnx-extension">
<fail unless="project.path" message="You must give a project PATH. Use the argument -Dproject.path="C:\dev\my_project"" />
<available file="${project.path}" property="project.exists" />
@@ -122,6 +140,11 @@
<copy todir="${project.path}/www/ext-air">
<fileset dir="${build.dir}/${playbook.ext.path}" />
</copy>
+
+ <!-- copy ext-qnx/ -->
+ <copy todir="${project.path}/www/ext-qnx">
+ <fileset dir="${build.dir}/${qnx.ext.path}" />
+ </copy>
<!-- save release -->
<mkdir dir="${project.path}/${update.dir}" />
@@ -166,6 +189,11 @@ Getting Started:
<copy todir="${dist.www.path}/ext-air">
<fileset dir="${build.dir}/${playbook.ext.path}" />
</copy>
+
+ <!-- copy ext-qnx/ -->
+ <copy todir="${dist.www.path}/ext-qnx">
+ <fileset dir="${build.dir}/${qnx.ext.path}" />
+ </copy>
<!-- copy cordova.js -->
<copy todir="${dist.www.path}">
@@ -227,7 +255,7 @@ Remember to:
<!-- UPDATE A PROJECT -->
- <target name="update" depends="clean, build-javascript, build-bb-extension, build-pb-extension">
+ <target name="update" depends="clean, build-javascript, build-bb-extension, build-pb-extension, build-qnx-extension">
<fail unless="project.path" message="You must give a project PATH. Use the argument -Dproject.path="C:\dev\my_project"" />
<available file="${project.path}" property="project.exists" />
http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/dad90afc/framework/ext-qnx/readme.md
----------------------------------------------------------------------
diff --git a/framework/ext-qnx/readme.md b/framework/ext-qnx/readme.md
new file mode 100644
index 0000000..6527192
--- /dev/null
+++ b/framework/ext-qnx/readme.md
@@ -0,0 +1 @@
+Placeholder for native extensions needed on qnx
http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/dad90afc/javascript/cordova.qnx.js
----------------------------------------------------------------------
diff --git a/javascript/cordova.qnx.js b/javascript/cordova.qnx.js
new file mode 100644
index 0000000..abf904b
--- /dev/null
+++ b/javascript/cordova.qnx.js
@@ -0,0 +1 @@
+alert('Real Javascript should go here from cordova.js");