203 lines
8.9 KiB
XML
203 lines
8.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project name="K9" default="help">
|
|
|
|
<!-- The local.properties file is created and updated by the 'android' tool.
|
|
It contain the path to the SDK. It should *NOT* be checked in in Version
|
|
Control Systems. -->
|
|
<property file="local.properties"/>
|
|
|
|
<!-- The build.properties file can be created by you and is never touched
|
|
by the 'android' tool. This is the place to change some of the default property values
|
|
used by the Ant rules.
|
|
Here are some properties you may want to change/update:
|
|
|
|
application-package
|
|
the name of your application package as defined in the manifest. Used by the
|
|
'uninstall' rule.
|
|
source.dir
|
|
the name of the source folder. Default is 'src'.
|
|
out.dir
|
|
the name of the output folder. Default is 'bin'.
|
|
|
|
Properties related to the SDK location or the project target should be updated
|
|
using the 'android' tool with the 'update' action.
|
|
|
|
This file is an integral part of the build system for your application and
|
|
should be checked in in Version Control Systems.
|
|
|
|
-->
|
|
<property file="build.properties"/>
|
|
|
|
<!-- The default.properties file is created and updated by the 'android' tool, as well
|
|
as ADT.
|
|
This file is an integral part of the build system for your application and
|
|
should be checked in in Version Control Systems. -->
|
|
<property file="default.properties"/>
|
|
|
|
<!-- Custom Android task to deal with the project target, and import the proper rules.
|
|
This requires ant 1.6.0 or above. -->
|
|
<path id="android.antlibs">
|
|
<pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
|
|
<pathelement path="${sdk.dir}/tools/lib/sdklib.jar" />
|
|
<pathelement path="${sdk.dir}/tools/lib/androidprefs.jar" />
|
|
<pathelement path="${sdk.dir}/tools/lib/apkbuilder.jar" />
|
|
<pathelement path="${sdk.dir}/tools/lib/jarutils.jar" />
|
|
</path>
|
|
|
|
<property environment="env"/>
|
|
|
|
<taskdef name="setup"
|
|
classname="com.android.ant.SetupTask"
|
|
classpathref="android.antlibs"/>
|
|
|
|
<setup />
|
|
<!-- Execute the Android Setup task that will setup some properties specific to the target,
|
|
and import the rules files.
|
|
To customize the rules, copy/paste them below the task, and disable import by setting
|
|
the import attribute to false:
|
|
|
|
This will ensure that the properties are setup correctly but that your customized
|
|
targets are used.
|
|
-->
|
|
|
|
<!-- folder for the java libraries already in AOP but not in the official SDK -->
|
|
<property name="compile-only-libs-folder" value="compile-only-libs" />
|
|
|
|
<!-- out folders for a parent project if this project is an instrumentation project -->
|
|
<property name="rclib" value="${out.dir}/K9RemoteControl.jar" />
|
|
<property name="rcdir" value="com/fsck/k9/remotecontrol/**" />
|
|
|
|
<!-- A bloody hack, but a useful and quick one -->
|
|
<target name="get-version">
|
|
<exec executable="perl" failonerror="true" outputproperty="version-name" errorproperty="version-error">
|
|
<!-- yes, ant needs " for " in doublequoted strings. -->
|
|
<arg line="-ne'/android:versionName.*?=.*?"(.*?)"/ ? print $1 : undef ' AndroidManifest.xml" />
|
|
</exec>
|
|
<echo>Building version number ${version-name}</echo>
|
|
</target>
|
|
|
|
<target name="get-version-from-git">
|
|
<exec executable="git" failonerror="true" outputproperty="version-name" errorproperty="version-error">
|
|
<arg line="describe --tags"/>
|
|
</exec>
|
|
<echo>Building version number ${version-name}</echo>
|
|
</target>
|
|
|
|
<target name="set-version">
|
|
<echo>Setting version to ${version-name}</echo>
|
|
<fail unless="version-name">You can't set the version without passing -Dversion-name=1.234</fail>
|
|
<exec executable="perl" failonerror="true">
|
|
<arg line="-p -i.bak -e's/(?<=android:versionName=")(.*?)(?=")/${version-name}/' AndroidManifest.xml"/>
|
|
</exec>
|
|
<exec executable="perl" failonerror="true">
|
|
<arg line="-p -i.bak -e's/(?<=android:versionCode=")(\d+)(?=")/$1+1/e' AndroidManifest.xml" />
|
|
</exec>
|
|
</target>
|
|
|
|
<!-- rules -->
|
|
<target name="bump-version" depends="set-version,commit-version,git-tag,git-svn-tag">
|
|
<echo>Bumping K-9 to ${version-name}</echo>
|
|
</target>
|
|
|
|
<target name="git-tag">
|
|
<exec executable="git" failonerror="true">
|
|
<arg line="tag ${version-name}"/>
|
|
</exec>
|
|
</target>
|
|
<target name="git-svn-tag">
|
|
<exec executable="git" failonerror="true">
|
|
<arg line="svn tag ${version-name}"/>
|
|
</exec>
|
|
</target>
|
|
<target name="commit-version">
|
|
<exec executable="git" failonerror="true">
|
|
<arg line="commit -m'Bumped manifest to ${version.name}' AndroidManifest.xml"/>
|
|
</exec>
|
|
<exec executable="git" failonerror="true">
|
|
<arg line="svn dcommit"/>
|
|
</exec>
|
|
</target>
|
|
|
|
|
|
<!-- Create the output directories if they don't exist yet. -->
|
|
<target name="rclib" depends="compile">
|
|
<echo>Creating library ${rclib} for remote control
|
|
applications</echo>
|
|
|
|
<jar destfile="${rclib}" basedir="${out.classes.dir}" includes="${rcdir}" />
|
|
</target>
|
|
|
|
<target name="upload" depends="clean,get-version,release">
|
|
<echo>Uploading to Google Code using Google::Code::Upload</echo>
|
|
<exec executable="mv" failonerror="true">
|
|
<arg value="${out.release.file}" />
|
|
<arg value="bin/k9-${version-name}-release.apk" />
|
|
</exec>
|
|
<exec executable="googlecode_upload.pl" failonerror="true">
|
|
<arg value="--summary" />
|
|
<arg value="${ant.project.name} ${version-name}"/>
|
|
<arg value="--project" />
|
|
<arg value="k9mail"/>
|
|
<arg value="--user"/>
|
|
<arg value="${gcode-user}" />
|
|
<arg value="--pass"/>
|
|
<arg value="${gcode-pass}" />
|
|
<arg value="--labels"/>
|
|
<arg value="Type-Installer"/>
|
|
<arg value="bin/k9-${version-name}-release.apk" />
|
|
</exec>
|
|
</target>
|
|
|
|
<!-- Install the package on the default emulator -->
|
|
<target name="install" depends="debug">
|
|
<echo>Installing ${out-debug-package} onto default emulator...</echo>
|
|
<exec executable="${adb}" failonerror="true">
|
|
<arg value="install" />
|
|
<arg path="${out-debug-package}" />
|
|
</exec>
|
|
</target>
|
|
|
|
<!-- Compiles this project's .java files into .class files. -->
|
|
<target name="compile" depends="-resource-src, -aidl"
|
|
description="Compiles project's .java files into .class files">
|
|
<!-- If android rules are used for a test project, its classpath should include
|
|
tested project's location -->
|
|
<condition property="extensible.classpath"
|
|
value="${tested.project.absolute.dir}/bin/classes" else=".">
|
|
<isset property="tested.project.absolute.dir" />
|
|
</condition>
|
|
<javac encoding="ascii" target="1.5" debug="true" extdirs=""
|
|
destdir="${out.classes.absolute.dir}"
|
|
bootclasspathref="android.target.classpath"
|
|
verbose="${verbose}" classpath="${extensible.classpath}">
|
|
<src path="${source.absolute.dir}" />
|
|
<src path="${gen.absolute.dir}" />
|
|
<classpath>
|
|
<fileset dir="${external.libs.absolute.dir}" includes="*.jar" />
|
|
<fileset dir="compile-only-libs" includes="*.jar" />
|
|
</classpath>
|
|
</javac>
|
|
</target>
|
|
|
|
<target name="help">
|
|
<!-- displays starts at col 13
|
|
|13 80| -->
|
|
<echo>Android Ant Build. Available targets:</echo>
|
|
<echo> help: Displays this help.</echo>
|
|
<echo> debug: Builds the application and sign it with a debug key.</echo>
|
|
<echo> release: Builds the application. The generated apk file must be</echo>
|
|
<echo> signed before it is published.</echo>
|
|
<echo> install: Installs the debug package onto a running emulator or</echo>
|
|
<echo> device. This can only be used if the application has </echo>
|
|
<echo> not yet been installed.</echo>
|
|
<echo> reinstall: Installs the debug package on a running emulator or</echo>
|
|
<echo> device that already has the application.</echo>
|
|
<echo> The signatures must match.</echo>
|
|
<echo> uninstall: uninstall the application from a running emulator or</echo>
|
|
<echo> device.</echo>
|
|
<echo> bump-version: ant -Dversion-name=3.123</echo>
|
|
<echo> Bumps the project version to 3.123,tags and commits it</echo>
|
|
<echo> (Only works under git-svn)</echo>
|
|
</target>
|
|
|
|
</project>
|