ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
(Generate patch)

Comparing jsr166/build.xml (file contents):
Revision 1.284 by jsr166, Sat Oct 27 01:16:23 2018 UTC vs.
Revision 1.301 by jsr166, Sat Aug 10 16:48:04 2019 UTC

# Line 1 | Line 1
1   <project name="jsr166" default="usage"
2 <  xmlns:if="ant:if"
2 >  xmlns:if="ant:if"
3    xmlns:unless="ant:unless"
4    xmlns:ivy="antlib:org.apache.ivy.ant">
5  
# Line 20 | Line 20
20    targets require different JDKs, we assume that users have created a
21    hierarchy containing:
22    $HOME/jdk/jdk8
23  $HOME/jdk/jdk9
24  $HOME/jdk/jdk10
23    $HOME/jdk/jdk11
24    $HOME/jdk/jdk12
25 +  $HOME/jdk/jdk13
26 +  $HOME/jdk/jdk14
27    where each of the above is a JDK or a symlink to same, and
28    $HOME/jdk/src/jdk8
29  $HOME/jdk/src/jdk9
30  $HOME/jdk/src/jdk10
29    $HOME/jdk/src/jdk11
30    $HOME/jdk/src/jdk12
31 +  $HOME/jdk/src/jdk13
32 +  $HOME/jdk/src/jdk14
33    where each of the above is a complete JDK source tree
34    (e.g. mercurial forest) or a symlink to same.
35  
36    Alternatively, define ant variables thus:
37    ant -Djdk$N.home=... -Djdk$N.src.home=...
38 <  for $N in 8 9 10 ...
38 >  for $N in 8 .. 14 ...
39  
40    As of 2016-03, the sources in src/main are for jdk9+ only.
41 +  As of 2019-08, the sources in src/main are for jdk11+ only.
42   ------------------------------------------------------------------------------
43    </description>
44  
# Line 131 | Line 132
132      </sequential>
133    </macrodef>
134  
134  <defjdklocations v="6"/>
135  <defjdklocations v="7"/>
135    <defjdklocations v="8"/>
137  <defjdklocations v="9"/>
138  <defjdklocations v="10"/>
136    <defjdklocations v="11"/>
137    <defjdklocations v="12"/>
138 +  <defjdklocations v="13"/>
139 +  <defjdklocations v="14"/>
140  
141    <!-- Source locations -->
142    <property name="src.dir"              location="${basedir}/src/main"/>
143    <property name="test.src.dir"         location="${basedir}/src/test"/>
144    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
145    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
147  <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
146    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
149  <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
150  <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
147    <property name="jtreg11.src.dir"      location="${test.src.dir}/jtreg"/>
148    <property name="jtreg12.src.dir"      location="${test.src.dir}/jtreg"/>
149 <  <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
149 >  <property name="jtreg13.src.dir"      location="${test.src.dir}/jtreg"/>
150 >  <property name="jtreg14.src.dir"      location="${test.src.dir}/jtreg"/>
151 >  <property name="jtreg.src.dir"        location="${jtreg11.src.dir}"/>
152    <property name="lib.dir"              location="${basedir}/lib"/>
153    <property name="dist.dir"             location="${basedir}/dist"/>
154    <property name="topsrc.dir"           location="${basedir}/src"/>
# Line 194 | Line 192
192    <property name="java6.docroot.url"  value="https://docs.oracle.com/javase/6/docs"/>
193    <property name="java7.docroot.url"  value="https://docs.oracle.com/javase/7/docs"/>
194    <property name="java8.docroot.url"  value="https://docs.oracle.com/javase/8/docs"/>
197  <property name="java9.docroot.url"  value="https://docs.oracle.com/javase/9/docs"/>
198  <property name="java10.docroot.url" value="https://docs.oracle.com/javase/10/docs"/>
195    <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/>
196 +  <property name="java12.docroot.url" value="https://docs.oracle.com/en/java/javase/12/docs"/>
197    <!-- The location of jdk early access docs (RIP) -->
201  <!-- <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> -->
202  <!-- <property name="java10.docroot.url" value="http://download.java.net/java/jdk10/docs"/> -->
198    <!-- <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/> -->
199 <  <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/>
200 <  <!-- Default jdk doc location (latest stable release seems best) -->
201 <  <!-- But pin to jdk 10 until fix for -->
202 <  <!-- 8211194: javadoc -link doesn't take module path into consideration -->
203 <  <property name="java.docroot.url"   value="${java10.docroot.url}"/>
199 > <!--   <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/> -->
200 >  <property name="java13.docroot.url" value="https://download.java.net/java/early_access/jdk13/docs"/>
201 >  <property name="java14.docroot.url" value="https://download.java.net/java/early_access/jdk14/docs"/>
202 >  <!-- Default jdk doc location (latest stable LTS release seems best) -->
203 >  <property name="java.docroot.url"   value="${java11.docroot.url}"/>
204  
205    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
211  <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
212  <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>
213  <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
206    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
215  <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
216  <property name="java10.api.url"     value="${java10.docroot.url}/api/"/>
207    <property name="java11.api.url"     value="${java11.docroot.url}/api/"/>
208    <property name="java12.api.url"     value="${java12.docroot.url}/api/"/>
209 +  <property name="java13.api.url"     value="${java13.docroot.url}/api/"/>
210 +  <property name="java14.api.url"     value="${java14.docroot.url}/api/"/>
211    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
212  
213    <!-- Define the "jtreg" task -->
# Line 329 | Line 321
321      </sequential>
322    </macrodef>
323  
324 +  <defjtregtests v="14"/>
325 +  <defjtregtests v="13"/>
326    <defjtregtests v="12"/>
327    <defjtregtests v="11"/>
334  <defjtregtests v="10"/>
335  <defjtregtests v="9"/>
328    <defjtregtests v="8"/>
337  <defjtregtests v="7"/>
329  
330    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
331    <property name="jtreg.flags" value=""/>
332  
333    <macrodef name="run-jtreg-tests">
334 <    <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
334 >    <!-- ant -Djtreg11.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
335      <attribute name="target"/>
336      <attribute name="workdir"/>
337      <attribute name="classes"/>
# Line 385 | Line 376
376    </path>
377  
378    <!-- Support @jls tag, used in jdk8+ javadoc -->
379 +  <!-- TODO: switch to @jls taglet, as supported by jdk14+ javadoc -->
380    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
381    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
382  
# Line 393 | Line 385
385    <!-- Default values: may seem strange ... -->
386    <!-- At runtime, target latest LTS, i.e. jdk11 -->
387    <!-- But at build time, target jdk9, for maximal binary portability -->
388 <  <!-- Use javadoc12, so we can use override-methods=summary, and JDK-8202628 -->
389 <  <property name="build.main.java.version" value="11"/>
388 >  <!-- ButButBut as of 2019-08, target jdk11 at build time -->
389 >  <!-- Use javadoc12 (but -link to jdk11 api docs!), to get:
390 >    o override-methods=summary
391 >    o {@systemProperty ...}
392 >    o 8211194: issues linking to external documentation (was: missing package-list for JDK10 / JDK11 documentation)
393 >    o 8202628: javadoc generates bad links in TestModules.java
394 >    -->
395 >  <property name="java.runtime.target" value="11"/>
396    <property name="build.main.java" value="${java11}"/>
397 <  <property name="build.main.javac" value="${javac9}"/>
397 >  <property name="build.main.javac" value="${javac11}"/>
398    <property name="build.main.javadoc" value="${javadoc12}"/>
399 +  <property name="build.main.javadoc.source" value="${java.runtime.target}"/>
400  
401    <target name="dists"
402            depends="dist, 4jdk8dist"
# Line 432 | Line 431
431        <compilerarg value="-Xlint:all,-removal"/>
432        <compilerarg line="--doclint-format html5"/>
433        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
434 +      <compilerarg value="-Xdoclint/package:java.util.*"/>
435        <compilerarg value="-Werror"/>
436        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
437        <compilerarg line="${build.args}"/>
# Line 471 | Line 471
471   <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
472      <javadoc destdir="${docs.dir}"
473               packagenames="none"
474 <             link="${java11.api.url}"
474 >             link="${java.api.url}"
475               overview="${src.dir}/intro.html"
476               access="${build.javadoc.access}"
477               sourcepath="${src.dir}"
478               classpath=""
479 <             source="11"
479 >             source="${build.main.javadoc.source}"
480               executable="${build.main.javadoc}">
481 + <!-- TODO: JDK-8214571 failonerror = "true" -->
482        <fileset dir="${src.dir}" defaultexcludes="yes">
483          <include name="**/*.java"/>
484        </fileset>
485 <      <arg line="-Xdocrootparent ${java10.docroot.url}"/>
485 >      <arg line="-Xdocrootparent ${java.docroot.url}"/>
486        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
487        <arg value="-XDignore.symbol.file=true"/>
488        <arg value="-html5"/>
489        <arg value="--patch-module=java.base=${src.dir}"/>
490 + <!-- old school frames via docs/index.html?overview-summary.html -->
491 + <!-- TODO: - -frames no longer a supported option in jdk13+ -->
492        <arg value="--frames"/>
493        <arg value="--override-methods=summary"/>
494        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
# Line 532 | Line 535
535            description="Runs tck tests for src/main directly">
536  
537      <run-tck-tests
538 <      target="${build.main.java.version}"
538 >      target="${java.runtime.target}"
539        workdir="${build.dir}"
540        classes="${product.jar}">
541        <javac-elements>
# Line 566 | Line 569
569            depends="jar"
570            description="Runs jtreg tests for src/main using the jtreg ant task">
571      <run-jtreg-tests
572 <       target="${build.main.java.version}"
572 >       target="${java.runtime.target}"
573         workdir="${build.dir}"
574         classes="${product.jar}"/>
575    </target>
# Line 576 | Line 579
579            description="Runs tck and jtreg tests for src/main"/>
580  
581    <target name="test-version-permutations"
582 <          depends="test9, test10, test11, test12, test9-11, test9-12, clean, test, docs">
582 >          depends="test11, test12, test13, test14, test11-12, test11-13, test11-14, clean, test, docs">
583 >  </target>
584 >
585 >  <!-- jdk9 is unsupported as of 2019-08 -->
586 > <!--   <target name="test9"> -->
587 > <!--     <antcall target="clean"/> -->
588 > <!--     <antcall> -->
589 > <!--       <param name="java.runtime.target" value="9"/> -->
590 > <!--       <param name="build.main.javac" value="${javac9}"/> -->
591 > <!--       <param name="build.main.javadoc" value="${javadoc12}"/> -->
592 > <!--       <param name="build.main.javadoc.source" value="9"/> -->
593 > <!--       <target name="test"/> -->
594 > <!--       <target name="docs"/> -->
595 > <!--     </antcall> -->
596 > <!--   </target> -->
597 >
598 >  <!-- jdk10 is unsupported as of 2019-08 -->
599 > <!--   <target name="test10"> -->
600 > <!--     <antcall target="clean"/> -->
601 > <!--     <antcall> -->
602 > <!--       <param name="java.runtime.target" value="10"/> -->
603 > <!--       <param name="build.main.javac" value="${javac10}"/> -->
604 > <!--       <param name="build.main.javadoc" value="${javadoc12}"/> -->
605 > <!--       <param name="build.main.javadoc.source" value="10"/> -->
606 > <!--       <target name="test"/> -->
607 > <!--       <target name="docs"/> -->
608 > <!--     </antcall> -->
609 > <!--   </target> -->
610 >
611 >  <target name="test11">
612 >    <antcall target="clean"/>
613 >    <antcall>
614 >      <param name="java.runtime.target" value="11"/>
615 >      <param name="build.main.javac" value="${javac11}"/>
616 >      <param name="build.main.javadoc" value="${javadoc12}"/>
617 >      <param name="build.main.javadoc.source" value="11"/>
618 >      <target name="test"/>
619 >      <target name="docs"/>
620 >    </antcall>
621    </target>
622  
623 <  <target name="test9">
623 >  <target name="test12">
624      <antcall target="clean"/>
625      <antcall>
626 <      <param name="build.main.java.version" value="9"/>
627 <      <param name="build.main.java" value="${java9}"/>
628 <      <param name="build.main.javac" value="${javac9}"/>
626 >      <param name="java.runtime.target" value="12"/>
627 >      <param name="build.main.javac" value="${javac12}"/>
628 >      <param name="build.main.javadoc" value="${javadoc12}"/>
629 >      <param name="build.main.javadoc.source" value="12"/>
630        <target name="test"/>
631 +      <target name="docs"/>
632      </antcall>
633    </target>
634  
635 <  <target name="test10">
635 >  <target name="test13">
636      <antcall target="clean"/>
637      <antcall>
638 <      <param name="build.main.java.version" value="10"/>
639 <      <param name="build.main.java" value="${java10}"/>
640 <      <param name="build.main.javac" value="${javac10}"/>
641 <      <param name="build.main.javadoc" value="${javadoc10}"/>
638 >      <param name="java.runtime.target" value="13"/>
639 >      <param name="build.main.javac" value="${javac13}"/>
640 >      <param name="build.main.javadoc" value="${javadoc13}"/>
641 >      <param name="build.main.javadoc.source" value="13"/>
642        <target name="test"/>
643        <target name="docs"/>
644      </antcall>
645    </target>
646  
647 <  <target name="test11">
647 >  <target name="test14">
648      <antcall target="clean"/>
649      <antcall>
650 <      <param name="build.main.java.version" value="11"/>
651 <      <param name="build.main.java" value="${java11}"/>
652 <      <param name="build.main.javac" value="${javac11}"/>
653 <      <param name="build.main.javadoc" value="${javadoc11}"/>
650 >      <param name="java.runtime.target" value="14"/>
651 >      <param name="build.main.javac" value="${javac14}"/>
652 >      <param name="build.main.javadoc" value="${javadoc14}"/>
653 >      <param name="build.main.javadoc.source" value="14"/>
654        <target name="test"/>
655        <target name="docs"/>
656      </antcall>
657    </target>
658  
659 <  <target name="test12">
659 >  <target name="test11-12">
660      <antcall target="clean"/>
661      <antcall>
662 <      <param name="build.main.java.version" value="12"/>
663 <      <param name="build.main.java" value="${java12}"/>
621 <      <param name="build.main.javac" value="${javac12}"/>
662 >      <param name="java.runtime.target" value="12"/>
663 >      <param name="build.main.javac" value="${javac11}"/>
664        <param name="build.main.javadoc" value="${javadoc12}"/>
665 +      <param name="build.main.javadoc.source" value="11"/>
666        <target name="test"/>
667        <target name="docs"/>
668      </antcall>
669    </target>
670  
671 <  <target name="test9-11">
671 >  <target name="test11-13">
672      <antcall target="clean"/>
673      <antcall>
674 <      <param name="build.main.java.version" value="11"/>
675 <      <param name="build.main.java" value="${java11}"/>
676 <      <param name="build.main.javac" value="${javac9}"/>
677 <      <param name="build.main.javadoc" value="${javadoc11}"/>
674 >      <param name="java.runtime.target" value="13"/>
675 >      <param name="build.main.javac" value="${javac11}"/>
676 >      <param name="build.main.javadoc" value="${javadoc13}"/>
677 >      <param name="build.main.javadoc.source" value="11"/>
678        <target name="test"/>
679        <target name="docs"/>
680      </antcall>
681    </target>
682  
683 <  <target name="test9-12">
683 >  <target name="test11-14">
684      <antcall target="clean"/>
685      <antcall>
686 <      <param name="build.main.java.version" value="12"/>
687 <      <param name="build.main.java" value="${java12}"/>
688 <      <param name="build.main.javac" value="${javac9}"/>
689 <      <param name="build.main.javadoc" value="${javadoc12}"/>
686 >      <param name="java.runtime.target" value="14"/>
687 >      <param name="build.main.javac" value="${javac11}"/>
688 >      <param name="build.main.javadoc" value="${javadoc14}"/>
689 >      <param name="build.main.javadoc.source" value="11"/>
690        <target name="test"/>
691        <target name="docs"/>
692      </antcall>
# Line 1373 | Line 1416
1416  
1417  
1418   <!-- ==============================================================
1419 <  Experimental errorprone support - https://errorprone.info
1419 >  Experimental errorprone support
1420 >  https://errorprone.info
1421 >  https://errorprone.info/docs/installation
1422 >  https://github.com/google/error-prone/issues/1143
1423   =================================================================== -->
1424 <  <property name="errorprone.jar" location="${lib.dir}/error_prone_ant-2.3.1.jar"/>
1424 >  <path id="errorprone.processorpath.path">
1425 >    <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1426 >    <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1427 >    <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1428 >    <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1429 >  </path>
1430 >  <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1431    <property name="errorprone.jsr166.user.flags" value=""/>
1432    <property name="errorprone.jsr166.flags"
1433              value="-Xep:HashtableContains:OFF
1434                     -Xep:JdkObsolete:OFF
1435                     -Xep:MissingOverride:OFF
1436                     -Xep:MissingFail:OFF
1437 +                   -Xep:ThreadPriorityCheck:OFF
1438                     -Xep:MixedArrayDimensions:ERROR
1439                     -Xep:RemoveUnusedImports:ERROR
1440                     -Xep:EmptyIf:ERROR
# Line 1390 | Line 1443
1443                     -Xep:LongLiteralLowerCaseSuffix:ERROR
1444                     -Xep:RedundantThrows:ERROR
1445                     -Xep:IdentityBinaryExpression:WARN
1446 +                   -Xep:ConstructorInvokesOverridable:WARN
1447                     -Xep:MethodCanBeStatic:WARN
1448                     ${errorprone.jsr166.user.flags}"/>
1449    <!-- -Xep:WildcardImport:ERROR -->
# Line 1422 | Line 1476
1476        <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1477        <compilerarg value="-J--illegal-access=permit"/>
1478        <compilerarg value="-XDcompilePolicy=simple"/>
1479 <      <compilerarg line="-processorpath ${errorprone.jar}"/>
1479 >      <compilerarg value="-processorpath"/>
1480 >      <compilerarg pathref="errorprone.processorpath.path"/>
1481        <compilerarg value="-Xplugin:ErrorProne
1482                            ${errorprone.jsr166.flags}"/>
1483        <compilerarg value="--patch-module=java.base=${src.dir}"/>
# Line 1439 | Line 1494
1494      </jar>
1495  
1496      <run-tck-tests
1497 <      target="${build.main.java.version}"
1497 >      target="${java.runtime.target}"
1498        workdir="${build.dir}"
1499        classes="${product.jar}">
1500        <javac-elements>
1501          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1502          <compilerarg value="-J--illegal-access=permit"/>
1503          <compilerarg value="-XDcompilePolicy=simple"/>
1504 <        <compilerarg line="-processorpath ${errorprone.jar}"/>
1504 >        <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1505          <compilerarg value="-Xplugin:ErrorProne
1506                              ${errorprone.jsr166.flags}
1507                              ${errorprone.jsr166.test.flags}"/>
# Line 1462 | Line 1517
1517            description="Run errorprone over jtreg tests (experimental)">
1518  
1519      <run-jtreg-tests
1520 <       target="${build.main.java.version}"
1520 >       target="${java.runtime.target}"
1521         workdir="${build.dir}"
1522         classes="${product.jar}"
1523         verbose="all">
1524        <jtreg-elements>
1525          <arg value="-javacoption:-XDcompilePolicy=simple"/>
1526          <arg value="-javacoption:-processorpath"/>
1527 <        <arg value="-javacoption:${errorprone.jar}"/>
1527 >        <arg value="-javacoption:${errorprone.processorpath}"/>
1528          <arg value="-javacoption:-Xplugin:ErrorProne
1529                              ${errorprone.jsr166.flags}
1530                              ${errorprone.jsr166.test.flags}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines