diff options
Diffstat (limited to 'buildScripts')
37 files changed, 2160 insertions, 542 deletions
diff --git a/buildScripts/build-support.ant.xml b/buildScripts/build-support.ant.xml new file mode 100644 index 00000000..107f5f47 --- /dev/null +++ b/buildScripts/build-support.ant.xml @@ -0,0 +1,113 @@ +<!-- + Copyright (C) 2010-2020 The Project Lombok Authors. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +--> +<project name="lombok.build-support" default="dist" xmlns:ivy="antlib:com.zwitserloot.ivyplusplus" basedir=".."> + <description> +This buildfile is part of projectlombok.org. It is responsible for tasks that help with setting up the build infrastructure. +None of these tasks are normally needed, unless modifying how the build works, such as updating dependencies. + </description> + + <condition property="executable.suffix" value=".exe" else=""> + <os family="windows" /> + </condition> + + <condition property="java_home.exe" value="/usr/libexec/java_home"> + <os family="mac" /> + </condition> + + <target name="-ask.target-jdk.via-javahome" if="java_home.exe" unless="target.jdk"> + <input addproperty="target.jdk.ver">You need to specify the JDK9+ jdk whose jdk.compiler and java.compiler modules are to be converted. Use -Dtarget.jdk.ver=14 to automate this, or type a version in now (for example: 11):</input> + <condition property="target.jdk.ver.missing" value="true"> + <equals arg1="${target.jdk.ver}" arg2="" trim="true" /> + </condition> + <fail if="target.jdk.ver.missing">Aborted (no version entered)</fail> + <exec executable="${java_home.exe}" outputproperty="target.jdk" failonerror="true"> + <arg value="-v" /> + <arg value="${target.jdk.ver}" /> + </exec> + <echo>Using VM at: ${target.jdk}</echo> + </target> + + <target name="-ask.target-jdk" depends="-ask.target-jdk.via-javahome" unless="target.jdk"> + <input addproperty="target.jdk">You need to specify the JDK9+ jdk whose jdk.compiler and java.compiler modules are to be converted. Run ant with -Dtarget.jdk=/full/path/here to automate this, or type the path in now (for example: /Library/JavaVirtualMachines/jdk-14.jdk/Contents/Home):</input> + </target> + + <target name="make.javac-patch-jar" depends="-ask.target-jdk" description="to test javac13 on JDK14, for example, you need a jar (not a jmod), to use with --patch-modules. This task makes those."> + <exec executable="${target.jdk}/bin/java${executable.suffix}" outputproperty="target.javac.version.full" errorproperty="target.javac.version.err"> + <arg value="--version" /> + </exec> + <condition property="target.javac.tooearly" > + <contains string="${target.javac.version.err}" substring="Unrecognized option" /> + </condition> + <fail if="target.javac.tooearly">This tool converts javac as stored in jmods of JDK distributions; JDK8 and below doesn't ship like that, and you don't need this for 8 and below.</fail> + + <delete dir="build/jdk-compiler-jar" quiet="true" /> + <mkdir dir="build/jdk-compiler-jar" /> + <echo file="build/jdk-compiler-jar/version.txt">${target.javac.version.full}</echo> + <copy file="build/jdk-compiler-jar/version.txt" tofile="build/jdk-compiler-jar/shortversion.txt" /> + <replaceregexp file="build/jdk-compiler-jar/version.txt" match="^openjdk ([^ ]+) (\d{4}-\d{2}-\d{2}).*$" replace="\1_\2" flags="si" /> + <replaceregexp file="build/jdk-compiler-jar/shortversion.txt" match="^openjdk ([^ ]+) (\d{4}-\d{2}-\d{2}).*$" replace="\1" flags="si" /> + <loadfile property="target.javac.version" srcfile="build/jdk-compiler-jar/version.txt" /> + <loadfile property="target.javac.shortversion" srcfile="build/jdk-compiler-jar/shortversion.txt" /> + + <mkdir dir="build/jdk-compiler-jar/java.compiler" /> + <exec executable="${target.jdk}/bin/jmod${executable.suffix}"> + <arg value="--dir" /> + <arg file="build/jdk-compiler-jar/java.compiler" /> + <arg value="extract" /> + <arg file="${target.jdk}/jmods/java.compiler.jmod" /> + </exec> + <jar destfile="build/javac${target.javac.version}-java.compiler.jar" index="true"> + <fileset dir="build/jdk-compiler-jar/java.compiler/classes" /> + <fileset dir="build/jdk-compiler-jar/java.compiler/legal" /> + </jar> + + <mkdir dir="build/jdk-compiler-jar/jdk.compiler" /> + <exec executable="${target.jdk}/bin/jmod${executable.suffix}"> + <arg value="--dir" /> + <arg file="build/jdk-compiler-jar/jdk.compiler" /> + <arg value="extract" /> + <arg file="${target.jdk}/jmods/jdk.compiler.jmod" /> + </exec> + <jar destfile="build/javac${target.javac.version}-jdk.compiler.jar" index="true"> + <fileset dir="build/jdk-compiler-jar/jdk.compiler/classes" /> + <fileset dir="build/jdk-compiler-jar/jdk.compiler/legal" /> + </jar> + + <tstamp> + <format property="target.javac.pubstamp" pattern="yyyyMMddHHmmss" /> + </tstamp> + <echo file="buildScripts/ivy-repo/net.java.openjdk.custom-javac${target.javac.shortversion}-${target.javac.version}.xml"><ivy-module version="2.0"> + <info organisation="net.java.openjdk.custom" module="javac${target.javac.shortversion}" revision="${target.javac.version}" publication="${target.javac.pubstamp}"> + <license name="GNU General Public License v2 with Classpath Exception" url="https://openjdk.java.net/legal/gplv2+ce.html" /> + <description homepage="https://openjdk.java.net" /> + </info> + <configurations> + <conf name="runtime" /> + </configurations> + <publications> + <artifact name="javac${target.javac.shortversion}-java.compiler" conf="runtime" url="https://projectlombok.org/ivyrepo/langtools/javac${target.javac.version}-java.compiler.jar" /> + <artifact name="javac${target.javac.shortversion}-jdk.compiler" conf="runtime" url="https://projectlombok.org/ivyrepo/langtools/javac${target.javac.version}-jdk.compiler.jar" /> + </publications> +</ivy-module></echo> + <echo>File build/javac${target.javac.version}-java.compiler.jar and build/javac${target.javac.version}-jdk.compiler.jar are available for upload; custom ivy target made as GAV net.java.openjdk.custom::javac${target.javac.shortversion}::${target.javac.version}</echo> + </target> +</project> diff --git a/buildScripts/compile.ant.xml b/buildScripts/compile.ant.xml new file mode 100644 index 00000000..a68d6dc1 --- /dev/null +++ b/buildScripts/compile.ant.xml @@ -0,0 +1,309 @@ +<!-- + Copyright (C) 2020 The Project Lombok Authors. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +--> +<project name="lombok.compile" default="dist" xmlns:ivy="antlib:com.zwitserloot.ivyplusplus" basedir=".."> + <description> +This buildfile is part of projectlombok.org. It takes care of compiling and building lombok itself. + </description> + + <property name="mapstruct-binding.version" value="0.1.0" /> + + <!-- compiles just 'version.java' and runs the produced class file, setting up the various version properties --> + <target name="version" depends="ipp.setup, deps.jdk-runtime" description="Shows the version number" unless="lombok.version"> + <mkdir dir="build/lombok" /> + <ivy:compile destdir="build/lombok" source="1.5" target="1.5" ecj="true" nowarn="true"> + <bootclasspath path="${jdk-rt.loc}" /> + <src path="src/core" /> + <include name="lombok/core/Version.java" /> + </ivy:compile> + <java + classname="lombok.core.Version" + classpath="build/lombok" + failonerror="true" + output="build/version.txt"> + <arg value="full" /> + </java> + <ivy:loadversion property="lombok.fullversion" file="build/version.txt" /> + <java + classname="lombok.core.Version" + classpath="build/lombok" + failonerror="true" + output="build/version.txt" /> + <ivy:loadversion property="lombok.version" file="build/version.txt" /> + <echo level="info">Lombok version: ${lombok.version} (${lombok.fullversion})</echo> + </target> + + <target name="compile" depends="version, deps" description="Compiles the code"> + <!-- + 1. Compile stubs. + 2. Compile lombok-utils. + 3. Compile transplants. + 4. Compile lombok. + 5. Run SPI processor. + 6. Create other manifest entries. --> + + <!-- + ant includes the destination dir on the classpath (and there are good reasons to do this), but that also means + the bleeding edge lombok from the previous build is run (as lombok is an annotation processor), which means if + there are bugs in it, you can't compile anymore until you 'ant clean'. That's very undesirable. so we kill the processor, + which stops lombok from running. We re-create the file at the end of this target. --> + <delete file="build/lombok/META-INF/services/javax.annotation.processing.Processor" quiet="true" /> + + <!-- + first, compile stubs. Lombok needs to produce class files that run in a wide variety of JDK, javac, and ecj/eclipse versions. + Instead of depending on conflicting versions, we write stub files; just enough for compilation to succeed. + + However, the stubs themselves also have a ton of dependencies; to avoid _that_, we have stubs for stubs, too! --> + <ivy:compile destdir="build/stubsstubs" source="1.5" target="1.5" ecj="true"> + <bootclasspath path="${jdk-rt.loc}" /> + <src path="src/stubsstubs" /> + </ivy:compile> + <ivy:compile destdir="build/stubs" source="1.5" target="1.5" ecj="true"> + <bootclasspath path="${jdk-rt.loc}" /> + <src path="src/stubs" /> + <src path="src/javac-only-stubs" /> + <classpath location="build/stubsstubs" /> + <classpath location="build/stubs" /> + </ivy:compile> + + <!-- + compile the eclipse agent's transplant sources. + This is code that is not actually run within lombok; it is bytecode that the eclipse agent extracts from the class file + within its own jar and injects it into the eclipse classes as a patch. + + To keep the project clean of warnings, a few SuppressWarnings have been added, but we don't want them there during compilation, + so remove them first. + + For legacy eclipse support we include them in both class file format 48 (java 1.4) and 50 (java 1.6), though in practice + we don't support eclipses that run on anything below java 1.8 anymore. --> + <mkdir dir="build/transformedSources" /> + <copy todir="build/transformedSources"> + <fileset dir="src/eclipseAgent"> + <include name="**/*Transplants.java" /> + </fileset> + <filterchain> + <lineContainsRegExp negate="true"> + <regexp pattern="^\s*@SuppressWarnings.*$" /> + </lineContainsRegExp> + </filterchain> + </copy> + + <ivy:compile destdir="build/lombok" source="1.4" target="1.4" ecj="true"> + <bootclasspath location="build/stubs" /> + <bootclasspath path="${jdk-rt.loc}" /> + <src path="build/transformedSources" /> + </ivy:compile> + + <ivy:compile destdir="build/lombok/Class50" source="1.4" target="1.6" ecj="true"> + <bootclasspath location="build/stubs" /> + <bootclasspath path="${jdk-rt.loc}" /> + <src path="build/transformedSources" /> + </ivy:compile> + + <ivy:compile destdir="build/lombok" source="1.5" target="1.5" ecj="true"> + <bootclasspath location="build/stubs" /> + <bootclasspath path="${jdk-rt.loc}" /> + <src path="src/utils" /> + <exclude name="lombok/javac/**" /> + <classpath path="build/lombok" /> + <classpath refid="cp.javac6" /> + <classpath refid="cp.ecj8" /> + </ivy:compile> + <ivy:compile destdir="build/lombok" source="1.6" target="1.6" ecj="true"> + <bootclasspath location="build/stubs" /> + <bootclasspath path="${jdk-rt.loc}" /> + <src path="src/utils" /> + <include name="lombok/javac/**" /> + <classpath location="build/lombok" /> + <classpath refid="cp.javac6" /> + </ivy:compile> + + <!-- + compile lombok proper. We target java 1.6 to be as compatible with older releases as we can, using a JDK6 boot rt to ensure we don't + use API that didn't exist in those versions yet. --> + <ivy:compile destdir="build/lombok" source="1.6" target="1.6" ecj="true" nowarn="true"> + <bootclasspath location="build/stubs" /> + <bootclasspath path="${jdk-rt.loc}" /> + <src path="src/launch" /> + <src path="src/core" /> + <src path="src/installer" /> + <src path="src/eclipseAgent" /> + <src path="src/delombok" /> + <exclude name="**/*Transplants.java" /> + <classpath location="build/lombok" /> + <classpath refid="cp.build" /> + <classpath refid="cp.eclipse-oxygen" /> + <classpath refid="cp.javac6" /> + </ivy:compile> + + <!-- This is really part of the eclipse agent, but references lombok, so that had to be compiled first --> + <ivy:compile destdir="build/lombok/Class50" source="1.5" target="1.6" ecj="true"> + <bootclasspath location="build/stubs" /> + <bootclasspath path="${jdk-rt.loc}" /> + <src path="src/eclipseAgent" /> + <include name="lombok/launch/PatchFixesHider.java" /> + <classpath location="build/lombok" /> + <classpath refid="cp.build" /> + <classpath refid="cp.eclipse-oxygen" /> + </ivy:compile> + + <!-- + a couple of classes to cater to the bits of javac8+ that require j8 language constructs/API types; the main lombok + compile refers to these via reflection --> + <ivy:compile destdir="build/lombok" source="1.8" target="1.8" ecj="true" nowarn="true" includesystembootclasspath="true"> + <bootclasspath location="build/stubs" /> + <src path="src/core8" /> + <classpath location="build/lombok" /> + <classpath refid="cp.javac8" /> + </ivy:compile> + + <!-- + We also act as a jigsaw module so that module-based compile runs can use module-style dependency management. Obviously, + that bit we can only compile with jdk9+. --> + <ivy:compile destdir="build/lombok" release="9"> + <src path="src/core9" /> + <compilerarg value="-Xlint:none" /> + <classpath location="build/lombok" /> + <classpath refid="cp.build" /> + </ivy:compile> + + <!-- Run the SPI processor to create the services files listing all lombok handlers --> + <delete dir="build/lombok-proc-result" quiet="true" /> + <ivy:compile destdir="build/lombok-proc-result" release="9" nowarn="true"> + <classpath location="build/stubs" /> + <compilerarg value="-proc:only" /> + <compilerarg value="-processor" /> + <compilerarg value="org.mangosdk.spi.processor.SpiProcessor" /> + <src path="src/core" /> + <src path="src/installer" /> + <src path="src/eclipseAgent" /> + <src path="src/delombok" /> + <classpath location="build/lombok" /> + <classpath refid="cp.build" /> + <classpath refid="cp.javac6" /> + <classpath refid="cp.eclipse-oxygen" /> + </ivy:compile> + + <copy todir="build/lombok"> + <fileset dir="build/lombok-proc-result"> + <include name="META-INF/services/*" /> + </fileset> + </copy> + + <mkdir dir="build/lombok/META-INF" /> + <mkdir dir="build/lombok/META-INF/services" /> + <echo file="build/lombok/META-INF/services/javax.annotation.processing.Processor">lombok.launch.AnnotationProcessorHider$AnnotationProcessor +lombok.launch.AnnotationProcessorHider$ClaimingProcessor</echo> + <mkdir dir="build/lombok/META-INF/gradle" /> + <echo file="build/lombok/META-INF/gradle/incremental.annotation.processors">lombok.launch.AnnotationProcessorHider$AnnotationProcessor,isolating +lombok.launch.AnnotationProcessorHider$ClaimingProcessor,isolating</echo> + </target> + + <!-- compiles the bit of API from mapstruct that lombok compiles against. --> + <target name="mapstruct.compile"> + <mkdir dir="build/mapstruct" /> + <ivy:compile destdir="build/mapstruct" release="9"> + <src path="src/j9stubs" /> + </ivy:compile> + <mkdir dir="build/lombok/secondaryLoading.SCL.lombok/org/mapstruct/ap/spi" /> + <move + file="build/mapstruct/org/mapstruct/ap/spi/AstModifyingAnnotationProcessor.class" + tofile="build/lombok/secondaryLoading.SCL.lombok/org/mapstruct/ap/spi/AstModifyingAnnotationProcessor.SCL.lombok" /> + </target> + + <target name="-deps.unpack" depends="deps"> + <ivy:cachedunjar dest="build/lombok" marker="build/unpackDeps.marker"> + <path refid="cp.stripe" /> + </ivy:cachedunjar> + </target> + + <target name="dist" depends="version, compile, latest-changes.build, mapstruct.compile, -deps.unpack" description="Builds the 'everything' lombok.jar"> + <mkdir dir="dist" /> + <copy file="doc/changelog.markdown" tofile="build/changelog.txt" /> + <tstamp><format property="release.timestamp" pattern="yyyy-MM-dd" /></tstamp> + <echo file="release-timestamp.txt">${release.timestamp}</echo> + + <!-- the ant jar task doesn't quite let us do all we need to, so build with zip, then do the jar bits afterwards --> + <zip destfile="dist/lombok-${lombok.version}.jar"> + <fileset dir="build" includes="changelog.txt, latestchanges.html" /> + <fileset dir="." includes="README.md, LICENSE, AUTHORS, release-timestamp.txt" /> + + <!-- + most class files that need to be in the lombok distro are loaded in a separate class loader; + we want any project that includes lombok.jar as a dependency to NOT get a bunch of otherwise public + lombok classes served up in autocomplete dialogs, amongst other reasons. + + Thus, we list here only the few class files that serve as 'entry points'. --> + <fileset dir="build/lombok"> + <include name="module-info.class" /> + <include name="lombok/*.class" /> + <include name="lombok/experimental/**" /> + <include name="lombok/extern/**" /> + <include name="lombok/launch/**" /> + <include name="lombok/delombok/ant/Tasks*" /> + <include name="lombok/javac/apt/Processor.class" /> + <include name="lombok/META-INF/**" /> + </fileset> + + <!-- now include everything else but renamed for the shadowloader system, to make these clsases invisible to other projects. --> + <mappedresources> + <fileset dir="build/lombok"> + <exclude name="com/sun/tools/javac/**" /> + <exclude name="module-info.class" /> + <exclude name="lombok/*.class" /> + <exclude name="lombok/experimental/**" /> + <exclude name="lombok/extern/**" /> + <exclude name="lombok/launch/**" /> + <exclude name="lombok/delombok/ant/Tasks*" /> + <exclude name="lombok/javac/apt/Processor.class" /> + <exclude name="lombok/META-INF/**" /> + </fileset> + <firstmatchmapper> + <globmapper from="*.class" to="*.SCL.lombok" /> + <identitymapper /> + </firstmatchmapper> + </mappedresources> + </zip> + + <!-- ... but manifest is not part of the ant zip task, so do that with the jar task --> + <jar destfile="dist/lombok-${lombok.version}.jar" update="true"> + <manifest> + <attribute name="Premain-Class" value="lombok.launch.Agent" /> + <attribute name="Agent-Class" value="lombok.launch.Agent" /> + <attribute name="Can-Redefine-Classes" value="true" /> + <attribute name="Main-Class" value="lombok.launch.Main" /> + <attribute name="Lombok-Version" value="${lombok.version}" /> + </manifest> + </jar> + <delete file="release-timestamp.txt" /> + <symlink overwrite="true" link="dist/lombok.jar" resource="lombok-${lombok.version}.jar" /> + <property name="lombok.dist.built" value="true" /> + </target> + + <target name="compile.support" depends="ipp.setup, deps" description="Compiles code that is used solely by the build, such as website and IDE project creation"> + <ivy:compile includeDestClasses="false" includeantruntime="false" destdir="build/support" debug="on" source="1.8" target="1.8"> + <compilerarg value="-proc:none" /> + <compilerarg value="-Xlint:-options" /> + <classpath refid="cp.buildtools" /> + <src path="src/support" /> + </ivy:compile> + </target> +</project> diff --git a/buildScripts/create-eclipse-project.ant.xml b/buildScripts/create-eclipse-project.ant.xml new file mode 100644 index 00000000..93eed3b0 --- /dev/null +++ b/buildScripts/create-eclipse-project.ant.xml @@ -0,0 +1,182 @@ +<!-- + Copyright (C) 2010-2020 The Project Lombok Authors. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +--> +<project name="lombok.create-eclipse-project" default="" xmlns:ivy="antlib:com.zwitserloot.ivyplusplus" basedir=".."> + <description> +This buildfile is part of projectlombok.org. It creates the infrastructure needed to develop lombok on eclipse. + </description> + + <target name="eclipse" depends="eclipse.projectfiles, eclipse.testtarget.default" description="Downloads dependencies, create eclipse project files, as well as debug/run test targets. Open this directory as project in eclipse (via import... existing projects)" /> + + <target name="eclipse.projectfiles" depends="deps"> + <ivy:eclipsegen source="1.6"> + <srcdir dir="src/core" /> + <srcdir dir="src/core8" /> + <srcdir dir="src/launch" /> + <srcdir dir="src/utils" /> + <srcdir dir="src/eclipseAgent" /> + <srcdir dir="src/installer" /> + <srcdir dir="src/delombok" /> + <srcdir dir="src/stubs" /> + <srcdir dir="src/testAP" /> + <srcdir dir="src/support" /> + <srcdir dir="experimental/src" /> + <srcdir dir="test/transform/src" /> + <srcdir dir="test/core/src" /> + <srcdir dir="test/bytecode/src" /> + <srcdir dir="test/configuration/src" /> + <srcdir dir="test/stubs" /> + <conf name="build" sources="sources" /> + <conf name="javac6" sources="sources" /> + <conf name="eclipse-oxygen" sources="sources" /> + <conf name="test" sources="sources" /> + <conf name="buildtools" sources="sources" /> + <local org="org.projectlombok" name="lombok.patcher" dir="../lombok.patcher" /> + <settings> + <url url="https://projectlombok.org/downloads/lombok.eclipse.settings" /> + </settings> + <apt location="lib/build/projectlombok.org-spi.jar" /> + </ivy:eclipsegen> + </target> + + <target name="eclipse.testtarget.default" depends="deps, compile.support"> + <property name="cp.test" refid="cp.test" /> + <property name="cp.stripe" refid="cp.stripe" /> + <property name="cp.eclipse-202006" refid="cp.eclipse-202006" /> + + <java classname="lombok.eclipseCreate.CreateEclipseDebugTarget" failonerror="true"> + <classpath> + <path refid="cp.buildtools" /> + <pathelement location="build/support" /> + </classpath> + <arg value="name=Lombok-test Base" /> + <arg value="testType=lombok.TestBase" /> + <arg value="jvmTarget=1.8" /> + <arg value="conf.test=${cp.test}" /> + <arg value="conf.stripe=${cp.stripe}" /> + <arg value="favorite" /> + </java> + + <java classname="lombok.eclipseCreate.CreateEclipseDebugTarget" failonerror="true"> + <classpath> + <path refid="cp.buildtools" /> + <pathelement location="build/support" /> + </classpath> + <arg value="name=Lombok-test Eclipse-202006" /> + <arg value="testType=lombok.TestEclipse" /> + <arg value="jvmTarget=1.8" /> + <arg value="conf.test=${cp.test}" /> + <arg value="conf.stripe=${cp.stripe}" /> + <arg value="conf.eclipse-oxygen=${cp.eclipse-202006}" /> + <arg value="favorite" /> + </java> + + <java classname="lombok.eclipseCreate.CreateEclipseDebugTarget" failonerror="true"> + <classpath> + <path refid="cp.buildtools" /> + <pathelement location="build/support" /> + </classpath> + <arg value="name=Lombok-test Javac14" /> + <arg value="testType=lombok.TestJavac" /> + <arg value="jvmTarget=14" /> + <arg value="conf.test=${cp.test}" /> + <arg value="conf.stripe=${cp.stripe}" /> + <arg value="favorite" /> + </java> + </target> + + <target name="eclipse.testtarget.javac" depends="compile.support" description="Makes an eclipse launch target for running the tests for javac"> + <property name="cp.test" refid="cp.test" /> + <property name="cp.stripe" refid="cp.stripe" /> + + <input message="Which javac do you want to target? Enter a version, such as '11'." validargs="8,11,13,14,15" addproperty="testtarget.jvmTarget.input" /> + + <condition |
