|
|
|
<?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" />
|
|
|
|
|
|
|
|
|
|
|
|
<taskdef resource="net/sf/antcontrib/antlib.xml">
|
|
|
|
<classpath>
|
|
|
|
<pathelement location="antlib/ant-contrib-1.0b3.jar"/>
|
|
|
|
</classpath>
|
|
|
|
</taskdef>
|
|
|
|
|
|
|
|
<!-- 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>
|
|
|
|
|
|
|
|
<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 />
|
|
|
|
|
|
|
|
<!-- 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 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>
|
|
|
|
|
|
|
|
<!-- check for files with warnings -->
|
|
|
|
<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>
|
|
|
|
|
|
|
|
<!-- post build: rename apk -->
|
|
|
|
<target name="release" depends="clean, get-version, warnings, android_rules.release">
|
|
|
|
<mkdir dir="../release" />
|
|
|
|
<property name="out.final.package"
|
|
|
|
location="../release/${ant.project.name}-${manifest.version.code}-${manifest.version.name}-release.apk" />
|
|
|
|
<antcall target="signjar">
|
|
|
|
<param name="source"
|
|
|
|
value="${out.absolute.dir}/${ant.project.name}-unsigned.apk" />
|
|
|
|
<param name="dest"
|
|
|
|
value="${out.final.package}" />
|
|
|
|
</antcall>
|
|
|
|
|
|
|
|
<echo>Final Release Package: ${out.final.package}</echo>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- jar signing -->
|
|
|
|
<target name="signjar" description="signs the jar">
|
|
|
|
<fail unless="source" message="need {source} to sign (jar base name)" />
|
|
|
|
<property file="${signjar.passfile}" /> <echo message="${signjar.passfile}" />
|
|
|
|
<signjar alias="${signjar.keyalias}" keystore="${signjar.keystore}"
|
|
|
|
storepass="${signjar.password}" jar="${source}"
|
|
|
|
signedjar="${source}-unaligned" />
|
|
|
|
<exec executable="${sdk.dir}/tools/zipalign" failonerror="true">
|
|
|
|
<arg value="-f" />
|
|
|
|
<arg value="4" />
|
|
|
|
<arg value="${source}-unaligned" />
|
|
|
|
<arg value="${dest}" />
|
|
|
|
</exec>
|
|
|
|
</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>
|