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.286 by jsr166, Wed Nov 21 21:05:59 2018 UTC vs.
Revision 1.302 by jsr166, Sun Aug 18 18:55:55 2019 UTC

# 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 429 | Line 428
428        <compilerarg value="--patch-module=java.base=${src.dir}"/>
429        <compilerarg value="-Xprefer:source"/>
430        <compilerarg value="-XDignore.symbol.file=true"/>
431 + <!--   Xlint:-removal for jdk12 Unsafe Object -> Reference renaming -->
432        <compilerarg value="-Xlint:all,-removal"/>
433        <compilerarg line="--doclint-format html5"/>
434        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
435 +      <compilerarg value="-Xdoclint/package:java.util.*"/>
436        <compilerarg value="-Werror"/>
437        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
438        <compilerarg line="${build.args}"/>
# Line 471 | Line 472
472   <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
473      <javadoc destdir="${docs.dir}"
474               packagenames="none"
475 <             link="${java11.api.url}"
475 >             link="${java.api.url}"
476               overview="${src.dir}/intro.html"
477               access="${build.javadoc.access}"
478               sourcepath="${src.dir}"
479               classpath=""
480 <             source="11"
480 >             source="${build.main.javadoc.source}"
481               executable="${build.main.javadoc}">
482 + <!-- TODO: JDK-8214571 failonerror = "true" -->
483        <fileset dir="${src.dir}" defaultexcludes="yes">
484          <include name="**/*.java"/>
485        </fileset>
486 <      <arg line="-Xdocrootparent ${java10.docroot.url}"/>
486 >      <arg line="-Xdocrootparent ${java.docroot.url}"/>
487        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
488        <arg value="-XDignore.symbol.file=true"/>
489        <arg value="-html5"/>
490        <arg value="--patch-module=java.base=${src.dir}"/>
491 + <!-- old school frames via docs/index.html?overview-summary.html -->
492 + <!-- TODO: - -frames no longer a supported option in jdk13+ -->
493        <arg value="--frames"/>
494        <arg value="--override-methods=summary"/>
495        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
# Line 532 | Line 536
536            description="Runs tck tests for src/main directly">
537  
538      <run-tck-tests
539 <      target="${build.main.java.version}"
539 >      target="${java.runtime.target}"
540        workdir="${build.dir}"
541        classes="${product.jar}">
542        <javac-elements>
# Line 566 | Line 570
570            depends="jar"
571            description="Runs jtreg tests for src/main using the jtreg ant task">
572      <run-jtreg-tests
573 <       target="${build.main.java.version}"
573 >       target="${java.runtime.target}"
574         workdir="${build.dir}"
575         classes="${product.jar}"/>
576    </target>
# Line 576 | Line 580
580            description="Runs tck and jtreg tests for src/main"/>
581  
582    <target name="test-version-permutations"
583 <          depends="test9, test10, test11, test12, test9-11, test9-12, clean, test, docs">
583 >          depends="test11, test12, test13, test14, test11-12, test11-13, test11-14, clean, test, docs">
584 >  </target>
585 >
586 >  <!-- jdk9 is unsupported as of 2019-08 -->
587 > <!--   <target name="test9"> -->
588 > <!--     <antcall target="clean"/> -->
589 > <!--     <antcall> -->
590 > <!--       <param name="java.runtime.target" value="9"/> -->
591 > <!--       <param name="build.main.javac" value="${javac9}"/> -->
592 > <!--       <param name="build.main.javadoc" value="${javadoc12}"/> -->
593 > <!--       <param name="build.main.javadoc.source" value="9"/> -->
594 > <!--       <target name="test"/> -->
595 > <!--       <target name="docs"/> -->
596 > <!--     </antcall> -->
597 > <!--   </target> -->
598 >
599 >  <!-- jdk10 is unsupported as of 2019-08 -->
600 > <!--   <target name="test10"> -->
601 > <!--     <antcall target="clean"/> -->
602 > <!--     <antcall> -->
603 > <!--       <param name="java.runtime.target" value="10"/> -->
604 > <!--       <param name="build.main.javac" value="${javac10}"/> -->
605 > <!--       <param name="build.main.javadoc" value="${javadoc12}"/> -->
606 > <!--       <param name="build.main.javadoc.source" value="10"/> -->
607 > <!--       <target name="test"/> -->
608 > <!--       <target name="docs"/> -->
609 > <!--     </antcall> -->
610 > <!--   </target> -->
611 >
612 >  <target name="test11">
613 >    <antcall target="clean"/>
614 >    <antcall>
615 >      <param name="java.runtime.target" value="11"/>
616 >      <param name="build.main.javac" value="${javac11}"/>
617 >      <param name="build.main.javadoc" value="${javadoc12}"/>
618 >      <param name="build.main.javadoc.source" value="11"/>
619 >      <target name="test"/>
620 >      <target name="docs"/>
621 >    </antcall>
622    </target>
623  
624 <  <target name="test9">
624 >  <target name="test12">
625      <antcall target="clean"/>
626      <antcall>
627 <      <param name="build.main.java.version" value="9"/>
628 <      <param name="build.main.java" value="${java9}"/>
629 <      <param name="build.main.javac" value="${javac9}"/>
627 >      <param name="java.runtime.target" value="12"/>
628 >      <param name="build.main.javac" value="${javac12}"/>
629 >      <param name="build.main.javadoc" value="${javadoc12}"/>
630 >      <param name="build.main.javadoc.source" value="12"/>
631        <target name="test"/>
632 +      <target name="docs"/>
633      </antcall>
634    </target>
635  
636 <  <target name="test10">
636 >  <target name="test13">
637      <antcall target="clean"/>
638      <antcall>
639 <      <param name="build.main.java.version" value="10"/>
640 <      <param name="build.main.java" value="${java10}"/>
641 <      <param name="build.main.javac" value="${javac10}"/>
642 <      <param name="build.main.javadoc" value="${javadoc10}"/>
639 >      <param name="java.runtime.target" value="13"/>
640 >      <param name="build.main.javac" value="${javac13}"/>
641 >      <param name="build.main.javadoc" value="${javadoc13}"/>
642 >      <param name="build.main.javadoc.source" value="13"/>
643        <target name="test"/>
644        <target name="docs"/>
645      </antcall>
646    </target>
647  
648 <  <target name="test11">
648 >  <target name="test14">
649      <antcall target="clean"/>
650      <antcall>
651 <      <param name="build.main.java.version" value="11"/>
652 <      <param name="build.main.java" value="${java11}"/>
653 <      <param name="build.main.javac" value="${javac11}"/>
654 <      <param name="build.main.javadoc" value="${javadoc11}"/>
651 >      <param name="java.runtime.target" value="14"/>
652 >      <param name="build.main.javac" value="${javac14}"/>
653 >      <param name="build.main.javadoc" value="${javadoc14}"/>
654 >      <param name="build.main.javadoc.source" value="14"/>
655        <target name="test"/>
656        <target name="docs"/>
657      </antcall>
658    </target>
659  
660 <  <target name="test12">
660 >  <target name="test11-12">
661      <antcall target="clean"/>
662      <antcall>
663 <      <param name="build.main.java.version" value="12"/>
664 <      <param name="build.main.java" value="${java12}"/>
621 <      <param name="build.main.javac" value="${javac12}"/>
663 >      <param name="java.runtime.target" value="12"/>
664 >      <param name="build.main.javac" value="${javac11}"/>
665        <param name="build.main.javadoc" value="${javadoc12}"/>
666 +      <param name="build.main.javadoc.source" value="11"/>
667        <target name="test"/>
668        <target name="docs"/>
669      </antcall>
670    </target>
671  
672 <  <target name="test9-11">
672 >  <target name="test11-13">
673      <antcall target="clean"/>
674      <antcall>
675 <      <param name="build.main.java.version" value="11"/>
676 <      <param name="build.main.java" value="${java11}"/>
677 <      <param name="build.main.javac" value="${javac9}"/>
678 <      <param name="build.main.javadoc" value="${javadoc11}"/>
675 >      <param name="java.runtime.target" value="13"/>
676 >      <param name="build.main.javac" value="${javac11}"/>
677 >      <param name="build.main.javadoc" value="${javadoc13}"/>
678 >      <param name="build.main.javadoc.source" value="11"/>
679        <target name="test"/>
680        <target name="docs"/>
681      </antcall>
682    </target>
683  
684 <  <target name="test9-12">
684 >  <target name="test11-14">
685      <antcall target="clean"/>
686      <antcall>
687 <      <param name="build.main.java.version" value="12"/>
688 <      <param name="build.main.java" value="${java12}"/>
689 <      <param name="build.main.javac" value="${javac9}"/>
690 <      <param name="build.main.javadoc" value="${javadoc12}"/>
687 >      <param name="java.runtime.target" value="14"/>
688 >      <param name="build.main.javac" value="${javac11}"/>
689 >      <param name="build.main.javadoc" value="${javadoc14}"/>
690 >      <param name="build.main.javadoc.source" value="11"/>
691        <target name="test"/>
692        <target name="docs"/>
693      </antcall>
# Line 1373 | Line 1417
1417  
1418  
1419   <!-- ==============================================================
1420 <  Experimental errorprone support - https://errorprone.info
1420 >  Experimental errorprone support
1421 >  https://errorprone.info
1422 >  https://errorprone.info/docs/installation
1423 >  https://github.com/google/error-prone/issues/1143
1424   =================================================================== -->
1425 <  <property name="errorprone.jar" location="${lib.dir}/error_prone_ant-2.3.1.jar"/>
1426 <  <property name="errorprone.processorpath" value="${errorprone.jar}"/>
1425 >  <path id="errorprone.processorpath.path">
1426 >    <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1427 >    <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1428 >    <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1429 >    <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1430 >  </path>
1431 >  <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1432    <property name="errorprone.jsr166.user.flags" value=""/>
1433    <property name="errorprone.jsr166.flags"
1434              value="-Xep:HashtableContains:OFF
1435                     -Xep:JdkObsolete:OFF
1436                     -Xep:MissingOverride:OFF
1437                     -Xep:MissingFail:OFF
1438 +                   -Xep:ThreadPriorityCheck:OFF
1439                     -Xep:MixedArrayDimensions:ERROR
1440                     -Xep:RemoveUnusedImports:ERROR
1441                     -Xep:EmptyIf:ERROR
# Line 1391 | Line 1444
1444                     -Xep:LongLiteralLowerCaseSuffix:ERROR
1445                     -Xep:RedundantThrows:ERROR
1446                     -Xep:IdentityBinaryExpression:WARN
1447 +                   -Xep:ConstructorInvokesOverridable:WARN
1448                     -Xep:MethodCanBeStatic:WARN
1449                     ${errorprone.jsr166.user.flags}"/>
1450    <!-- -Xep:WildcardImport:ERROR -->
# Line 1423 | Line 1477
1477        <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1478        <compilerarg value="-J--illegal-access=permit"/>
1479        <compilerarg value="-XDcompilePolicy=simple"/>
1480 <      <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1480 >      <compilerarg value="-processorpath"/>
1481 >      <compilerarg pathref="errorprone.processorpath.path"/>
1482        <compilerarg value="-Xplugin:ErrorProne
1483                            ${errorprone.jsr166.flags}"/>
1484        <compilerarg value="--patch-module=java.base=${src.dir}"/>
# Line 1440 | Line 1495
1495      </jar>
1496  
1497      <run-tck-tests
1498 <      target="${build.main.java.version}"
1498 >      target="${java.runtime.target}"
1499        workdir="${build.dir}"
1500        classes="${product.jar}">
1501        <javac-elements>
# Line 1463 | Line 1518
1518            description="Run errorprone over jtreg tests (experimental)">
1519  
1520      <run-jtreg-tests
1521 <       target="${build.main.java.version}"
1521 >       target="${java.runtime.target}"
1522         workdir="${build.dir}"
1523         classes="${product.jar}"
1524         verbose="all">

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines