diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-10-18 16:57:20 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-10-21 22:18:02 -0700 |
commit | a51c7891a4de3d9dc42350ae35e2e8ecdffec683 (patch) | |
tree | 463e513260b5b2fab1b1b925a2d21720ff31af3f /build.xml | |
parent | cd779d1460b7461636b1bb88b786415f8aa8d12c (diff) | |
download | scala-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-x | build.xml | 243 |
1 files changed, 233 insertions, 10 deletions
@@ -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) |