summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlado <herrlado@gmail.com>2011-11-01 17:17:44 +0100
committerlado <herrlado@gmail.com>2011-11-01 17:17:44 +0100
commit3f813279a6927bbe10dc771a8fa448a525d0bcba (patch)
tree887d678b63680416705bf78398ccfd860c47f6fe
parent10815f40ca8ccb6e85f093e216116ef577a6845f (diff)
downloadvdr-manager-3f813279a6927bbe10dc771a8fa448a525d0bcba.tar.gz
vdr-manager-3f813279a6927bbe10dc771a8fa448a525d0bcba.tar.bz2
snapshot target
-rw-r--r--vdrmanager/build.xml104
1 files changed, 103 insertions, 1 deletions
diff --git a/vdrmanager/build.xml b/vdrmanager/build.xml
index 905ccef..7793805 100644
--- a/vdrmanager/build.xml
+++ b/vdrmanager/build.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project name="VdrManagerActivity" default="help">
+<project name="VDR-Manager" 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 into
@@ -81,5 +81,107 @@
-->
<!-- version-tag: 1 -->
<import file="${sdk.dir}/tools/ant/build.xml" />
+ <tstamp>
+ <format property="builddatetime" pattern="dd-MM-yyyy_HH.mm"/>
+ </tstamp>
+ <xmlproperty file="AndroidManifest.xml" prefix="mymanifest" collapseAttributes="true"/>
+
+ <target name="-set-snapshot-mode" depends="-set-mode-check">
+ <property name="out.packaged.file" location="${out.absolute.dir}/${ant.project.name}-release-unsigned.apk" />
+ <property name="out.final.file" location="${out.absolute.dir}/${ant.project.name}-${mymanifest.manifest.android:versionName}-SNAPSHOT-${builddatetime}.apk" />
+
+ <!-- record the current build target -->
+ <property name="build.target" value="release" />
+
+ <property name="build.is.instrumented" value="false" />
+
+ <!-- release mode is only valid if the manifest does not explicitly
+ set debuggable to true. default is false. -->
+ <xpath input="AndroidManifest.xml" expression="/manifest/application/@android:debuggable"
+ output="build.is.packaging.debug" default="false"/>
+
+ <!-- signing mode: release -->
+ <property name="build.is.signing.debug" value="false" />
+
+ <if condition="${build.is.packaging.debug}">
+ <then>
+ <echo>*************************************************</echo>
+ <echo>**** Android Manifest has debuggable=true ****</echo>
+ <echo>**** Doing DEBUG packaging with RELEASE keys ****</echo>
+ <echo>*************************************************</echo>
+ </then>
+ <else>
+ <!-- property only set in release mode.
+ Useful for if/unless attributes in target node
+ when using Ant before 1.8 -->
+ <property name="build.is.mode.release" value="true"/>
+ </else>
+ </if>
+ </target>
+
+
+ <target name="-set-release-mode" depends="-set-mode-check">
+ <property name="out.packaged.file" location="${out.absolute.dir}/${ant.project.name}-release-unsigned.apk" />
+ <property name="out.final.file" location="${out.absolute.dir}/${ant.project.name}-${mymanifest.manifest.android:versionName}.apk" />
+
+ <!-- record the current build target -->
+ <property name="build.target" value="release" />
+
+ <property name="build.is.instrumented" value="false" />
+
+ <!-- release mode is only valid if the manifest does not explicitly
+ set debuggable to true. default is false. -->
+ <xpath input="AndroidManifest.xml" expression="/manifest/application/@android:debuggable"
+ output="build.is.packaging.debug" default="false"/>
+
+ <!-- signing mode: release -->
+ <property name="build.is.signing.debug" value="false" />
+
+ <if condition="${build.is.packaging.debug}">
+ <then>
+ <echo>*************************************************</echo>
+ <echo>**** Android Manifest has debuggable=true ****</echo>
+ <echo>**** Doing DEBUG packaging with RELEASE keys ****</echo>
+ <echo>*************************************************</echo>
+ </then>
+ <else>
+ <!-- property only set in release mode.
+ Useful for if/unless attributes in target node
+ when using Ant before 1.8 -->
+ <property name="build.is.mode.release" value="true"/>
+ </else>
+ </if>
+ </target>
+
+ <target name="snapshot"
+ depends="-set-nightly-mode, -release-obfuscation-check, -package, -release-prompt-for-password, -release-nosign"
+ if="has.keystore"
+ description="Builds the application. The generated apk file must be signed before
+ it is published.">
+
+ <!-- only create apk if *not* a library project -->
+ <do-only-if-not-library elseText="Library project: do not create apk..." >
+ <sequential>
+ <property name="out.unaligned.file" location="${out.absolute.dir}/${ant.project.name}-release-unaligned.apk" />
+
+ <!-- Signs the APK -->
+ <echo>Signing final apk...</echo>
+ <signjar
+ jar="${out.packaged.file}"
+ signedjar="${out.unaligned.file}"
+ keystore="${key.store}"
+ storepass="${key.store.password}"
+ alias="${key.alias}"
+ keypass="${key.alias.password}"
+ verbose="${verbose}" />
+
+ <!-- Zip aligns the APK -->
+ <zipalign-helper in.package="${out.unaligned.file}"
+ out.package="${out.final.file}" />
+ <echo>Release Package: ${out.final.file}</echo>
+ </sequential>
+ </do-only-if-not-library>
+ <record-build-info />
+ </target>
</project>