Updated cordova-build.xml ANT script.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/2b8a69e0 Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/2b8a69e0 Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/2b8a69e0 Branch: refs/heads/spark Commit: 2b8a69e04ee8022cae28f71c5de093e50f97c490 Parents: 7b3c0cb Author: Peter Ent <[email protected]> Authored: Mon May 16 14:55:29 2016 -0400 Committer: Alex Harui <[email protected]> Committed: Thu May 26 16:04:21 2016 -0700 ---------------------------------------------------------------------- cordova-build.xml | 149 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 97 insertions(+), 52 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2b8a69e0/cordova-build.xml ---------------------------------------------------------------------- diff --git a/cordova-build.xml b/cordova-build.xml index 1e209b8..d7fb343 100644 --- a/cordova-build.xml +++ b/cordova-build.xml @@ -18,80 +18,125 @@ --> -<project name="createproject" default="main" basedir="."> +<project name="createproject" default="main"> - <condition property="project.name.specified" value="true"> - <isset property="PROJECT_NAME" /> + <!-- this ANT script assumes you are in the following directory structure: + + . /* run ANT here */ + ./src/<APP>.mxml /* The main application MXML tag */ + ./bin/js-debug /* The result of building APP.mxml via mxmlc + ./app/<APP> /* The Cordova application directory + + 1. This ANT script will build the template Cordova app/APP if it does not + already exist. + + 2. This ANT script will compile the APP.mxml into bin/js-debug + + 3. This ANT script will remove ./app/<APP>/www contents are replace it with + the contents of bin/js-debug. + + Optionally, you can run the Cordova application using ant run <platform> + + --> + + <target name="main" depends="create, compilejs, copyfiles" description="Creates the Cordova app if needed, compiles the FlexJS app, copies the results to Cordova app"> + <echo message="Building app ${appname} for platform ${platform}" /> + </target> + + <!-- Set up properties and conditions --> + + <condition property="platform" value="android"> + <!-- override with -Dplatform=other-platform-name --> + <not> + <isset property="platform" /> + </not> </condition> - <fail message="PROJECT_NAME not specified. Should specify desired name of cordova project" unless="project.name.specified"/> - - <condition property="target.dir.specified" value="true"> - <isset property="TARGET_DIR" /> - </condition> - <fail message="TARGET_DIR not specified. Should specify folder to contain cordova project folder" unless="target.dir.specified"/> - - <condition property="project.dir.specified" value="true"> - <isset property="PROJECT_DIR" /> - </condition> - <fail message="PROJECT_DIR not specified. Should specify folder that contains the bin/js-debug output of a FlexJS project" unless="project.dir.specified"/> - - <property name="target.dir" value="${TARGET_DIR}" /> - <property name="project.name" value="${PROJECT_NAME}" /> - <property name="project.dir" value="${PROJECT_DIR}" /> - - <property name="app.dir" value="${target.dir}/${project.name}" /> - <available file="${app.dir}" type="dir" property="app.dir.exists"/> - - <available file="${target.dir}" type="dir" property="target.dir.exists"/> - <fail message="${target.dir} does not exist" unless="target.dir.exists"/> - <available file="${project.dir}/bin/js-debug" type="dir" property="project.dir.exists"/> - <fail message="${project.dir}/bin/js-debug does not exist" unless="project.dir.exists"/> - <target name="create" unless="app.dir.exists"> + + <basename property="directory.name" file="${user.dir}" /> + <!-- override with -Dappname=other-app-name --> + <condition property="appname" value="${directory.name}"> + <not> + <isset property="appname" /> + </not> + </condition> + + <property name="cordova.target.dir" value="${user.dir}/app/${appname}" /> + <available file="${cordova.target.dir}" type="dir" property="app.dir.exists"/> + + <!-- Step 1: create the Cordova template project unless it already exists --> + + <target name="makedir" unless="app.dir.exists"> + <mkdir dir="${user.dir}/app" /> + </target> + + <target name="create" unless="app.dir.exists" depends="makedir" description="Creates the Cordova application template"> <!-- create the project --> - <exec executable="cordova" dir="${target.dir}"> + <exec executable="cordova" dir="${user.dir}/app"> <arg value="create" /> - <arg value="${project.name}" /> - <arg value="org.apache.flex.mobile" /> - <arg value="${project.name}" /> + <arg value="${appname}" /> </exec> + + <echo>Adding in platform(s). This may take awhile.</echo> <!-- add in the platforms --> - <exec executable="cordova" dir="${app.dir}"> + <exec executable="cordova" dir="${cordova.target.dir}"> <arg value="platform" /> <arg value="add" /> - <arg value="android" /> + <arg value="${platform}" /> </exec> </target> - <target name="copyfiles" depends="create"> - <echo message="Removing www directory contents" /> + <!-- Step 2: Compile the FlexJS application --> + + <target name="compilejs" description="Compiles the FlexJS app into JavaScript"> + <echo message="Compiling FlexJS app" /> + <exec executable="mxmlc" dir="${user.dir}/src"> + <arg value="${appname}.mxml" /> + </exec> + </target> + + <!-- Step 3: Clean www directory --> + + <target name="purge"> <delete includeEmptyDirs="true"> - <fileset dir="${app.dir}/www" includes="**/*" /> + <fileset dir="${cordova.target.dir}/www" includes="**/*" /> </delete> + </target> + + <!-- Step 4: Copy files from step 2 --> + + <target name="copyfiles" depends="purge"> <echo message="Copying files from project" /> - <copy todir="${app.dir}/www"> - <fileset dir="${project.dir}/bin/js-debug" /> + <copy todir="${cordova.target.dir}/www"> + <fileset dir="${user.dir}/bin/js-debug" /> </copy> </target> - <target name="build" depends="copyfiles"> - <!-- build the app --> - <exec executable="cordova" dir="${app.dir}"> - <arg value="build" /> - <arg value="android" /> - </exec> - </target> + <!-- + Running the app on the platform + --> - <target name="main" depends="build"> - <echo message="App = ${app.dir} and basedir = ${basedir}" /> + <target name="run" description="Runs the Cordova application on the specified platform"> + <echo message="Launching ${appname} on platform ${platform}" /> + <exec executable="cordova" dir="${cordova.target.dir}"> + <arg value="run" /> + <arg value="${platform}" /> + </exec> </target> - <target name="help"> - <echo message="ant -f cordova-build.xml -DPROJECT_NAME=name -DPROJECT_DIR=FlexJSProjectDirectory -DTARGET_DIR=PhoneGapProjectDirectory" /> - <echo message="PhoneGap project is created inside of PhoneGapProjectDirectory with the PROJECT name and all files are copied" /> - <echo message="from FlexJSProjectDirectory/bin/js-debug into the PhoneGap project." /> + <!-- + Cleaning Tasks + --> + + <target name="clean" depends="purge" description="Removes files created during the build and copy"> + <delete dir="${user.dir}/bin-debug" failonerror="false" /> + <delete dir="${user.dir}/bin-release" failonerror="false" /> </target> -</project> + <target name="super-clean" depends="clean" description="Removes all files and directories except src and its contents"> + <delete dir="${user.dir}/bin" /> + <delete dir="${user.dir}/app" /> + </target> +</project> \ No newline at end of file
