Skip to content

Commit e843545

Browse files
committed
Javadoc + Source jar generation is now complete for maven deployment.
1 parent a6a9684 commit e843545

File tree

3 files changed

+166
-48
lines changed

3 files changed

+166
-48
lines changed

build.xml

Lines changed: 126 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1510,20 +1510,33 @@ LIBRARIES (MSIL, FJBG maybe later)
15101510
DOCUMENTATION
15111511
============================================================================ -->
15121512

1513-
<target name="docs.start" depends="pack.done"/>
1513+
<target name="docs.start" depends="pack.done">
1514+
<macrodef name="doc-uptodate-check">
1515+
<attribute name="name" />
1516+
<attribute name="srcdir" />
1517+
<element name="source-includes" optional="yes" />
1518+
<sequential>
1519+
<uptodate property="docs.@{name}.available" targetfile="${build-docs.dir}/@{name}.complete">
1520+
<srcfiles dir="@{srcdir}">
1521+
<source-includes/>
1522+
</srcfiles>
1523+
</uptodate>
1524+
</sequential>
1525+
</macrodef>
1526+
</target>
15141527

15151528
<target name="docs.pre-lib" depends="docs.start">
1516-
<uptodate property="docs.lib.available" targetfile="${build-docs.dir}/library.complete">
1517-
<srcfiles dir="${src.dir}">
1529+
<doc-uptodate-check name="library" srcdir="${src.dir}">
1530+
<source-includes>
15181531
<include name="library/**"/>
15191532
<include name="dbc/**"/>
15201533
<include name="actors/**"/>
15211534
<include name="swing/**"/>
1522-
</srcfiles>
1523-
</uptodate>
1535+
</source-includes>
1536+
</doc-uptodate-check>
15241537
</target>
15251538

1526-
<target name="docs.lib" depends="docs.pre-lib" unless="docs.lib.available">
1539+
<target name="docs.lib" depends="docs.pre-lib" unless="docs.library.available">
15271540
<stopwatch name="docs.lib.timer"/>
15281541
<mkdir dir="${build-docs.dir}/library"/>
15291542
<scaladoc
@@ -1558,12 +1571,10 @@ DOCUMENTATION
15581571
</target>
15591572

15601573
<target name="docs.pre-man" depends="docs.lib">
1561-
<uptodate property="docs.man.available" targetfile="${build-docs.dir}/manual.complete">
1562-
<srcfiles dir="${src.dir}/manual"/>
1563-
</uptodate>
1574+
<doc-uptodate-check name="manual" srcdir="${src.dir}/manual"/>
15641575
</target>
15651576

1566-
<target name="docs.manmaker" depends="docs.pre-man" unless="docs.man.available">
1577+
<target name="docs.manmaker" depends="docs.pre-man" unless="docs.manual.available">
15671578
<mkdir dir="${build.dir}/manmaker/classes"/>
15681579
<scalac
15691580
destdir="${build.dir}/manmaker/classes"
@@ -1577,7 +1588,7 @@ DOCUMENTATION
15771588
</path>
15781589
</target>
15791590

1580-
<target name="docs.man" depends="docs.manmaker" unless="docs.man.available">
1591+
<target name="docs.man" depends="docs.manmaker" unless="docs.manual.available">
15811592
<mkdir dir="${build-docs.dir}/manual/man/man1"/>
15821593
<mkdir dir="${build-docs.dir}/manual/html"/>
15831594
<mkdir dir="${build-docs.dir}/manual/genman/man1"/>
@@ -1604,12 +1615,10 @@ DOCUMENTATION
16041615
</target>
16051616

16061617
<target name="docs.pre-comp" depends="docs.man">
1607-
<uptodate property="docs.comp.available" targetfile="${build-docs.dir}/compiler.complete">
1608-
<srcfiles dir="${src.dir}/compiler"/>
1609-
</uptodate>
1618+
<doc-uptodate-check name="compiler" srcdir="${src.dir}/compiler"/>
16101619
</target>
16111620

1612-
<target name="docs.comp" depends="docs.pre-comp" unless="docs.comp.available">
1621+
<target name="docs.comp" depends="docs.pre-comp" unless="docs.compiler.available">
16131622
<stopwatch name="docs.comp.timer"/>
16141623
<mkdir dir="${build-docs.dir}/compiler"/>
16151624
<scaladoc
@@ -1620,16 +1629,104 @@ DOCUMENTATION
16201629
sourcepath="${src.dir}"
16211630
classpathref="pack.classpath"
16221631
srcdir="${src.dir}/compiler"
1623-
docRootContent="${src.dir}/compiler/rootdoc.txt">
1624-
addparams="${scalac.args.all}"
1632+
docRootContent="${src.dir}/compiler/rootdoc.txt"
1633+
addparams="${scalac.args.all}">
16251634
<include name="**/*.scala"/>
16261635
</scaladoc>
16271636
<touch file="${build-docs.dir}/compiler.complete" verbose="no"/>
16281637
<stopwatch name="docs.comp.timer" action="total"/>
16291638
</target>
16301639

1640+
<target name="docs.pre-jline" depends="docs.start">
1641+
<doc-uptodate-check name="jline" srcdir="${src.dir}/jline/src/main/java" />
1642+
</target>
1643+
1644+
<target name="docs.jline" depends="docs.pre-jline" unless="docs.jline.available">
1645+
<stopwatch name="docs.jline.timer"/>
1646+
<mkdir dir="${build-docs.dir}/jline"/>
1647+
<scaladoc
1648+
destdir="${build-docs.dir}/jline"
1649+
doctitle="Scala JLine"
1650+
docversion="${version.number}"
1651+
sourcepath="${src.dir}"
1652+
classpathref="pack.classpath"
1653+
srcdir="${src.dir}/jline/src/main/java"
1654+
addparams="${scalac.args.all}">
1655+
<include name="**/*.scala"/>
1656+
<include name="**/*.java"/>
1657+
</scaladoc>
1658+
<touch file="${build-docs.dir}/jline.complete" verbose="no"/>
1659+
<stopwatch name="docs.jline.timer" action="total"/>
1660+
</target>
1661+
1662+
<target name="docs.pre-scalap" depends="docs.start">
1663+
<doc-uptodate-check name="scalap" srcdir="${src.dir}/scalap" />
1664+
</target>
1665+
1666+
<target name="docs.scalap" depends="docs.pre-scalap" unless="docs.scalap.available">
1667+
<stopwatch name="docs.scalap.timer"/>
1668+
<mkdir dir="${build-docs.dir}/scalap"/>
1669+
<scaladoc
1670+
destdir="${build-docs.dir}/scalap"
1671+
doctitle="Scalap"
1672+
docversion="${version.number}"
1673+
docsourceurl="https://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/src/€{FILE_PATH}.scala#L1"
1674+
sourcepath="${src.dir}"
1675+
classpathref="pack.classpath"
1676+
srcdir="${src.dir}/scalap"
1677+
addparams="${scalac.args.all}">
1678+
<include name="**/*.scala"/>
1679+
</scaladoc>
1680+
<touch file="${build-docs.dir}/scalap.complete" verbose="no"/>
1681+
<stopwatch name="docs.scalap.timer" action="total"/>
1682+
</target>
1683+
1684+
<target name="docs.pre-partest" depends="docs.start">
1685+
<doc-uptodate-check name="partest" srcdir="${src.dir}/partest" />
1686+
</target>
1687+
1688+
<target name="docs.partest" depends="docs.pre-partest" unless="docs.partest.available">
1689+
<stopwatch name="docs.partest.timer"/>
1690+
<mkdir dir="${build-docs.dir}/scala-partest"/>
1691+
<scaladoc
1692+
destdir="${build-docs.dir}/scala-partest"
1693+
doctitle="Scala Parallel Testing Framework"
1694+
docversion="${version.number}"
1695+
sourcepath="${src.dir}"
1696+
classpathref="pack.classpath"
1697+
srcdir="${src.dir}/partest"
1698+
addparams="${scalac.args.all}">
1699+
<include name="**/*.scala"/>
1700+
</scaladoc>
1701+
<touch file="${build-docs.dir}/partest.complete" verbose="no"/>
1702+
<stopwatch name="docs.partest.timer" action="total"/>
1703+
</target>
1704+
1705+
<target name="docs.pre-continuations-plugin" depends="docs.start">
1706+
<doc-uptodate-check name="continuations-plugin" srcdir="${src.dir}/continuations/plugin" />
1707+
</target>
1708+
1709+
<target name="docs.continuations-plugin" depends="docs.pre-continuations-plugin" unless="docs.continuations-plugin.available">
1710+
<stopwatch name="docs.continuations-plugin.timer"/>
1711+
<mkdir dir="${build-docs.dir}/continuations-plugin"/>
1712+
<scaladoc
1713+
destdir="${build-docs.dir}/continuations-plugin"
1714+
doctitle="Delimited Continuations Compiler Plugin"
1715+
docversion="${version.number}"
1716+
sourcepath="${src.dir}"
1717+
classpathref="pack.classpath"
1718+
srcdir="${src.dir}/continuations/plugin"
1719+
addparams="${scalac.args.all}">
1720+
<include name="**/*.scala"/>
1721+
</scaladoc>
1722+
<touch file="${build-docs.dir}/continuations-plugin.complete" verbose="no"/>
1723+
<stopwatch name="docs.continuations-plugin.timer" action="total"/>
1724+
</target>
1725+
16311726
<target name="docs.done" depends="docs.man"/>
16321727

1728+
<target name="docs.all" depends="docs.jline, docs.comp, docs.man, docs.lib, docs.scalap, docs.partest, docs.continuations-plugin"/>
1729+
16331730
<target name="docs.clean">
16341731
<delete dir="${build-docs.dir}" includeemptydirs="yes" quiet="yes" failonerror="no"/>
16351732
<delete dir="${build.dir}/manmaker" includeemptydirs="yes" quiet="yes" failonerror="no"/>
@@ -1921,17 +2018,28 @@ STABLE REFERENCE (STARR)
19212018
FORWARDED TARGETS FOR PACKAGING
19222019
============================================================================ -->
19232020

1924-
<target name="distpack" depends="dist.done">
2021+
<target name="distpack" depends="dist.done, docs.all">
19252022
<ant antfile="${src.dir}/build/pack.xml" target="pack-all.done" inheritall="yes" inheritrefs="yes"/>
19262023
</target>
19272024

2025+
<target name="distpack-maven" depends="dist.done, docs.all">
2026+
<ant antfile="${src.dir}/build/pack.xml" target="pack-maven.done" inheritall="yes" inheritrefs="yes"/>
2027+
</target>
2028+
19282029
<target name="distpack-opt"
19292030
description="Builds an optimised distribution.">
19302031
<antcall target="distpack">
19312032
<param name="scalac.args.optimise" value="-optimise"/>
19322033
</antcall>
19332034
</target>
19342035

2036+
<target name="distpack-maven-opt"
2037+
description="Builds an optimised maven distribution.">
2038+
<antcall target="distpack-maven">
2039+
<param name="scalac.args.optimise" value="-optimise"/>
2040+
</antcall>
2041+
</target>
2042+
19352043
<!-- Used by the scala-installer script -->
19362044
<target name="allallclean" depends="all.clean"/>
19372045

src/build/maven/maven-deploy.xml

Lines changed: 9 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,6 @@
5757
<artifact:pom id="plugin-@{name}.pom" file="plugins/@{name}/@{name}-pom-fixed.xml" />
5858
</sequential>
5959
</macrodef>
60-
<!-- Simply attaching documentation -->
61-
<macrodef name="attach-doc">
62-
<attribute name="name" />
63-
<sequential>
64-
<artifact:attach type="jar" file="@{name}/@{name}-docs.jar" classifier="javadoc" />
65-
</sequential>
66-
</macrodef>
6760
</target>
6861
<!-- macros for local deployment -->
6962
<target name="deploy.local.init" depends="init.maven">
@@ -79,6 +72,7 @@
7972
<artifact:pom refid="@{name}.pom" />
8073
<artifact:localRepository path="@{repository}" id="${repository.credentials.id}" />
8174
<artifact:attach type="jar" file="@{name}/@{name}-src.jar" classifier="sources" />
75+
<artifact:attach type="jar" file="@{name}/@{name}-docs.jar" classifier="javadoc" />
8276
<extra-attachments />
8377
</artifact:install>
8478
</sequential>
@@ -94,6 +88,8 @@
9488
<make-pom-plugin name="@{name}" version="@{version}" />
9589
<artifact:install file="plugins/@{name}/@{name}.jar">
9690
<artifact:pom refid="plugin-@{name}.pom" />
91+
<artifact:attach type="jar" file="plugins/@{name}/@{name}-src.jar" classifier="sources" />
92+
<artifact:attach type="jar" file="plugins/@{name}/@{name}-docs.jar" classifier="javadoc" />
9793
<artifact:localRepository path="@{repository}" id="${repository.credentials.id}" />
9894
<extra-attachments />
9995
</artifact:install>
@@ -106,24 +102,14 @@
106102
<attribute name="repository" />
107103
<attribute name="version" />
108104
<sequential>
109-
<deploy-local name="scala-library" version="@{version}" repository="@{repository}">
110-
<extra-attachments>
111-
<artifact:attach type="jar" file="scala-library/scala-library-docs.jar" classifier="javadoc" />
112-
</extra-attachments>
113-
</deploy-local>
114-
<deploy-local name="jline" version="@{version}" repository="@{repository}"/>
105+
<deploy-local name="scala-library" version="@{version}" repository="@{repository}" />
115106
<deploy-local name="scala-compiler" version="@{version}" repository="@{repository}" />
107+
<deploy-local-plugin name="continuations" version="@{version}" repository="@{repository}"/>
116108
<deploy-local name="scala-dbc" version="@{version}" repository="@{repository}" />
117109
<deploy-local name="scala-swing" version="@{version}" repository="@{repository}"/>
118110
<deploy-local name="scalap" version="@{version}" repository="@{repository}"/>
119111
<deploy-local name="scala-partest" version="@{version}" repository="@{repository}"/>
120-
<deploy-local-plugin name="continuations" version="@{version}" repository="@{repository}"/>
121-
<!-- scala swing api is included in main library api
122-
<extra-attachments>
123-
<artifact:attach type="jar" file="scala-swing/scala-swing-docs.jar" classifier="javadoc" />
124-
</extra-attachments>
125-
</deploy-local>
126-
-->
112+
<deploy-local name="jline" version="@{version}" repository="@{repository}"/>
127113
</sequential>
128114
</macrodef>
129115
</target>
@@ -142,6 +128,7 @@
142128
<artifact:pom refid="@{name}.pom" />
143129
<artifact:remoteRepository url="@{repository}" id="${repository.credentials.id}" />
144130
<artifact:attach type="jar" file="@{name}/@{name}-src.jar" classifier="sources" />
131+
<artifact:attach type="jar" file="@{name}/@{name}-doc.jar" classifier="javadoc" />
145132
<extra-attachments />
146133
</artifact:deploy>
147134
</sequential>
@@ -158,6 +145,8 @@
158145
<make-pom-plugin name="@{name}" version="@{version}" />
159146
<artifact:deploy file="plugins/@{name}/@{name}.jar" settingsFile="${settings.file}">
160147
<artifact:pom refid="plugin-@{name}.pom" />
148+
<artifact:attach type="jar" file="plugins/@{name}/@{name}-src.jar" classifier="sources" />
149+
<artifact:attach type="jar" file="plugins/@{name}/@{name}-docs.jar" classifier="javadoc" />
161150
<artifact:remoteRepository url="@{repository}" id="${repository.credentials.id}" />
162151
<extra-attachments />
163152
</artifact:deploy>
@@ -181,12 +170,6 @@
181170
<deploy-remote name="scalap" version="@{version}" repository="@{repository}"/>
182171
<deploy-remote name="scala-partest" version="@{version}" repository="@{repository}"/>
183172
<deploy-remote-plugin name="continuations" version="@{version}" repository="@{repository}"/>
184-
<!-- scala swing api is included in main library api
185-
<extra-attachments>
186-
<artifact:attach type="jar" file="scala-swing/scala-swing-docs.jar" classifier="javadoc" />
187-
</extra-attachments>
188-
</deploy-remote>
189-
-->
190173
</sequential>
191174
</macrodef>
192175
</target>

src/build/pack.xml

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -251,23 +251,50 @@ MAIN DISTRIBUTION SBAZ
251251
</target>
252252

253253
<target name="pack-maven.srcs" depends="pack-maven.libs">
254+
<!-- Add missing src jars. -->
254255
<jar destfile="${dists.dir}/maven/${version.number}/jline/jline-src.jar"
255256
basedir="${src.dir}/jline/src/main/java">
256257
<include name="**/*"/>
257258
</jar>
259+
260+
261+
<!-- Continuations plugin -->
262+
<jar destfile="${dists.dir}/maven/${version.number}/plugins/continuations/continuations-src.jar"
263+
basedir="${src.dir}/continuations/plugin">
264+
<include name="**/*"/>
265+
</jar>
258266
</target>
259267

260268
<target name="pack-maven.docs" depends="pack-maven.libs, pack-maven.plugins">
269+
<jar destfile="${dists.dir}/maven/${version.number}/jline/jline-docs.jar"
270+
basedir="${build-docs.dir}/jline">
271+
<include name="**/*"/>
272+
</jar>
261273
<jar destfile="${dists.dir}/maven/${version.number}/scala-library/scala-library-docs.jar"
262274
basedir="${build-docs.dir}/library">
263275
<include name="**/*"/>
264276
</jar>
265-
<!-- scala-swing api is included in main library api
266-
<jar destfile="${dists.dir}/maven/${version.number}/scala-swing/scala-swing-docs.jar"
267-
basedir="${build-docs.dir}/swing">
277+
<jar destfile="${dists.dir}/maven/${version.number}/scala-compiler/scala-compiler-docs.jar"
278+
basedir="${build-docs.dir}/compiler">
279+
<include name="**/*"/>
280+
</jar>
281+
<jar destfile="${dists.dir}/maven/${version.number}/scalap/scalap-docs.jar"
282+
basedir="${build-docs.dir}/scalap">
283+
<include name="**/*"/>
284+
</jar>
285+
<jar destfile="${dists.dir}/maven/${version.number}/scala-partest/scala-partest-docs.jar"
286+
basedir="${build-docs.dir}/scala-partest">
287+
<include name="**/*"/>
288+
</jar>
289+
<jar destfile="${dists.dir}/maven/${version.number}/plugins/continuations/continuations-docs.jar"
290+
basedir="${build-docs.dir}/continuations-plugin">
268291
<include name="**/*"/>
269292
</jar>
270-
-->
293+
<!-- TODO - Scala swing, dbc should maybe have thier own jar, but creating it is SLOW. -->
294+
<copy tofile="${dists.dir}/maven/${version.number}/scala-swing/scala-swing-docs.jar"
295+
file="${dists.dir}/maven/${version.number}/scala-library/scala-library-docs.jar"/>
296+
<copy tofile="${dists.dir}/maven/${version.number}/scala-dbc/scala-dbc-docs.jar"
297+
file="${dists.dir}/maven/${version.number}/scala-library/scala-library-docs.jar"/>
271298
</target>
272299

273300
<target name="pack-maven.latest.unix" depends="pack-maven.docs" unless="os.win">

0 commit comments

Comments
 (0)