Changeset 18308 in josm
- Timestamp:
- 2021-11-04T00:54:29+01:00 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/build.xml
r18180 r18308 94 94 <!-- For Java specific stuff by version --> 95 95 <condition property="isJava9"><matches string="${ant.java.version}" pattern="(1.)?(9|1[0-9])" /></condition> 96 <condition property="isJava10"><matches string="${ant.java.version}" pattern="1[0-9]" /></condition> 97 <condition property="isJava11"><matches string="${ant.java.version}" pattern="1[1-9]" /></condition> 98 <condition property="isJava12"><matches string="${ant.java.version}" pattern="1[2-9]" /></condition> 99 <condition property="isJava13"><matches string="${ant.java.version}" pattern="1[3-9]" /></condition> 100 <condition property="isJava14"><matches string="${ant.java.version}" pattern="1[4-9]" /></condition> 101 <condition property="isJava16"><matches string="${ant.java.version}" pattern="1[6-9]" /></condition> 102 <condition property="isJava18"><matches string="${ant.java.version}" pattern="1[8-9]" /></condition> 96 <condition property="isJava10"><matches string="${ant.java.version}" pattern="(1|2)[0-9]" /></condition> 97 <condition property="isJava11"><matches string="${ant.java.version}" pattern="1[1-9]|[2-9][0-9]" /></condition> 98 <condition property="isJava12"><matches string="${ant.java.version}" pattern="1[2-9]|[2-9][0-9]" /></condition> 99 <condition property="isJava13"><matches string="${ant.java.version}" pattern="1[3-9]|[2-9][0-9]" /></condition> 100 <condition property="isJava14"><matches string="${ant.java.version}" pattern="1[4-9]|[2-9][0-9]" /></condition> 101 <condition property="isJava16"><matches string="${ant.java.version}" pattern="1[6-9]|[2-9][0-9]" /></condition> 102 <condition property="isJava18"><matches string="${ant.java.version}" pattern="1[8-9]|[2-9][0-9]" /></condition> 103 <condition property="isJava19"><matches string="${ant.java.version}" pattern="19|[2-9][0-9]" /></condition> 104 <condition property="isJava20"><matches string="${ant.java.version}" pattern="[2-9][0-9]" /></condition> 105 <condition property="isJava21"><matches string="${ant.java.version}" pattern="2[1-9]|[3-9][0-9]" /></condition> 103 106 <!-- Disable jacoco on Java 18+, see https://github.com/jacoco/jacoco/pull/1132 --> 104 107 <condition property="coverageByDefault"> … … 183 186 <attribute name="Add-Exports" value="java.base/sun.security.action java.desktop/com.apple.eawt java.desktop/com.sun.imageio.spi java.desktop/com.sun.imageio.plugins.jpeg javafx.graphics/com.sun.javafx.application jdk.deploy/com.sun.deploy.config" /> 184 187 <attribute name="Add-Opens" value="java.base/java.lang java.base/java.nio java.base/jdk.internal.loader java.base/jdk.internal.ref java.desktop/javax.imageio.spi java.desktop/javax.swing.text.html java.prefs/java.util.prefs" /> 188 <!-- Indicate that this jar may have version specific classes. Only used in Java9+. --> 189 <attribute name="Multi-Release" value="true"/> 185 190 </manifest> 186 191 </jar> … … 203 208 </java> 204 209 </target> 210 <macrodef name="call-javac-compile"> 211 <attribute name="sourcepath" default=""/> 212 <attribute name="srcdir" default="${src.dir}"/> 213 <attribute name="fork" default="yes"/> 214 <attribute name="excludes" default=""/> 215 <attribute name="includes" default="**/*.java"/> 216 <attribute name="destdir" default="${build.dir}"/> 217 <attribute name="debug" default="on"/> 218 <attribute name="includeantruntime" default="false"/> 219 <attribute name="encoding" default="UTF-8"/> 220 <attribute name="release" default="${java.lang.version}"/> 221 <element name="cp-elements" optional="true"/> 222 <sequential> 223 <javac sourcepath="@{sourcepath}" srcdir="@{srcdir}" fork="@{fork}" 224 includes="@{includes}" excludes="@{excludes}" destdir="@{destdir}" release="@{release}" 225 debug="@{debug}" includeantruntime="@{includeantruntime}" encoding="@{encoding}"> 226 <compilerarg value="-J-Xbootclasspath/p:${toString:errorprone_javac.classpath}" unless:set="isJava9"/> 227 <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED" if:set="isJava16" unless:set="noErrorProne"/> 228 <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED" if:set="isJava16" unless:set="noErrorProne"/> 229 <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED" if:set="isJava16" unless:set="noErrorProne"/> 230 <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED" if:set="isJava16" unless:set="noErrorProne"/> 231 <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED" if:set="isJava16" unless:set="noErrorProne"/> 232 <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED" if:set="isJava16" unless:set="noErrorProne"/> 233 <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED" if:set="isJava16" unless:set="noErrorProne"/> 234 <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED" if:set="isJava16" unless:set="noErrorProne"/> 235 <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED" if:set="isJava16" unless:set="noErrorProne"/> 236 <compilerarg line="-XDcompilePolicy=simple"/> 237 <compilerarg value="-processorpath"/> 238 <compilerarg value="${toString:errorprone.classpath}:${toString:semanticdb.classpath}"/> 239 <compilerarg value="-Xlint:cast"/> 240 <compilerarg value="-Xlint:deprecation"/> 241 <compilerarg value="-Xlint:dep-ann"/> 242 <compilerarg value="-Xlint:divzero"/> 243 <compilerarg value="-Xlint:empty"/> 244 <compilerarg value="-Xlint:finally"/> 245 <compilerarg value="-Xlint:overrides"/> 246 <!--<compilerarg value="-Xlint:rawtypes"/>--> 247 <compilerarg value="-Xlint:static"/> 248 <compilerarg value="-Xlint:try"/> 249 <compilerarg value="-Xlint:unchecked"/> 250 <!-- Undocumented argument to ignore "Sun internal proprietary API" warning, see http://stackoverflow.com/a/13862308/2257172 --> 251 <compilerarg value="-XDignore.symbol.file"/> 252 <compilerarg value="-Xplugin:ErrorProne -XepExcludedPaths:.*/parsergen/.* -Xep:ReferenceEquality:OFF -Xep:FutureReturnValueIgnored:OFF -Xep:JdkObsolete:OFF -Xep:EqualsGetClass:OFF -Xep:UndefinedEquals:OFF -Xep:BadImport:OFF -Xep:AnnotateFormatMethod:OFF -Xep:JavaUtilDate:OFF -Xep:DoNotCallSuggester:OFF -Xep:BanSerializableRead:OFF -Xep:RestrictedApiChecker:OFF -Xep:InlineMeSuggester:OFF" unless:set="noErrorProne"/> 253 <compilerarg line="-Xmaxwarns 1000"/> 254 <compilerarg value="-Xplugin:semanticdb -sourceroot:@{srcdir} -targetroot:${build.dir}/semanticdb" if:set="lsif" /> 255 <classpath> 256 <path refid="runtime.path"/> 257 <cp-elements/> 258 </classpath> 259 </javac> 260 </sequential> 261 </macrodef> 262 <macrodef name="call-javac-compile-mrjar"> 263 <!-- 264 See https://openjdk.java.net/jeps/238 for the specification 265 The big bits are that the version specific files should be in META-INF/versions/${javaVersion}/ 266 using the same package scheme. And that the files in the version specific directories are *full* 267 implementations of the class they are replacing. 268 --> 269 <attribute name="release"/> 270 <sequential> 271 <condition property="java@{release}DirExists"> 272 <and> 273 <isset property="isJava@{release}"/> 274 <resourceexists> 275 <file file="${src.dir}/main/java-@{release}"/> 276 </resourceexists> 277 </and> 278 </condition> 279 <echo message="Compiling Java @{release} files" if:true="${java@{release}DirExists}"/> 280 <mkdir dir="${build.dir}/META-INF/versions/@{release}" if:true="${java@{release}DirExists}"/> 281 <call-javac-compile srcdir="${src.dir}/main/java-@{release}" destdir="${build.dir}/META-INF/versions/@{release}" release="@{release}" if:true="${java@{release}DirExists}"> 282 <cp-elements> 283 <pathelement path="${build.dir}"/> 284 </cp-elements> 285 </call-javac-compile> 286 </sequential> 287 </macrodef> 205 288 <target name="compile" depends="init,javacc" unless="compile.notRequired" description="Compile JOSM"> 206 289 <ivy:cachepath log="download-only" file="${tools.ivy}" pathid="errorprone.classpath" conf="errorprone"/> 207 290 <ivy:cachepath log="download-only" file="${tools.ivy}" pathid="errorprone_javac.classpath" conf="errorprone_javac"/> 208 291 <!-- JOSM --> 292 <call-javac-compile excludes="**/package-info.java,**/module-info.java,main/**" release="${java.lang.version}"/> 293 <!-- Java 11 specific files (2018-09 LTS) --> 294 <call-javac-compile-mrjar release="11"/> 295 <!-- Java 17 specific files (2021-09 LTS) --> 296 <call-javac-compile-mrjar release="17"/> 297 <!-- Java 18 specific files --> 298 <call-javac-compile-mrjar release="18"/> 299 <!-- Java 19 specific files --> 300 <call-javac-compile-mrjar release="19"/> 301 <!-- Java 20 specific files --> 302 <call-javac-compile-mrjar release="20"/> 303 <!-- Java 21 specific files (2023-09 LTS) --> 304 <call-javac-compile-mrjar release="21"/> 209 305 <javac sourcepath="" srcdir="${src.dir}" fork="yes" 210 306 excludes="com/**,org/apache/commons/**,**/package-info.java"
Note:
See TracChangeset
for help on using the changeset viewer.