| <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.playbook.bbwp.dir" message="Please specify BlackBerry WebWorks Packager directory using 'playbook.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.playbook.bbwp.dir}/bbwp" else="${properties.playbook.bbwp.dir}/bbwp.exe"> |
| <equals arg1="${isMacOSX}" arg2="true" /> |
| </condition> |
| |
| <condition property="blackberry-deploy" value="${properties.playbook.bbwp.dir}/blackberry-tablet-sdk/bin/blackberry-deploy" else="${properties.playbook.bbwp.dir}/blackberry-tablet-sdk/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.playbook.device.ip}" /> |
| <arg value="-password" /> |
| <arg value="${properties.playbook.device.password}" /> |
| <arg value="-package" /> |
| <arg file="${build.dir}/${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.playbook.device.ip}" /> |
| <arg value="-password" /> |
| <arg value="${properties.playbook.device.password}" /> |
| <arg value="-package" /> |
| <arg file="${build.dir}/${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.playbook.sim.ip}" /> |
| <arg value="-password" /> |
| <arg value="${properties.playbook.sim.password}" /> |
| <arg value="-package" /> |
| <arg file="${build.dir}/${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 playbook specific cordova js --> |
| <copy todir="${widget.dir}" overwrite="true"> |
| <fileset dir="www/playbook"> |
| <include name="*.js" /> |
| </fileset> |
| </copy> |
| |
| <!-- Update WebWorks Packager with the AIR APIs --> |
| <copy todir="${properties.playbook.bbwp.dir}\ext" overwrite="true"> |
| <fileset dir="www/ext-air" 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="-gcsk" /> |
| <arg value="${properties.playbook.sigtool.csk.password}" /> |
| <arg value="-gp12" /> |
| <arg value="${properties.playbook.sigtool.p12.password}" /> |
| <arg value="-o" /> |
| <arg file="${build.dir}" /> |
| <arg line="${debug.flag} -buildId" /> |
| <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} -buildId" /> |
| <arg value="${build.number}" /> |
| </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.playbook.device.ip}" /> |
| <arg value="-password" /> |
| <arg value="${properties.playbook.device.password}" /> |
| <arg value="-package" /> |
| <arg file="${build.dir}/${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.playbook.sim.ip}" /> |
| <arg value="-password" /> |
| <arg value="${properties.playbook.sim.password}" /> |
| <arg value="-package" /> |
| <arg file="${build.dir}/${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> |