diff options
Diffstat (limited to 'build.xml')
-rw-r--r-- | build.xml | 68 |
1 files changed, 62 insertions, 6 deletions
@@ -12,9 +12,44 @@ <property name="jsrc" location="${src}/jvm"/> <property name="cljsrc" location="${src}/clj"/> <property name="build" location="classes"/> - <property name="clojure_jar" location="clojure.jar"/> - <property name="slim_jar" location="clojure-slim.jar"/> - <property name="src_jar" location="clojure-sources.jar"/> + + <!-- version related properties --> + <property file="${cljsrc}/clojure/version.properties"/> + <!-- ensures all version properties are present --> + <fail unless="clojure.version.major"/> + <fail unless="clojure.version.minor"/> + <fail unless="clojure.version.interim"/> + + <condition property="clojure.version.incremental.label" + value=".${clojure.version.incremental}" + else=""> + <length string="${clojure.version.incremental}" when="greater" length="0" /> + </condition> + <condition property="clojure.version.qualifier.label" + value="-${clojure.version.qualifier}" + else=""> + <length string="${clojure.version.qualifier}" when="greater" length="0" /> + </condition> + <condition property="clojure.version.interim.label" + value="-SNAPSHOT" + else=""> + <!-- We place -SNAPSHOT whenever interim is not set to false, not only + if interim is set to true (this is less typo prone in the worst case --> + <not><equals arg1="${clojure.version.interim}" arg2="false" trim="true"/></not> + </condition> + + <property name="clojure.version.label" + value="${clojure.version.major}.${clojure.version.minor}${clojure.version.incremental.label}${clojure.version.qualifier.label}${clojure.version.interim.label}"/> + + <!-- general filterset for use when clojure version must be copied --> + <filterset id="clojure-version-filterset"> + <filter token="clojure-version" value="${clojure.version.label}"/> + </filterset> + + <property name="clojure_jar" location="clojure-${clojure.version.label}.jar"/> + <property name="slim_jar" location="clojure-slim-${clojure.version.label}.jar"/> + <property name="src_jar" location="clojure-sources-${clojure.version.label}.jar"/> + <!-- These make sense for building on tapestry.formos.com --> @@ -24,6 +59,17 @@ <target name="init" depends="clean"> <tstamp/> <mkdir dir="${build}"/> + <antcall target="init-version"/> + </target> + + <target name="init-version"> + <copy file="pom-template.xml" + tofile="pom.xml"> + <filterset refid="clojure-version-filterset"/> + </copy> + <!--prevents users from modifying accidentally the generated pom.xml + works only on linux.--> + <chmod file="pom.xml" perm="ugo-w"/> </target> <target name="compile-java" depends="init" @@ -49,7 +95,10 @@ <target name="clojure" depends="compile-clojure" description="Create clojure jar file."> <jar jarfile="${clojure_jar}" basedir="${build}"> - <fileset dir="${cljsrc}" includes="**/*.clj"/> + <fileset dir="${cljsrc}"> + <include name="**/*.clj"/> + <include name="clojure/version.properties"/> + </fileset> <manifest> <attribute name="Main-Class" value="clojure.main"/> <attribute name="Class-Path" value="."/> @@ -63,7 +112,10 @@ <fileset dir="${build}" includes="clojure/asm/**"/> <fileset dir="${build}" includes="clojure/lang/**"/> <fileset dir="${build}" includes="clojure/main.class"/> - <fileset dir="${cljsrc}" includes="**/*.clj"/> + <fileset dir="${cljsrc}"> + <include name="**/*.clj"/> + <include name="clojure/version.properties"/> + </fileset> <manifest> <attribute name="Main-Class" value="clojure.main"/> <attribute name="Class-Path" value="."/> @@ -73,7 +125,10 @@ <target name="clojure-sources" depends="init" description="Create a JAR of Java sources."> - <jar jarfile="${src_jar}" basedir="${jsrc}"/> + <jar jarfile="${src_jar}" basedir="${jsrc}" includes="**/*"> + <fileset dir="${cljsrc}" + includes="clojure/version.properties"/> + </jar> </target> <target name="jar" depends="clojure"/> @@ -83,6 +138,7 @@ <target name="clean" description="Remove autogenerated files and directories."> <delete dir="${build}"/> + <delete file="pom.xml"/> </target> <target name="-setup-maven"> |