Created
August 16, 2011 19:03
-
-
Save mschoch/1149866 to your computer and use it in GitHub Desktop.
An Ant build script to assist in adding Mobile Couchbase to your Android project
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<project name="couchbase-build" default="help"> | |
<property file="build.properties" /> | |
<target name="help"> | |
<echo> | |
To use this script, please set the property android.couchbase.dir in your build.properties file to | |
point to the location you installed Android-Couchbase. | |
The following targets are available: | |
add-couchbase-android-library-reference - Check/Add requried Android-Couchbase library reference | |
update-couchbase-android-assets - Check/Update required Android-Couchbase assets | |
check-manifest-permissions - Check/Suggest required permissions in AndroidManifest.xml | |
suggest-manifest-service - Check/Suggest required service definition in AndroidManifest.xml | |
all - Run all checks | |
</echo> | |
</target> | |
<target name="all" depends="add-couchbase-android-library-reference,update-couchbase-android-assets,check-manifest-permissions,suggest-manifest-service"> | |
</target> | |
<!-- Library Reference --> | |
<target name="check-couchbase-android-library-reference" depends="_init"> | |
<condition property="contains.android.library.reference"> | |
<resourcecontains resource="default.properties" substring="Android-Couchbase"/> | |
</condition> | |
</target> | |
<target name="add-couchbase-android-library-reference" depends="check-couchbase-android-library-reference" unless="contains.android.library.reference"> | |
<exec executable="android" vmlauncher="false"> | |
<arg value="update"/> | |
<arg value="project"/> | |
<arg value="--path"/> | |
<arg value="${basedir}"/> | |
<arg value="--library"/> | |
<arg value="${android.couchbase.dir}"/> | |
</exec> | |
</target> | |
<!-- Assets --> | |
<target name="check-couchbase-android-assets" depends="_init"> | |
<uptodate property="android.couchbase.assets.uptodate"> | |
<srcfiles dir= "${android.couchbase.dir}/assets" includes="**/*"/> | |
<mapper type="glob" from="couchbase-*.tgz.jpg" | |
to="${basedir}/assets/couchbase-*.tgz.jpg"/> | |
</uptodate> | |
</target> | |
<target name="update-couchbase-android-assets" depends="check-couchbase-android-assets" unless="android.couchbase.assets.uptodate"> | |
<copy todir="${basedir}/assets/"> | |
<fileset dir="${android.couchbase.dir}/assets" includes="**/*.tgz.jpg"/> | |
<globmapper from="*" to="*"/> | |
</copy> | |
<echo>Your Android-Couchbase assets have been updated, you may remove the old assets.</echo> | |
</target> | |
<!-- Permissions --> | |
<target name="check-manifest-permissions" depends="suggest-manifest-permission.ACCESS_NETWORK_STATE,suggest-manifest-permission.INTERNET,suggest-manifest-permission.WRITE_EXTERNAL_STORAGE"> | |
</target> | |
<target name="suggest-manifest-permission.ACCESS_NETWORK_STATE" | |
depends="check-manifest-permission.ACCESS_NETWORK_STATE" | |
unless="permission.ACCESS_NETWORK_STATE"> | |
<echo>Your AndroidManifest.xml appears to be missing a required permission. Please add:</echo> | |
<echo/> | |
<echo><![CDATA[<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>]]></echo> | |
</target> | |
<target name="check-manifest-permission.ACCESS_NETWORK_STATE" depends="_init"> | |
<condition property="permission.ACCESS_NETWORK_STATE"> | |
<resourcecontains resource="AndroidManifest.xml" substring="android.permission.ACCESS_NETWORK_STATE"/> | |
</condition> | |
</target> | |
<target name="suggest-manifest-permission.INTERNET" | |
depends="check-manifest-permission.INTERNET" | |
unless="permission.INTERNET"> | |
<echo>Your AndroidManifest.xml appears to be missing a required permission. Please add:</echo> | |
<echo/> | |
<echo><![CDATA[<uses-permission android:name="android.permission.INTERNET"></uses-permission>]]></echo> | |
</target> | |
<target name="check-manifest-permission.INTERNET" depends="_init"> | |
<condition property="permission.INTERNET"> | |
<resourcecontains resource="AndroidManifest.xml" substring="android.permission.INTERNET"/> | |
</condition> | |
</target> | |
<target name="suggest-manifest-permission.WRITE_EXTERNAL_STORAGE" | |
depends="check-manifest-permission.WRITE_EXTERNAL_STORAGE" | |
unless="permission.WRITE_EXTERNAL_STORAGE"> | |
<echo>Your AndroidManifest.xml appears to be missing a required permission. Please add:</echo> | |
<echo/> | |
<echo><![CDATA[<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>]]></echo> | |
</target> | |
<target name="check-manifest-permission.WRITE_EXTERNAL_STORAGE"> | |
<condition property="permission.WRITE_EXTERNAL_STORAGE"> | |
<resourcecontains resource="AndroidManifest.xml" substring="android.permission.WRITE_EXTERNAL_STORAGE"/> | |
</condition> | |
</target> | |
<!-- Service --> | |
<target name="suggest-manifest-service" | |
depends="check-manifest-service" | |
unless="service.couch.exists"> | |
<echo>Your AndroidManifest.xml appears to be missing a required service. Please add:</echo> | |
<echo/> | |
<echo><![CDATA[<service android:name="com.couchbase.libcouch.CouchService" android:enabled="true" android:exported="false"></service>]]></echo> | |
</target> | |
<target name="check-manifest-service"> | |
<condition property="service.couch.exists"> | |
<resourcecontains resource="AndroidManifest.xml" substring="com.couchbase.libcouch.CouchService"/> | |
</condition> | |
</target> | |
<target name="_init"> | |
<!-- don't continue if it appears android.couchbase.dir is set incorrectly --> | |
<available file="${android.couchbase.dir}/src/com/couchbase/libcouch/CouchbaseEmbeddedServer.java" | |
property="android.couchbase.dir.valid"/> | |
<fail message="Property android.couchbase.dir does not appear to be set correctly." unless="android.couchbase.dir.valid"/> | |
</target> | |
</project> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment