From a649d434c74baa5228b9d2c1849853022fd59da3 Mon Sep 17 00:00:00 2001 From: sponge <sponge@mail.i2p> Date: Sun, 15 Jul 2012 08:42:47 +0000 Subject: [PATCH] Finish fixing ant issues, needs work yet. --- AndroidManifest.xml | 4 +- custom_rules.xml | 121 ++++++++++++++++++++++++++------------------ 2 files changed, 74 insertions(+), 51 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index ad6ca25b2..4c19e48d2 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.i2p.android.router" - android.versionCode="4718912" - android.versionName="0.9.0-20_b1-API8" + android.versionCode="4718923" + android.versionName="0.9.0-20_b28-API8" android:installLocation="preferExternal" > <uses-permission android:name="android.permission.INTERNET" /> diff --git a/custom_rules.xml b/custom_rules.xml index 2abb17cae..846bbd299 100644 --- a/custom_rules.xml +++ b/custom_rules.xml @@ -1,14 +1,56 @@ <?xml version="1.0" encoding="UTF-8"?> <project name="imported"> + + <!-- override with i2psrc=path/to/source in local.properties --> + <property name="i2psrc" value="../i2p.i2p" /> + <property name="i2pbase" location="${i2psrc}" /> + <available file="${i2psrc}" property="i2p.present" /> + <fail message="I2P source directory ${i2psrc} was not found. Install it there or set i2psrc=/path/to/source in local.properties" > + <condition> + <not> + <isset property="i2p.present" /> + </not> + </condition> + </fail> + <echo message="Using I2P source at ${i2pbase}" /> + + <!-- + TO-DO move this to js so that it is cross-platform, + and so it does not actually store the version name or code. + In order to do that, we need a different temporary properties file. + To increment, we would copy this tempoary one to version.properties. + The MANIFEST would be also updated in incrementBuild. + + -*- Sponge + --> + + <buildnumber file="scripts/build.number" /> + <exec executable="sh" osfamily="unix" failonerror="true"> + <arg value="-c" /> + <arg value="scripts/setversion.sh ${i2pbase}" /> + </exec> + <!-- this loads my.version.code and my.version.name --> + <property file="scripts/version.properties" /> + <property name="version.code" value="${my.version.code}" /> + <property name="version.name" value="${my.version.name}" /> + <echo message="version.code '${version.code}', 'version.name '${version.name}', '${my.version.name}'" /> + + <!-- ================================================================================ New I2P rules ================================================================================ --> + <!-- TO-DO make this actually store the increment. + All operations increment, this is not what we want. + --> + + <target name="incrementBuild" > + </target> <!-- overrides of those in main_rules.xml --> - <target name="-pre-build" depends="findI2PSource, copy-i2p-resources, incrementBuild" > + <target name="-pre-build" depends="copy-i2p-resources, incrementBuild" > <!-- aapt messes up when resources are added or deleted, just build every time --> <delete dir="${gen.absolute.dir}/net" verbose="${verbose}" /> <!-- screw it, do the classes too, until I add the depend class --> @@ -19,25 +61,23 @@ <target name="-post-compile" depends="hackcleanup, jbigi" /> + <!-- + Creates the output directories if they don't exist yet. + --> + <target name="-dirs"> + <echo>Creating output directories if needed...</echo> + <mkdir dir="${resource.absolute.dir}" /> + <mkdir dir="${external.libs.absolute.dir}" /> + <mkdir dir="${gen.absolute.dir}" /> + <mkdir dir="${out.absolute.dir}" /> + <mkdir dir="${out.classes.absolute.dir}" /> + </target> + <!-- new rules --> - <target name="findI2PSource" > - <!-- override with i2psrc=path/to/source in local.properties --> - <property name="i2psrc" value="../i2p.i2p" /> - <property name="i2pbase" location="${i2psrc}" /> - <available file="${i2psrc}" property="i2p.present" /> - <fail message="I2P source directory ${i2psrc} was not found. Install it there or set i2psrc=/path/to/source in local.properties" > - <condition> - <not> - <isset property="i2p.present" /> - </not> - </condition> - </fail> - <echo message="Using I2P source at ${i2pbase}" /> - </target> - <!-- <target name="buildrouter" depends="findI2PSource, -dirs" > --> - <target name="buildrouter" depends="findI2PSource" > + + <target name="buildrouter" depends="-dirs" > <!-- build router and core --> <ant dir="${i2pbase}" > <target name="buildRouter" /> @@ -93,8 +133,7 @@ </target> <!-- some resources --> -<!-- <target name="copy-i2p-resources" depends="findI2PSource, -dirs" > --> - <target name="copy-i2p-resources" depends="findI2PSource" > + <target name="copy-i2p-resources" depends="-dirs" > <copy file="LICENSE.txt" tofile="res/raw/license_app_txt" /> <copy file="licenses/LICENSE-Apache2.0.txt" tofile="res/raw/license_apache20_txt" /> <copy file="${i2pbase}/installer/resources/themes/console/images/i2plogo.png" todir="res/drawable/" /> @@ -121,23 +160,15 @@ <delete file="${jar.libs.dir}/crypto.jar" /> </target> - <target name="jbigi" depends="findI2PSource" > + <target name="jbigi" > <exec executable="sh" osfamily="unix" failonerror="true"> <arg value="-c" /> <arg value="jni/build.sh ${i2pbase}" /> </exec> - <copy file="jni/libjbigi.so" todir="${native.libs.dir}/armeabi" /> + <copy file="jni/libjbigi.so" todir="${native.libs.absolute.dir}/armeabi" /> </target> - <target name="incrementBuild" depends="findI2PSource" > - <buildnumber file="scripts/build.number" /> - <exec executable="sh" osfamily="unix" failonerror="true"> - <arg value="-c" /> - <arg value="scripts/setversion.sh ${i2pbase}" /> - </exec> - <!-- this loads my.version.code and my.version.name --> - <property file="scripts/version.properties" /> - </target> + <!-- install now does both --> <target name="reinstall" depends="install" /> @@ -262,34 +293,26 @@ <echo message="Release file copied to I2PAndroid-${my.version.name}.apk" /> </target> - <!-- - ================================================================================ - From here down copied from SDK tools/ant/main_rules.xml from Tools version 11 - and then modified - ================================================================================ - --> - - <!-- not necessary to copy if setup import="true" --> - - <!-- override this because the ant task com.android.ant.AaptExecLoopTask has issues: a) it uses version.code which main_rules sets to "" and b) it can't set versionName via the aapt task, have to use the aapt command line + We can't use this in the newer SDK, and since properties are + immutable, we don't need to do this. The trick is to call the target earlier, + _BEFORE_ the template is loaded. --> - <!-- Puts the project's resources into the output package file - This actually can create multiple resource package in case - Some custom apk with specific configuration have been - declared in default.properties. - --> + <!-- + <target name="-package-resources"> <echo>Packaging resources</echo> + <property name="dash" value="-" /> + <property name="dashdash" value="${dash}${dash}" /> <exec executable="${aapt}" failonerror="true" > <arg value="package" /> - <arg value="--version-code" /> + <arg value="${dashdash}version-code" /> <arg value="${my.version.code}" /> - <arg value="--version-name" /> + <arg value="${dashdash}version-name" /> <arg value="${my.version.name}" /> <arg value="-f" /> <arg value="-m" /> @@ -303,7 +326,7 @@ <arg value="${gen.absolute.dir}" /> <arg value="-F" /> <arg value="${out.absolute.dir}/${resource.package.file.name}" /> - </exec> + </exec> </target> - + --> </project> -- GitLab