Permalink
Browse files

add support for building with ant

moved commons-compress from lib/ to libs/
removed scripts no longer needed by new install process
Couchbase.zip is generated by running 'ant dist'

Change-Id: If89ef94781444d05d3133a602c846e1b53f735d2
Reviewed-on: http://review.couchbase.org/9279
Reviewed-by: Marty Schoch <marty.schoch@gmail.com>
Reviewed-by: Chris Anderson <jchris@couchbase.com>
Tested-by: Chris Anderson <jchris@couchbase.com>
  • Loading branch information...
1 parent b7a5579 commit bb98bdef428edd53c43de21f37978fcc0f240055 @mschoch mschoch committed with Chris Anderson Aug 29, 2011
View
@@ -3,6 +3,6 @@
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
- <classpathentry kind="lib" path="lib/commons-compress-1.0.jar"/>
+ <classpathentry kind="lib" path="libs/commons-compress-1.0.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
View
@@ -1,2 +1,4 @@
bin
-gen
+gen
+local.properties
+.DS_Store
View
109 build.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="." 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
+ 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:
+
+ 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 into 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 into Version Control Systems. -->
+ <property file="default.properties" />
+
+
+ <!-- Required pre-setup import -->
+ <import file="${sdk.dir}/tools/ant/pre_setup.xml" />
+
+
+<!-- extension targets. Uncomment the ones where you want to do custom work
+ in between standard targets -->
+<!--
+ <target name="-pre-build">
+ </target>
+ <target name="-pre-compile">
+ </target>
+
+ [This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir}]
+ <target name="-post-compile">
+ </target>
+-->
+
+ <!-- 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>/tools/ant/
+ Depending on the project type it can be either:
+ - main_rules.xml
+ - lib_rules.xml
+ - test_rules.xml
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <setup> task.
+ - customize it to your needs.
+ - Customize the whole script.
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, *after* the <setup> task
+ - disable the import of the rules by changing the setup task
+ below to <setup import="false" />.
+ - customize to your needs.
+ -->
+ <setup />
+
+ <!-- added by marty, per this discussion http://code.google.com/p/android/issues/detail?id=13024 -->
+ <path id="android.libraries.src"><path refid="project.libraries.src" /></path>
+ <path id="android.libraries.jars"><path refid="project.libraries.jars" /></path>
+
+ <target name="couchbase-jar" depends="compile">
+ <jar destfile="bin/couchbase.jar" basedir="bin/classes" excludes="**/R*"/>
+ </target>
+
+ <target name="dist" depends="couchbase-jar">
+ <zip destfile="bin/Couchbase.zip">
+
+ <mappedresources>
+ <fileset dir="${basedir}">
+ <include name="assets/**/*"/>
+ <include name="libs/**/*"/>
+ <include name="script/**/*"/>
+ </fileset>
+ <globmapper from="*" to="Couchbase/*"/>
+ </mappedresources>
+
+ <mappedresources>
+ <fileset dir="${basedir}/bin">
+ <include name="couchbase.jar"/>
+ </fileset>
+ <globmapper from="*" to="Couchbase/libs/*"/>
+ </mappedresources>
+
+ </zip>
+ </target>
+
+</project>
File renamed without changes.
View
@@ -0,0 +1,40 @@
+-optimizationpasses 5
+-dontusemixedcaseclassnames
+-dontskipnonpubliclibraryclasses
+-dontpreverify
+-verbose
+-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
+
+-keep public class * extends android.app.Activity
+-keep public class * extends android.app.Application
+-keep public class * extends android.app.Service
+-keep public class * extends android.content.BroadcastReceiver
+-keep public class * extends android.content.ContentProvider
+-keep public class * extends android.app.backup.BackupAgentHelper
+-keep public class * extends android.preference.Preference
+-keep public class com.android.vending.licensing.ILicensingService
+
+-keepclasseswithmembernames class * {
+ native <methods>;
+}
+
+-keepclasseswithmembers class * {
+ public <init>(android.content.Context, android.util.AttributeSet);
+}
+
+-keepclasseswithmembers class * {
+ public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+
+-keepclassmembers class * extends android.app.Activity {
+ public void *(android.view.View);
+}
+
+-keepclassmembers enum * {
+ public static **[] values();
+ public static ** valueOf(java.lang.String);
+}
+
+-keep class * implements android.os.Parcelable {
+ public static final android.os.Parcelable$Creator *;
+}
@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="add-couchbase-to-project" default="install">
-
- <property file="local.properties"/>
-
- <taskdef name="showform" classname="com.couchbase.ShowForm" classpath="couchbase-form.jar"/>
-
- <condition property="is.windows">
- <os family="windows"/>
- </condition>
-
- <condition property="is.unix">
- <os family="unix"/>
- </condition>
-
- <target name="install" depends="_get-inputs, _validate-project-path, _get-project-name, _real-install"/>
-
- <target name="install-cmdline" depends="_get-android-sdk, _get-project-path, _validate-project-path, _get-project-name, _real-install"/>
-
- <target name="_check-android-sdk">
- <condition property="android-sdk-set">
- <isset property="sdk.dir"/>
- </condition>
- </target>
-
- <target name="_get-android-sdk" depends="_check-android-sdk" unless="sdk.dir">
- <input message="Android SDK Path" addproperty="sdk.dir"/>
- </target>
-
- <target name="_get-project-path">
- <input message="Project Path" addproperty="project.path"/>
- </target>
-
- <target name="_validate-project-path">
-
- <!-- debug only -->
- <exec executable="ls" outputproperty="ls.project.output">
- <arg value="-al"/>
- <arg value="${project.path}"/>
- </exec>
- <echo>Project directory contains:
- ${ls.project.output}
- </echo>
-
- <path id="debug.path">
- <fileset dir="${project.path}">
- <include name="**/*"/>
- </fileset>
- </path>
- <property name="debug.path.property" refid="debug.path"/>
- <echo>Project fileset contains:
- ${debug.path.property}
- </echo>
-
- <condition property="project.path.exists.as.directory">
- <available file="${project.path}" type="dir"/>
- </condition>
- <fail message="The project path ${project.path} does not exist." unless="project.path.exists.as.directory"/>
- <condition property="project.path.looks.like.project">
- <available file="${project.path}/.project" type="file"/>
- </condition>
- <fail message="The project path ${project.path} does not contain contain a .project file." unless="project.path.looks.like.project"/>
- </target>
-
- <!-- read the .project file to deterimine the project name -->
- <target name="_get-project-name">
- <xmlproperty file="${project.path}/.project"/>
- </target>
-
- <target name="_guess-android-sdk-dir">
- <exec executable="bash" outputproperty="sdk.dir.guess.full" failifexecutionfails="false" failonerror="false">
- <arg value="-l"/>
- <arg value="-c"/>
- <arg value="type -P android"/>
- </exec>
- <property name="sdk.dir.guess" location="${sdk.dir.guess.full}/../.."/>
- <echo>Guessing Android Dir: ${sdk.dir.guess}</echo>
- </target>
-
- <target name="_get-inputs">
-
- <showform/>
- <echo>Android SDK is ${sdk.dir}</echo>
- <echo>Project Path is ${project.path}</echo>
-
- </target>
-
- <target name="do-windows" if="is.windows">
- <echo>Copying ${user.dir}/couchbase-build.xml to ${project.path}/couchbase-build.xml</echo>
- <copy file="couchbase-build.xml" tofile="${project.path}/couchbase-build.xml" overwrite="true"></copy>
- </target>
-
- <target name="do-unix" if="is.unix">
- <echo>Symlinking ${project.path}/couchbase-build.xml to ${user.dir}/couchbase-build.xml</echo>
- <symlink link="${project.path}/couchbase-build.xml" resource="${user.dir}/couchbase-build.xml" overwrite="true" />
- </target>
-
- <target name="_real-install" depends="_get-android-sdk, _get-project-path, _get-project-name, do-windows, do-unix">
-
- <echo>Android SDK: ${sdk.dir}</echo>
- <echo>Project Path: ${project.path}</echo>
- <echo>Project Name: ${projectDescription.name}</echo>
-
- <property name="android.couchbase.dir" location=".."/>
-
- <!-- copy build.properties replacing values in template -->
- <copy file="build.properties.template" tofile="${project.path}/build.properties">
- <filterset>
- <filter token="SDK.DIR" value="${sdk.dir}"/>
- <filter token="ANDROID.COUCHBASE.DIR" value="${android.couchbase.dir}"/>
- </filterset>
- </copy>
-
- <!-- make external tool builders dir -->
- <mkdir dir="${project.path}/.externalToolBuilders/"/>
-
- <!-- copy builder launch configuration replacing values in template -->
- <copy file="CouchbaseBuilder.launch.template" tofile="${project.path}/.externalToolBuilders/CouchbaseBuilder.launch">
- <filterset>
- <filter token="PROJECT.NAME" value="${projectDescription.name}"/>
- </filterset>
- </copy>
-
- <!-- backup the .project file -->
- <copy file="${project.path}/.project" tofile="${project.path}/.project.orig"/>
-
- <!-- update the .project file to reference Couchbase builder -->
- <xslt style="project.xsl" in="${project.path}/.project.orig" out="${project.path}/.project"></xslt>
-
- <!-- invoke ant on couchbase-build.xml in the new project -->
- <ant antfile="${project.path}/couchbase-build.xml" target="all" dir="${project.path}"/>
-
- </target>
-
-</project>
@@ -1,2 +0,0 @@
-sdk.dir=@SDK.DIR@
-android.couchbase.dir=@ANDROID.COUCHBASE.DIR@
@@ -11,7 +11,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="classpath">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
- <classpathentry kind="lib" path="/Android-Couchbase/lib/commons-compress-1.0.jar"/>
+ <classpathentry kind="lib" path="libs/commons-compress-1.0.jar"/>
</xsl:copy>
</xsl:template>
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="classpath">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ <classpathentry kind="lib" path="libs/couchbase.jar"/>
+ </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
Oops, something went wrong.

0 comments on commit bb98bde

Please sign in to comment.