mirror of https://github.com/tasks/tasks
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
197 lines
8.3 KiB
XML
197 lines
8.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project name="astrid" default="help">
|
|
|
|
<!-- The local.properties file is created and updated by the 'android' tool.
|
|
It contains 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 directory. Default is 'src'.
|
|
out.dir
|
|
the name of the output directory. 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" />
|
|
|
|
<!-- Required pre-setup import -->
|
|
<import file="${sdk.dir}/tools/ant/pre_setup.xml" />
|
|
|
|
<taskdef resource="net/sf/antcontrib/antlib.xml">
|
|
<classpath>
|
|
<pathelement location="antlib/ant-contrib-1.0b3.jar"/>
|
|
</classpath>
|
|
</taskdef>
|
|
|
|
<taskdef name="setup"
|
|
classname="com.android.ant.SetupTask"
|
|
classpathref="android.antlibs" />
|
|
|
|
<!-- Execute the Android Setup task that will setup some properties specific to the target,
|
|
and import the build rules files.
|
|
|
|
The rules file is imported from
|
|
<SDK>/platforms/<target_platform>/templates/android_rules.xml
|
|
|
|
To customize some build steps for your project:
|
|
- copy the content of the main node <project> from android_rules.xml
|
|
- paste it in this build.xml below the <setup /> task.
|
|
- disable the import by changing the setup task below to <setup import="false" />
|
|
|
|
This will ensure that the properties are setup correctly but that your customized
|
|
build steps are used.
|
|
-->
|
|
<setup />
|
|
|
|
<!-- pre-build steps -->
|
|
|
|
<target name="-pre-build" depends="clean, get-version, copy-sources, updatekeys, updatekeys-release, disable-market">
|
|
</target>
|
|
|
|
<target name="copy-sources">
|
|
<!-- amalgamate sources -->
|
|
<delete dir="${source.dir}" />
|
|
<mkdir dir="${source.dir}" />
|
|
<for list="${astrid.sources}" param="dir">
|
|
<sequential>
|
|
<copy todir="${source.dir}">
|
|
<fileset dir="@{dir}" />
|
|
</copy>
|
|
</sequential>
|
|
</for>
|
|
</target>
|
|
|
|
<target name="get-version">
|
|
<loadfile property="manifest" srcFile="AndroidManifest.xml" />
|
|
<propertyregex property="manifest.version.code"
|
|
input="${manifest}"
|
|
regexp="android:versionCode="(.*)""
|
|
select="\1" />
|
|
<propertyregex property="manifest.version.name"
|
|
input="${manifest}"
|
|
regexp="android:versionName="([^" ]*)"
|
|
select="\1" />
|
|
<echo message="Astrid: version ${manifest.version.code}, named ${manifest.version.name}" />
|
|
</target>
|
|
|
|
<target name="warnings">
|
|
<echo>====== context classes without setContext =====</echo>
|
|
<exec executable="sh">
|
|
<arg value="-c" />
|
|
<arg value="cd ${source.dir}; grep -L '\(setContext\|DependencyInjectionService\)' `grep -l -R '^\(public\).*class .* \(Activity\|Service\|BroadcastReceiver\)' .` | grep -v '.*\(CriteriaExposer\|DetailExposer\|Plugin\).java$' | grep -v rmilk" />
|
|
</exec>
|
|
<echo />
|
|
<echo>====== entry points without initializing Astrid DI =====</echo>
|
|
<exec executable="sh">
|
|
<arg value="-c" />
|
|
<arg value="cd ${source.dir}; grep -L '\(AstridDependencyInjector\)' $(grep -l '@Autowired' `grep -l -R '^\(public\).*class .* \(Activity\|Service\|BroadcastReceiver\)' .`) | grep -v rmilk" />
|
|
</exec>
|
|
</target>
|
|
|
|
<target name="debug" depends="android_rules.debug"
|
|
description="Builds the application and signs it with a debug key.">
|
|
<delete file="${out.debug.unaligned.file}" />
|
|
</target>
|
|
|
|
<!-- post build: rename apk -->
|
|
<target name="release" depends="android_rules.release">
|
|
<mkdir dir="../release" />
|
|
<property name="out.final.package"
|
|
location="../release/${ant.project.name}-${manifest.version.code}-${manifest.version.name}-release.apk" />
|
|
<copy file="${out.release.file}"
|
|
tofile="${out.final.package}" />
|
|
|
|
<echo>Final Release Package: ${out.final.package}</echo>
|
|
</target>
|
|
|
|
<!-- update api keys -->
|
|
<target name="updatekeys" description="update api key values">
|
|
<property file="${apikey.keyfile}" />
|
|
<replaceregexp file="${source.dir}/com/todoroo/astrid/actfm/sync/ActFmInvoker.java"
|
|
match="URL = .*"
|
|
replace="URL = "${apikey.actfm.url}";" />
|
|
<replaceregexp file="${source.dir}/com/todoroo/astrid/actfm/sync/ActFmInvoker.java"
|
|
match="APP_ID = .*"
|
|
replace="APP_ID = "${apikey.actfm.id}";" />
|
|
<replaceregexp file="${source.dir}/com/todoroo/astrid/actfm/sync/ActFmInvoker.java"
|
|
match="APP_SECRET = .*"
|
|
replace="APP_SECRET = "${apikey.actfm.secret}";" />
|
|
<replaceregexp file="${source.dir}/com/todoroo/astrid/gtasks/api/GtasksService.java"
|
|
match="API_KEY = .*"
|
|
replace="API_KEY = "${apikey.gtasks}";" />
|
|
</target>
|
|
|
|
<!-- update api keys that require release signing -->
|
|
<target name="updatekeys-release" if="build.mode.release"
|
|
description="update release-only api key values">
|
|
<property file="${apikey.keyfile}" />
|
|
<replaceregexp file="${source.dir}/com/todoroo/astrid/actfm/ActFmLoginActivity.java"
|
|
match="APP_ID = .*"
|
|
replace="APP_ID = "${apikey.facebook.id}";" />
|
|
</target>
|
|
|
|
<!-- jar signing -->
|
|
<target name="-release-prompt-for-password" description="override to set signature">
|
|
<property file="${signjar.passfile}" /> <echo message="${signjar.passfile}" />
|
|
<property name="key.alias" value="${signjar.keyalias}" />
|
|
<property name="key.store" value="${signjar.keystore}" />
|
|
<property name="key.alias.password" value="${signjar.password}" />
|
|
<property name="key.store.password" value="${signjar.password}" />
|
|
<property name="key.alias" value="${signjar.keyalias}" />
|
|
<property name="has.keystore" value="true" />
|
|
</target>
|
|
|
|
<target name="disable-market" if="custom.market.disabled">
|
|
<echo message="Disabling android market links" />
|
|
<replace token="market://" value="disabled://"
|
|
dir="${source.dir}" />
|
|
<replaceregexp file="${source.dir}/com/todoroo/astrid/utility/Constants.java"
|
|
match="(MARKET_DISABLED.*=).*"
|
|
replace="\1 true;" />
|
|
</target>
|
|
|
|
<target name="obfuscate">
|
|
<property name="proguard.enabled" value="true" />
|
|
<antcall target="-obfuscate" />
|
|
</target>
|
|
|
|
<!-- build custom release package with updated version name -->
|
|
<target name="release-custom">
|
|
<fail message="need to set custom.version.name">
|
|
<condition>
|
|
<not>
|
|
<isset property="custom.version.name" />
|
|
</not>
|
|
</condition>
|
|
</fail>
|
|
<copy file="AndroidManifest.xml" tofile="AndroidManifest_old.xml" />
|
|
<replaceregexp file="AndroidManifest.xml"
|
|
match="(android:versionName="[^" ]*)[^"]*"
|
|
replace="\1${custom.version.name}" />
|
|
<antcall target="release" />
|
|
|
|
<move file="AndroidManifest_old.xml" tofile="AndroidManifest.xml" />
|
|
</target>
|
|
|
|
</project>
|