summaryrefslogtreecommitdiff
path: root/build.xml
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2013-10-18 17:50:33 -0700
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-10-21 22:18:02 -0700
commitc1055be507e42cc6cfe9e114a24a397d15030377 (patch)
treec52b1e70055719bb75900c2c2c144e3a26afa73f /build.xml
parenta51c7891a4de3d9dc42350ae35e2e8ecdffec683 (diff)
downloadscala-c1055be507e42cc6cfe9e114a24a397d15030377.tar.gz
scala-c1055be507e42cc6cfe9e114a24a397d15030377.tar.bz2
scala-c1055be507e42cc6cfe9e114a24a397d15030377.zip
Simplify packing, align maven-deploy and pack-maven.
Diffstat (limited to 'build.xml')
-rwxr-xr-xbuild.xml274
1 files changed, 101 insertions, 173 deletions
diff --git a/build.xml b/build.xml
index 471457be15..7c35fc0fe7 100755
--- a/build.xml
+++ b/build.xml
@@ -2056,67 +2056,48 @@ TODO:
MAIN DISTRIBUTION PACKAGING
============================================================================ -->
- <target name="pack-archives.start" depends="dist.done, docs.done">
+ <target name="pack-archives.done" depends="dist.done, docs.done">
+ <macrodef name="tarz">
+ <attribute name="name" description="The tar file name (without extension)."/>
+ <element name="file-sets" description="A sequence of fileset elements to be included in the tar balls." optional="false" implicit="true"/>
+
+ <sequential>
+ <tar destfile="@{name}.tar" compression="none" longfile="gnu">
+ <file-sets/>
+ </tar>
+ <gzip src="@{name}.tar" destfile="@{name}.tgz"/>
+ <if>
+ <not><equals arg1="${archives.skipxz}" arg2="true" /></not>
+ <then>
+ <exec executable="xz" failifexecutionfails="false">
+ <arg line="-k -9e -S .xz @{name}.tar"/>
+ </exec>
+ <move file="@{name}.tar.xz" tofile="@{name}.txz" failonerror="false"/>
+ </then>
+ </if>
+ <delete file="@{name}.tar" />
+ </sequential>
+ </macrodef>
+
<mkdir dir="${dists.dir}/archives"/>
- </target>
+ <property name="archive-base" value="${dists.dir}/archives/${dist.name}"/>
- <target name="pack-archives.tar" depends="pack-archives.start">
- <tar destfile="${dists.dir}/archives/${dist.name}.tar"
- compression="none" longfile="gnu">
+ <tarz name="${archive-base}">
<tarfileset dir="${dist.dir}" prefix="${dist.name}" includes="bin/**" mode="755"/>
<tarfileset dir="${dist.dir}" prefix="${dist.name}" excludes="bin/**"/>
- </tar>
- <gzip src="${dists.dir}/archives/${dist.name}.tar" destfile="${dists.dir}/archives/${dist.name}.tgz"/>
- <if>
- <not><equals arg1="${archives.skipxz}" arg2="true" /></not>
- <then>
- <exec executable="xz" failifexecutionfails="false">
- <arg line="-k -9e -S .xz ${dists.dir}/archives/${dist.name}.tar"/>
- </exec>
- <move file="${dists.dir}/archives/${dist.name}.tar.xz" tofile="${dists.dir}/archives/${dist.name}.txz" failonerror="false"/>
- </then>
- </if>
- <delete file="${dists.dir}/archives/${dist.name}.tar" />
- <checksum fileext=".md5">
- <fileset dir="${dists.dir}/archives">
- <include name="${dist.name}.t?z"/>
- </fileset>
- </checksum>
- </target>
+ </tarz>
- <target name="pack-archives.zip" depends="pack-archives.tar">
- <zip destfile="${dists.dir}/archives/${dist.name}.zip">
+ <zip destfile="${archive-base}.zip">
<zipfileset prefix="${dist.name}" dir="${dist.dir}"/>
</zip>
- <checksum file="${dists.dir}/archives/${dist.name}.zip" fileext=".md5"/>
- </target>
- <target name="pack-devel-docs.tar" depends="pack-archives.zip" unless="docs.skip">
- <tar destfile="${dists.dir}/archives/${dist.name}-devel-docs.tar"
- compression="none" longfile="gnu">
- <tarfileset dir="${dist.dir}/doc/scala-devel-docs" prefix="${dist.name}-devel-docs"/>
- </tar>
- <gzip src="${dists.dir}/archives/${dist.name}-devel-docs.tar" destfile="${dists.dir}/archives/${dist.name}-devel-docs.tgz"/>
- <if>
- <not><equals arg1="${archives.skipxz}" arg2="true" /></not>
- <then>
- <exec executable="xz" failifexecutionfails="false">
- <arg line="-k -9e -S .xz ${dists.dir}/archives/${dist.name}-devel-docs.tar"/>
- </exec>
- <move file="${dists.dir}/archives/${dist.name}-devel-docs.tar.xz" tofile="${dists.dir}/archives/${dist.name}-devel-docs.txz" failonerror="false"/>
- </then>
- </if>
- <delete file="${dists.dir}/archives/${dist.name}-devel-docs.tar" />
- <checksum fileext=".md5">
- <fileset dir="${dists.dir}/archives">
- <include name="${dist.name}-devel-docs.t?z"/>
- </fileset>
- </checksum>
- </target>
+ <if><not><isset property="docs.skip"/></not><then>
+ <tarz name="${archive-base}-devel-docs">
+ <tarfileset dir="${dist.dir}/doc/scala-devel-docs" prefix="${dist.name}-devel-docs"/>
+ </tarz>
+ </then></if>
- <target name="pack-archives.src" depends="pack-devel-docs.tar">
- <tar destfile="${dists.dir}/archives/${dist.name}-sources.tar"
- compression="none" longfile="gnu">
+ <tarz name="${archive-base}-sources">
<tarfileset dir="${basedir}" prefix="${dist.name}-sources">
<exclude name="bin/**"/>
<exclude name="build/**"/>
@@ -2130,152 +2111,99 @@ MAIN DISTRIBUTION PACKAGING
<tarfileset dir="${basedir}" prefix="${dist.name}-sources" filemode="755">
<include name="test/partest"/>
</tarfileset>
- </tar>
- <gzip src="${dists.dir}/archives/${dist.name}-sources.tar" destfile="${dists.dir}/archives/${dist.name}-sources.tgz"/>
- <if>
- <not><equals arg1="${archives.skipxz}" arg2="true" /></not>
- <then>
- <exec executable="xz" failifexecutionfails="false">
- <arg line="-k -9e -S .xz ${dists.dir}/archives/${dist.name}-sources.tar"/>
- </exec>
- <move file="${dists.dir}/archives/${dist.name}-sources.tar.xz" tofile="${dists.dir}/archives/${dist.name}-sources.txz" failonerror="false"/>
- </then>
- </if>
- <delete file="${dists.dir}/archives/${dist.name}-sources.tar" />
+ </tarz>
+
+ <!-- checksum everything -->
<checksum fileext=".md5">
<fileset dir="${dists.dir}/archives">
- <include name="${dist.name}-sources.t?z"/>
+ <include name="${dist.name}*"/>
</fileset>
</checksum>
- </target>
-
- <target name="pack-archives.latest.unix" depends="pack-archives.src" unless="os.win">
- <!-- be sure to use a relative symlink to make the distribution portable,
- `resource` is relative to directory of `link` -->
- <symlink link="${dists.dir}/archives/scala-latest-sources.tgz"
- resource="scala-${version.number}-sources.tgz"
- overwrite="true"/>
- </target>
-
- <target name="pack-archives.latest.win" depends="pack-archives.src" if="os.win">
- <copy tofile="${dists.dir}/archives/scala-latest-sources.tgz" overwrite="true">
- <fileset dir="${dists.dir}/archives">
- <include name="scala-${version.number}-sources.tgz"/>
- </fileset>
- </copy>
- </target>
-
- <target name="pack-archives.done" depends="pack-archives.src, pack-archives.latest.win, pack-archives.latest.unix"/>
- <target name="pack-maven.start" depends="dist.done, docs.done">
- <mkdir dir="${dists.dir}/maven/${version.number}"/>
- </target>
-
- <target name="pack-maven.libs" depends="pack-maven.start">
- <macrodef name="mvn-copy-lib">
- <attribute name="mvn.artifact.name"/>
+ <!-- UNUSED: create 'scala-latest-sources.tgz' alias (or copy, on windows)
+ we use github's source download feature
+ <if><isset property="os.win"/><then>
+ <copy tofile="${dists.dir}/archives/scala-latest-sources.tgz" overwrite="true">
+ <fileset dir="${dists.dir}/archives">
+ <include name="scala-${version.number}-sources.tgz"/>
+ </fileset>
+ </copy>
+ </then><else>
+ (be sure to use a relative symlink to make the distribution portable,
+ `resource` is relative to directory of `link`)
+ <symlink link="${dists.dir}/archives/scala-latest-sources.tgz"
+ resource="scala-${version.number}-sources.tgz"
+ overwrite="true"/>
+ </else></if> -->
+ </target>
+
+ <target name="pack-maven.done" depends="dist.done, docs.done">
+ <property name="maven-base" value="${dists.dir}/maven/${version.number}"/>
+
+ <macrodef name="mvn-package">
+ <attribute name="dir" default="" />
+ <attribute name="clsdir" default="${dist.dir}/lib/" />
+ <attribute name="project" />
+ <attribute name="name" default="scala-@{project}"/>
<sequential>
- <mkdir dir="${dists.dir}/maven/${version.number}/@{mvn.artifact.name}"/>
- <copy verbose="true" overwrite="true" todir="${dists.dir}/maven/${version.number}/@{mvn.artifact.name}">
- <fileset dir="${dist.dir}/lib/">
- <filename name="@{mvn.artifact.name}.jar"/>
+ <local name="path"/> <property name="path" value="${maven-base}/@{dir}@{name}"/>
+
+ <mkdir dir="${path}"/>
+ <copy verbose="true" overwrite="true" todir="${path}">
+ <fileset dir="@{clsdir}">
+ <filename name="@{name}.jar"/>
</fileset>
- <fileset dir="${src.dir}/build/maven/">
- <filename name="@{mvn.artifact.name}-pom.xml"/>
+ <fileset dir="${src.dir}/build/maven/@{dir}">
+ <filename name="@{name}-pom.xml"/>
</fileset>
<fileset dir="${dist.dir}/src/">
- <filename name="@{mvn.artifact.name}-src.jar"/>
+ <filename name="@{name}-src.jar"/>
</fileset>
</copy>
- </sequential>
- </macrodef>
- <mvn-copy-lib mvn.artifact.name="scala-library"/>
- <mvn-copy-lib mvn.artifact.name="scala-reflect"/>
- <mvn-copy-lib mvn.artifact.name="scala-compiler"/>
- <mvn-copy-lib mvn.artifact.name="scala-swing"/>
- <mvn-copy-lib mvn.artifact.name="scala-actors"/>
- <mvn-copy-lib mvn.artifact.name="scalap"/>
- </target>
- <target name="pack-maven.plugins" depends="pack-maven.start">
- <macrodef name="mvn-copy-plugin">
- <attribute name="mvn.artifact.name"/>
- <sequential>
- <mkdir dir="${dists.dir}/maven/${version.number}/plugins/@{mvn.artifact.name}"/>
- <copy todir="${dists.dir}/maven/${version.number}/plugins/@{mvn.artifact.name}" overwrite="true">
- <fileset dir="${dist.dir}/misc/scala-devel/plugins/">
- <filename name="@{mvn.artifact.name}.jar"/>
- </fileset>
- <fileset dir="${src.dir}/build/maven/plugins/">
- <filename name="@{mvn.artifact.name}-pom.xml"/>
- </fileset>
- </copy>
+ <if><not><isset property="docs.skip"/></not><then>
+ <jar whenmanifestonly="fail" destfile="${path}/@{name}-docs.jar"
+ basedir="${build-docs.dir}/@{project}">
+ <include name="**/*"/>
+ </jar>
+ </then></if>
</sequential>
</macrodef>
- <mvn-copy-plugin mvn.artifact.name="continuations"/>
- </target>
- <target name="pack-maven.srcs" depends="pack-maven.libs">
- <!-- Add missing src jars. -->
- <!-- Continuations plugin -->
- <jar whenmanifestonly="fail" destfile="${dists.dir}/maven/${version.number}/plugins/continuations/continuations-src.jar"
- basedir="${src.dir}/continuations/plugin">
- <include name="**/*"/>
- </jar>
- </target>
- <target name="pack-maven.docs" depends="pack-maven.libs, pack-maven.plugins" unless="docs.skip">
- <jar whenmanifestonly="fail" destfile="${dists.dir}/maven/${version.number}/scala-library/scala-library-docs.jar"
- basedir="${build-docs.dir}/library">
- <include name="**/*"/>
- </jar>
- <jar whenmanifestonly="fail" destfile="${dists.dir}/maven/${version.number}/scala-compiler/scala-compiler-docs.jar"
- basedir="${build-docs.dir}/compiler">
- <include name="**/*"/>
- </jar>
- <jar whenmanifestonly="fail" destfile="${dists.dir}/maven/${version.number}/scalap/scalap-docs.jar"
- basedir="${build-docs.dir}/scalap">
- <include name="**/*"/>
- </jar>
- <jar whenmanifestonly="fail" destfile="${dists.dir}/maven/${version.number}/plugins/continuations/continuations-docs.jar"
- basedir="${build-docs.dir}/continuations-plugin">
- <include name="**/*"/>
- </jar>
+ <mkdir dir="${maven-base}"/>
- <!-- TODO - Scala swing and actors should maybe have thier own jar, but creating it is SLOW. -->
- <copy tofile="${dists.dir}/maven/${version.number}/scala-swing/scala-swing-docs.jar"
- file="${dists.dir}/maven/${version.number}/scala-library/scala-library-docs.jar" overwrite="true"/>
- <copy tofile="${dists.dir}/maven/${version.number}/scala-actors/scala-actors-docs.jar"
- file="${dists.dir}/maven/${version.number}/scala-library/scala-library-docs.jar" overwrite="true"/>
- <copy tofile="${dists.dir}/maven/${version.number}/scala-reflect/scala-reflect-docs.jar"
- file="${dists.dir}/maven/${version.number}/scala-library/scala-library-docs.jar" overwrite="true"/>
- </target>
+ <mvn-package project="library"/>
+ <mvn-package project="reflect"/>
+ <mvn-package project="compiler"/>
- <target name="pack-maven.latest.unix" depends="pack-maven.docs" unless="os.win">
- <symlink link="${dists.dir}/maven/latest"
- resource="${version.number}"
- overwrite="true"/>
- </target>
+ <mvn-package project="swing"/>
+ <mvn-package project="actors"/>
+ <mvn-package project="scalap" name="scalap"/>
+ <mvn-package project="continuations-plugin" name="continuations" dir="plugins/" clsdir="${dist.dir}/misc/scala-devel/plugins/"/>
- <target name="pack-maven.latest.win" depends="pack-maven.docs" if="os.win">
- <copy todir="${dists.dir}/maven/latest" overwrite="true">
- <fileset dir="${dists.dir}/maven/${version.number}"/>
- </copy>
- </target>
- <target name="pack-maven.scripts" depends="pack-maven.latest.unix,pack-maven.latest.win,pack-maven.srcs">
- <copy todir="${dists.dir}/maven/${version.number}"
+ <!-- Create dists/maven/latest alias and copy maven-deploy ant build there. -->
+ <if><isset property="os.win"/><then>
+ <copy todir="${dists.dir}/maven/latest" overwrite="true">
+ <fileset dir="${maven-base}"/>
+ </copy>
+ </then><else>
+ <symlink link="${dists.dir}/maven/latest"
+ resource="${version.number}"
+ overwrite="true"/>
+ </else></if>
+ <!-- copy build file and its dependencies -->
+ <copy todir="${maven-base}"
file="${lib-ant.dir}/ant-contrib.jar" overwrite="true"/>
- <copy todir="${dists.dir}/maven/${version.number}"
+ <copy todir="${maven-base}"
file="${lib-ant.dir}/maven-ant-tasks-2.1.1.jar" overwrite="true"/>
- <copy tofile="${dists.dir}/maven/${version.number}/build.xml"
+ <copy tofile="${maven-base}/build.xml"
file="${src.dir}/build/maven/maven-deploy.xml"/>
<!-- export properties for use when deploying -->
- <echoproperties destfile="${dists.dir}/maven/${version.number}/build.properties"/>
- </target>
-
- <target name="pack-maven.done" depends="pack-maven.scripts"/>
+ <echoproperties destfile="${maven-base}/build.properties"/>
+ </target>
<!-- ===========================================================================