summaryrefslogtreecommitdiff
path: root/build.xml
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2013-10-18 16:57:20 -0700
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-10-21 22:18:02 -0700
commita51c7891a4de3d9dc42350ae35e2e8ecdffec683 (patch)
tree463e513260b5b2fab1b1b925a2d21720ff31af3f /build.xml
parentcd779d1460b7461636b1bb88b786415f8aa8d12c (diff)
downloadscala-a51c7891a4de3d9dc42350ae35e2e8ecdffec683.tar.gz
scala-a51c7891a4de3d9dc42350ae35e2e8ecdffec683.tar.bz2
scala-a51c7891a4de3d9dc42350ae35e2e8ecdffec683.zip
Inline src/build/pack.xml into build.xml.
It tended too easily to get out of synch with build.xml.
Diffstat (limited to 'build.xml')
-rwxr-xr-xbuild.xml243
1 files changed, 233 insertions, 10 deletions
diff --git a/build.xml b/build.xml
index c675fc3b17..471457be15 100755
--- a/build.xml
+++ b/build.xml
@@ -28,7 +28,10 @@ scalacArgs examples:
"-Dscalac.args=\"-Yrangepos\" -Dpartest.scalac_opts=\"-Yrangepos\""
targets exercised:
- locker.done build-opt nightly test.suite test.continuations.suite test.scaladoc
+ distpack-maven-opt nightly locker.done build-opt test.suite test.continuations.suite test.scaladoc
+
+NOTE: after distpack-maven-opt, it is expected there's a build file in dists/maven/latest that defines targets deploy and deploy.local
+TODO: get rid of this separate step
-->
<!-- To use Zinc with the ant build:
@@ -65,20 +68,15 @@ TODO:
<target name="fastdist-opt" description="Optimized version of fastdist."> <optimized name="fastdist"/></target>
<!-- packaging -->
- <target name="distpack" depends="dist.done, docs.done">
- <ant antfile="${src.dir}/build/pack.xml" target="pack-all.done" inheritall="yes" inheritrefs="yes"/></target>
-
- <target name="distpack-maven" depends="dist.done, docs.done">
- <ant antfile="${src.dir}/build/pack.xml" target="pack-maven.done" inheritall="yes" inheritrefs="yes"/></target>
+ <target name="distpack" depends="pack-archives.done, pack-maven.done"/>
+ <target name="distpack-maven" depends="pack-maven.done"/>
<target name="distpack-opt" description="Builds an optimised distribution."> <optimized name="distpack"/></target>
<target name="distpack-maven-opt" description="Builds an optimised maven distribution."><optimized name="distpack-maven"/></target>
- <target name="all.done" depends="dist.done, test.done"/>
+ <target name="all.done" depends="test.done, distpack"/>
- <!-- must use depends for all.done, not antcall: need the properties defined in there (dist.dir) -->
- <target name="nightly-nopt" depends="all.done, docs.done">
- <ant antfile="${src.dir}/build/pack.xml" target="pack-all.done" inheritall="yes" inheritrefs="yes"/></target>
+ <target name="nightly-nopt" depends="all.done"/>
<target name="nightly"><optimized name="nightly-nopt"/></target>
<target name="nightly.checkall">
@@ -2054,6 +2052,231 @@ TODO:
<target name="dist.done" depends="dist.doc, dist.man, dist.src, dist.partial"/>
+<!-- ===========================================================================
+MAIN DISTRIBUTION PACKAGING
+============================================================================ -->
+
+ <target name="pack-archives.start" depends="dist.done, docs.done">
+ <mkdir dir="${dists.dir}/archives"/>
+ </target>
+
+ <target name="pack-archives.tar" depends="pack-archives.start">
+ <tar destfile="${dists.dir}/archives/${dist.name}.tar"
+ compression="none" longfile="gnu">
+ <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>
+
+ <target name="pack-archives.zip" depends="pack-archives.tar">
+ <zip destfile="${dists.dir}/archives/${dist.name}.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>
+
+ <target name="pack-archives.src" depends="pack-devel-docs.tar">
+ <tar destfile="${dists.dir}/archives/${dist.name}-sources.tar"
+ compression="none" longfile="gnu">
+ <tarfileset dir="${basedir}" prefix="${dist.name}-sources">
+ <exclude name="bin/**"/>
+ <exclude name="build/**"/>
+ <exclude name="debian/**"/>
+ <exclude name="dists/**"/>
+ <exclude name="logs/**"/>
+ <exclude name="sandbox/**"/>
+ <exclude name="test/partest"/>
+ <exclude name=".git"/>
+ </tarfileset>
+ <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" />
+ <checksum fileext=".md5">
+ <fileset dir="${dists.dir}/archives">
+ <include name="${dist.name}-sources.t?z"/>
+ </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"/>
+ <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"/>
+ </fileset>
+ <fileset dir="${src.dir}/build/maven/">
+ <filename name="@{mvn.artifact.name}-pom.xml"/>
+ </fileset>
+ <fileset dir="${dist.dir}/src/">
+ <filename name="@{mvn.artifact.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>
+ </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>
+
+ <!-- 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>
+
+ <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>
+
+ <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}"
+ file="${lib-ant.dir}/ant-contrib.jar" overwrite="true"/>
+ <copy todir="${dists.dir}/maven/${version.number}"
+ file="${lib-ant.dir}/maven-ant-tasks-2.1.1.jar" overwrite="true"/>
+ <copy tofile="${dists.dir}/maven/${version.number}/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"/>
+
+
<!-- ===========================================================================
STABLE REFERENCE (STARR)