| <project name="Create & Update a PhoneGap BlackBerry WebWorks Project or Plugin" default="help"> |
| |
| <!-- LOAD VERSION --> |
| |
| <loadfile property="version" srcFile="VERSION"> |
| <filterchain> |
| <striplinebreaks/> |
| </filterchain> |
| </loadfile> |
| |
| <!-- LOAD PROPERTIES --> |
| |
| <property name="template.project.dir" location="template/project" /> |
| <property name="template.plugin.dir" location="template/plugin" /> |
| <property name="template.dist.dir" location="template/dist" /> |
| |
| <property name="build.dir" location="build" /> |
| <property name="update.dir" value="lib/phonegap.${version}" /> |
| |
| <property name="dist.path" location="dist" /> |
| <property name="dist.www.path" location="${dist.path}/www" /> |
| <property name="dist.project.path" location="${dist.path}/sample" /> |
| |
| <property name="jar.src" location="framework/ext/src" /> |
| <property name="jar.path" value="ext" /> |
| <property name="jar.basename" value="phonegap.${version}.jar" /> |
| <property name="jar.file" value="${jar.path}/${jar.basename}" /> |
| |
| <property name="js.src" location="javascript" /> |
| <property name="js.path" value="javascript" /> |
| <property name="js.basename" value="phonegap-${version}.js" /> |
| <property name="js.file" value="${js.path}/${js.basename}" /> |
| |
| <!-- BUILD JAVASCRIPT --> |
| |
| <target name="build-javascript"> |
| <mkdir dir="${build.dir}/${js.path}" /> |
| |
| <concat destfile="${build.dir}/${js.file}" append="false"> |
| <fileset dir="${js.src}"> |
| <include name="*.js" /> |
| </fileset> |
| </concat> |
| </target> |
| |
| <!-- BUILD WIDGET EXTENSION --> |
| |
| <target name="build-extension"> |
| <mkdir dir="${build.dir}/${jar.path}" /> |
| |
| <zip destfile="${build.dir}/${jar.file}"> |
| <fileset dir="${jar.src}" includes="library.xml" /> |
| <fileset dir="${jar.src}" includes="**/*.java" /> |
| </zip> |
| </target> |
| |
| <!-- CREATE A PROJECT --> |
| <target name="create" depends="clean, build-javascript, build-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" /> |
| <fail if="project.exists" message="The project path must be an empty directory." /> |
| |
| <!-- create project using template directory --> |
| <mkdir dir="${project.path}" /> |
| <copy todir="${project.path}"> |
| <fileset dir="${template.project.dir}" /> |
| </copy> |
| |
| <!-- update project files to reference phonegap.x.x.x.js --> |
| <replaceregexp match="phonegap\.js" replace="${js.basename}" byline="true"> |
| <fileset file="${project.path}/www/index.html" /> |
| <fileset file="${project.path}/build.xml" /> |
| </replaceregexp> |
| |
| <!-- copy phonegap.js --> |
| <copy todir="${project.path}/www"> |
| <fileset dir="${build.dir}/${js.path}" /> |
| </copy> |
| |
| <!-- copy ext/ --> |
| <copy todir="${project.path}/www/ext"> |
| <fileset dir="${build.dir}/${jar.path}" /> |
| </copy> |
| |
| <!-- save release --> |
| <mkdir dir="${project.path}/${update.dir}" /> |
| <copy todir="${project.path}/${update.dir}"> |
| <fileset dir="${build.dir}" /> |
| </copy> |
| |
| <echo> |
| Project Creation Complete! |
| ========================== |
| |
| Getting Started: |
| ---------------- |
| |
| cd ${project.path} |
| |
| ant help |
| </echo> |
| </target> |
| |
| <!-- DISTRIBUTION --> |
| <target name="dist" depends=""> |
| <!-- create a sample project --> |
| <antcall target="create"> |
| <param name="project.path" value="${dist.project.path}" /> |
| </antcall> |
| |
| <!-- copy dist template (README.md) --> |
| <copy todir="${dist.path}"> |
| <fileset dir="${template.dist.dir}" /> |
| </copy> |
| |
| <!-- copy phonegap.jar --> |
| <copy todir="${dist.www.path}/ext"> |
| <fileset dir="${build.dir}/${jar.path}" /> |
| </copy> |
| |
| <!-- copy phonegap.js --> |
| <copy todir="${dist.www.path}"> |
| <fileset dir="${build.dir}/${js.path}" /> |
| </copy> |
| |
| <!-- copy config.xml --> |
| <copy todir="${dist.www.path}"> |
| <fileset file="${template.project.dir}/www/config.xml" /> |
| </copy> |
| |
| <!-- copy plugins.xml --> |
| <copy todir="${dist.www.path}"> |
| <fileset file="${template.project.dir}/www/plugins.xml" /> |
| </copy> |
| |
| <echo> |
| Distribution Complete! |
| ====================== |
| |
| Version: |
| -------- |
| |
| ${version} |
| |
| Path: |
| ----- |
| |
| ${dist.path} |
| </echo> |
| </target> |
| |
| <target name="version"> |
| <replace dir="." token="${version}" value="${value}" /> |
| |
| <echo> |
| Version Update Complete! |
| ======================== |
| |
| Version: |
| -------- |
| |
| Previous: ${version} |
| Current: ${value} |
| |
| Remember to: |
| ------------ |
| |
| Review and commit the version update. |
| |
| $ git diff |
| $ git commit -am "Update to version ${value}" |
| $ git tag ${value} |
| </echo> |
| </target> |
| |
| <!-- UPDATE A PROJECT --> |
| |
| <target name="update" depends="clean, build-javascript, build-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" /> |
| <fail unless="project.exists" message="The project path cannot be empty." /> |
| |
| <!-- save release --> |
| <mkdir dir="${project.path}/${update.dir}" /> |
| <copy todir="${project.path}/${update.dir}"> |
| <fileset dir="${build.dir}" /> |
| </copy> |
| |
| <echo> |
| Update complete! |
| ================ |
| |
| PhoneGap ${version} has been created. |
| |
| Update does not alter your project files. |
| |
| See below for instructions to install PhoneGap ${version}. |
| |
| Where: |
| ------ |
| |
| ${project.path}/${update.dir} |
| |
| Install: |
| -------- |
| |
| 1. Install the Java Extension: |
| |
| - delete /www/${jar.path}/phonegap.jar |
| |
| - copy /${update.dir}/${jar.file} |
| to /www/${jar.file} |
| |
| 2. Install the JavaScript library: |
| |
| - delete /www/phonegap.js |
| |
| - copy /${update.dir}/${js.file} |
| to /www/${js.basename} |
| |
| 3. Update JavaScript references: |
| |
| - <script type="text/javascript" src="${js.basename}"></script> |
| </echo> |
| </target> |
| |
| <!-- CREATE A PLUGIN --> |
| |
| <target name="create-plugin" depends=""> |
| <!-- validate arguments --> |
| <fail unless="plugin.path" message="You must give a plugin PATH. Use the argument -Dplugin.path="C:\dev\my_plugin"" /> |
| |
| <!-- destination must be empty --> |
| <available file="${plugin.path}" property="plugin.exists" /> |
| <fail if="plugin.exists" message="The plugin path must be an empty directory." /> |
| |
| <!-- copy plugin directory --> |
| <mkdir dir="${plugin.path}" /> |
| <copy todir="${plugin.path}"> |
| <fileset dir="${template.plugin.dir}" /> |
| </copy> |
| |
| <echo> |
| Plugin Creation Complete! |
| ========================= |
| |
| Getting Started: |
| ---------------- |
| |
| cd ${plugin.path} |
| |
| ant help |
| </echo> |
| </target> |
| |
| <!-- UPDATE A PLUGIN --> |
| |
| <target name="update-plugin" depends=""> |
| <fail unless="plugin.path" message="You must give a plugin PATH. Use the argument -Dplugin.path="C:\dev\my_plugin"" /> |
| |
| <available file="${plugin.path}" property="plugin.exists" /> |
| <fail unless="plugin.exists" message="The plugin path cannot be empty." /> |
| |
| <!-- build.xml --> |
| <copy todir="${plugin.path}" file="${template.plugin.dir}/build.xml" /> |
| <echo message="Updated build.xml" /> |
| </target> |
| |
| <!-- CLEAN --> |
| |
| <target name="clean"> |
| <delete dir="${build.dir}" /> |
| <delete dir="${dist.path}" /> |
| </target> |
| |
| <!-- HELP --> |
| |
| <target name="help"> |
| <echo> |
| NAME |
| ${ant.project.name} |
| |
| SYNOPSIS |
| ant COMMAND [-D<argument>=<value>]... |
| |
| DESCRIPTION |
| This tool allows you to create and update PhoneGap-BlackBerry-WebWorks projects. |
| You will want to run update after you have updated the framework source. |
| In other words, when you <git pull origin master>. |
| |
| COMMANDS |
| help ............ Show this help menu. |
| ant, ant help |
| |
| create .......... Create a new project |
| ant create PATH |
| ant create -Dproject.path="C:\dev\my_project" |
| |
| update .......... Update an existing project |
| ant update PATH |
| ant update -Dproject.path="C:\dev\my_project" |
| |
| dist ............ Create a PhoneGap distribution build |
| ant dist |
| |
| version ......... Update PhoneGap version |
| ant version VERSION |
| ant version -Dvalue="1.0.0" |
| |
| create-plugin ... Create a new plugin |
| ant create-plugin PATH |
| ant create-plugin -Dplugin.path="C:\dev\my_plugin" |
| |
| update-plugin ... Update a plugin's ANT script |
| ant update-plugin PATH |
| ant update-plugin -Dplugin.path="C:\dev\my_plugin" |
| </echo> |
| </target> |
| |
| </project> |