Skip to content

Commit

Permalink
Build system updates
Browse files Browse the repository at this point in the history
  • Loading branch information
sattvik committed Feb 27, 2011
1 parent af2d610 commit 232e3a1
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 29 deletions.
109 changes: 80 additions & 29 deletions build.xml
Expand Up @@ -9,8 +9,13 @@
</description> </description>




<property file="local.properties"/>

<!-- General android properties -->
<property name="android.enabled" value="false"/>
<property name="android.version" value="7"/> <property name="android.version" value="7"/>
<property name="android.sdk.dir" location="/opt/android-sdk-update-manager"/> <property name="android.sdk.dir" location="/opt/android-sdk-update-manager"/>

<property name="android.platform-tools.dir" location="${android.sdk.dir}/platform-tools"/> <property name="android.platform-tools.dir" location="${android.sdk.dir}/platform-tools"/>
<property name="android.platform.dir" location="${android.sdk.dir}/platforms/android-${android.version}"/> <property name="android.platform.dir" location="${android.sdk.dir}/platforms/android-${android.version}"/>
<property name="android.jar" location="${android.platform.dir}/android.jar"/> <property name="android.jar" location="${android.platform.dir}/android.jar"/>
Expand Down Expand Up @@ -59,7 +64,6 @@
<not><equals arg1="${clojure.version.interim}" arg2="false" trim="true"/></not> <not><equals arg1="${clojure.version.interim}" arg2="false" trim="true"/></not>
</condition> </condition>



<property name="clojure.version.label" <property name="clojure.version.label"
value="${clojure.version.major}.${clojure.version.minor}${clojure.version.incremental.label}${clojure.version.qualifier.label}${clojure.version.interim.label}"/> value="${clojure.version.major}.${clojure.version.minor}${clojure.version.incremental.label}${clojure.version.qualifier.label}${clojure.version.interim.label}"/>


Expand All @@ -84,7 +88,7 @@
<property name="snapshot.repo.dir" location="/var/www/maven-snapshot-repository"/> <property name="snapshot.repo.dir" location="/var/www/maven-snapshot-repository"/>
<property name="stable.repo.dir" location="/var/www/maven-repository"/> <property name="stable.repo.dir" location="/var/www/maven-repository"/>


<target name="init"> <target name="init" depends="clean">
<tstamp/> <tstamp/>
<mkdir dir="${build}"/> <mkdir dir="${build}"/>
<antcall target="init-version"/> <antcall target="init-version"/>
Expand All @@ -100,33 +104,80 @@
<chmod file="pom.xml" perm="ugo-w"/> <chmod file="pom.xml" perm="ugo-w"/>
</target> </target>


<target name="dx-lite" depends="init"> <target name="-check-proguard" depends="init">
<jar jarfile="${dx-lite.jar}"> <available property="proguard.available"
<zipfileset src="${dx.jar}"> classpath="${proguard.jar}" classname="proguard.ProGuard"/>
<exclude name="junit/**"/>
<exclude name="META-INF/**"/>
<exclude name="**/_tests"/>
<exclude name="**/_tests/_*.class"/>
</zipfileset>
</jar>
</target> </target>


<target name="compile-java" depends="init,dx-lite" <target name="-shrink-dx-jar" depends="-check-proguard"
description="Compile Java sources."> if="proguard.available">
<javac srcdir="${jsrc}" destdir="${build}" includeJavaRuntime="yes" <echo>ProGuard available, shrinking to create dx-lite.jar</echo>
includeantruntime="false" <taskdef resource="proguard/ant/task.properties"
debug="true" target="1.5"> classpath="${proguard.jar}"/>
<classpath> <proguard>
<pathelement path="${dx-lite.jar}"/> -injars ${dx.jar}
<pathelement path="${android.jar}"/> -outjar ${dx-lite.jar}
</classpath> -libraryjars ${android.jar}
</javac> @dx-proguard.cfg
</proguard>
</target> </target>


<target name="-copy-dx-jar" depends="-check-proguard"
unless="proguard.available">
<echo>No ProGuard available, using simple copy to create dx-lite.jar</echo>
<jar jarfile="${dx-lite.jar}">
<zipfileset src="${dx.jar}">
<exclude name="junit/**"/>
<exclude name="META-INF/**"/>
<exclude name="**/_tests"/>
<exclude name="**/_tests/_*.class"/>
</zipfileset>
</jar>
</target>

<target name="dx-lite" depends="-shrink-dx-jar,-copy-dx-jar"
description="Creates a stripped version of dx.jar"/>

<macrodef name="compile-java">
<element name="compile-elements"
implicit="yes"
optional="yes"/>
<sequential>
<javac srcdir="${jsrc}"
destdir="${build}"
includeJavaRuntime="true"
includeAntRuntime="false"
debug="true"
source="1.5" target="1.5">
<compile-elements/>
</javac>
</sequential>
</macrodef>

<target name="-compile-java-nodalvik" depends="init">
<compile-java>
<include name="**/*.java"/>
<exclude name="**/Dalvik*.java"/>
</compile-java>
</target>

<target name="-compile-java-dalvik" depends="init,dx-lite" if="android.enabled">
<compile-java>
<include name="**/Dalvik*.java"/>
<classpath>
<pathelement path="${dx-lite.jar}"/>
<pathelement path="${android.jar}"/>
</classpath>
</compile-java>
</target>

<target name="compile-java" depends="-compile-java-nodalvik,-compile-java-dalvik"
description="Compile Java sources."/>

<target name="compile-clojure" depends="compile-java" <target name="compile-clojure" depends="compile-java"
description="Compile Clojure sources."> description="Compile Clojure sources.">
<java classname="clojure.lang.Compile" <java classname="clojure.lang.Compile"
classpath="${build}:${cljsrc}:${dx-lite.jar}:${android.jar}" classpath="${build}:${cljsrc}"
failonerror="true"> failonerror="true">
<sysproperty key="clojure.compile.path" value="${build}"/> <sysproperty key="clojure.compile.path" value="${build}"/>
<!-- <sysproperty key="clojure.compile.warn-on-reflection" value="true"/> --> <!-- <sysproperty key="clojure.compile.warn-on-reflection" value="true"/> -->
Expand Down Expand Up @@ -155,8 +206,7 @@
</target> </target>


<target name="compile-tests" <target name="compile-tests"
description="Compile the subset of tests that require compilation." description="Compile the subset of tests that require compilation.">
unless="${skiptests}">
<delete dir="${test-classes}"/> <delete dir="${test-classes}"/>
<mkdir dir="${test-classes}"/> <mkdir dir="${test-classes}"/>
<java classname="clojure.lang.Compile" <java classname="clojure.lang.Compile"
Expand All @@ -169,8 +219,7 @@
</target> </target>


<target name="test-only" <target name="test-only"
description="Run clojure tests without recompiling first" description="Run clojure tests without recompiling first">
unless="${skiptests}">
<java classname="clojure.main" failonerror="true"> <java classname="clojure.main" failonerror="true">
<classpath> <classpath>
<path location="${test-classes}"/> <path location="${test-classes}"/>
Expand Down Expand Up @@ -230,7 +279,7 @@
<copy file="${src_jar}" tofile="${src_noversion_jar}" /> <copy file="${src_jar}" tofile="${src_noversion_jar}" />
</target> </target>


<target name="clojure-jar-no-sources" depends="clojure-jar"> <target name="clojure-jar-no-sources" depends="clojure-jar" if="android.enabled">
<jar jarfile="${nosrc_jar}"> <jar jarfile="${nosrc_jar}">
<zipfileset src="${clojure_jar}"> <zipfileset src="${clojure_jar}">
<include name="**/*.class"/> <include name="**/*.class"/>
Expand All @@ -244,7 +293,7 @@
<copy file="${nosrc_jar}" tofile="${nosrc_noversion_jar}" /> <copy file="${nosrc_jar}" tofile="${nosrc_noversion_jar}" />
</target> </target>


<target name="dex" depends="clojure-jar-no-sources"> <target name="dex" depends="clojure-jar-no-sources" if="android.enabled">
<exec executable="${dx}" failonerror="true"> <exec executable="${dx}" failonerror="true">
<arg value="--dex"/> <arg value="--dex"/>
<arg value="--output=${dex.file}" /> <arg value="--output=${dex.file}" />
Expand All @@ -253,7 +302,7 @@
</exec> </exec>
</target> </target>


<target name="clojure-jar-dex" depends="dex"> <target name="clojure-jar-dex" depends="dex" if="android.enabled">
<jar jarfile="${dex_jar}"> <jar jarfile="${dex_jar}">
<fileset dir="${cljsrc}" includes="clojure/version.properties"/> <fileset dir="${cljsrc}" includes="clojure/version.properties"/>
<mappedresources> <mappedresources>
Expand All @@ -272,6 +321,8 @@
<delete dir="${test-classes}"/> <delete dir="${test-classes}"/>
<delete dir="${dist}"/> <delete dir="${dist}"/>
<delete file="pom.xml"/> <delete file="pom.xml"/>
<delete file="${dex.file}"/>
<delete file="${dx-lite.jar}"/>
<delete verbose="true"> <delete verbose="true">
<fileset dir="${basedir}" includes="*.jar"/> <fileset dir="${basedir}" includes="*.jar"/>
<fileset dir="${basedir}" includes="*.zip"/> <fileset dir="${basedir}" includes="*.zip"/>
Expand Down
19 changes: 19 additions & 0 deletions dx-proguard.cfg
@@ -0,0 +1,19 @@
-verbose
-dontoptimize
-dontobfuscate
-dontpreverify

-dontwarn junit.**
-dontnote junit.**

-keep public class com.android.dx.dex.file.DexFile {
public <init>();
public void add(...);
public void writeTo(...);
}

-keep public class com.android.dx.dex.cf.CfOptions

-keep public class com.android.dx.dex.cf.CfTranslator {
public static *** translate(...);
}
4 changes: 4 additions & 0 deletions local.properties.example
@@ -0,0 +1,4 @@
android.enabled=true
android.version=7
android.sdk.dir=/opt/android-sdk-update-manager
#proguard.jar=/path/to//proguard.jar

0 comments on commit 232e3a1

Please sign in to comment.