diff options
Diffstat (limited to 'build.xml')
| -rw-r--r-- | build.xml | 145 |
1 files changed, 38 insertions, 107 deletions
@@ -1,12 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<project - name="mai" - default="build" - basedir="." - xmlns:ivy="antlib:org.apache.ivy.ant"> +<project name="mai" default="build" basedir="."> <!-- Project --> + <property name="src.dir" value="${basedir}/src"/> <property name="test.dir" value="${basedir}/test"/> @@ -15,57 +12,23 @@ <property name="test.classes.dir" value="${build.dir}/test-classes"/> <property name="test.results.dir" value="${build.dir}/test-results"/> <property name="dist.dir" value="${build.dir}/dist"/> - <property name="deps.dir" value="${build.dir}/deps"/> - - <!-- Bootstrap tools --> - <property name="tools.dir" value="${basedir}/.tools"/> - <!-- Java --> - <property name="java.release" value="25"/> + <!-- Entry points --> - <!-- Ivy --> - <property name="ivy.version" value="2.6.0"/> - <property - name="ivy.jar" - value="${tools.dir}/ivy-${ivy.version}.jar"/> - - <property - name="ivy.url" - value="https://repo.maven.apache.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"/> - - <!-- Application --> <property name="main.class" value="moe.anita.mai.Main"/> - <property name="jar.file" value="${dist.dir}/mai.jar"/> - <!-- Ivy bootstrap --> + <property name="test.main.class" value="moe.anita.mai.test.TestRunner"/> - <target name="check-ivy"> - <available - file="${ivy.jar}" - property="ivy.available"/> - </target> + <property name="jar.file" value="${dist.dir}/mai.jar"/> - <target - name="download-ivy" - depends="check-ivy" - unless="ivy.available"> + <!-- Bootstrap tools --> - <mkdir dir="${tools.dir}"/> + <property name="tools.dir" value="${basedir}/.tools"/> - <echo message="Downloading Apache Ivy ${ivy.version}..."/> + <!-- Java --> - <get - src="${ivy.url}" - dest="${ivy.jar}" - usetimestamp="true"/> - </target> + <property name="java.release" value="25"/> - <target name="bootstrap-ivy" depends="download-ivy"> - <taskdef - resource="org/apache/ivy/ant/antlib.xml" - uri="antlib:org.apache.ivy.ant" - classpath="${ivy.jar}"/> - </target> <!-- Initialization --> @@ -74,26 +37,8 @@ <mkdir dir="${test.classes.dir}"/> <mkdir dir="${test.results.dir}"/> <mkdir dir="${dist.dir}"/> - <mkdir dir="${deps.dir}"/> - </target> - - <!-- Dependencies --> - - <target name="resolve" depends="init,bootstrap-ivy"> - <ivy:resolve file="${basedir}/ivy.xml"/> - - <ivy:retrieve - conf="test" - pattern="${deps.dir}/test/[artifact]-[revision].[ext]"/> </target> - <path id="test.classpath"> - <pathelement location="${classes.dir}"/> - - <fileset dir="${deps.dir}/test"> - <include name="*.jar"/> - </fileset> - </path> <!-- Compile --> @@ -107,7 +52,7 @@ debug="true"/> </target> - <target name="compile-test" depends="compile,resolve"> + <target name="compile-test" depends="compile"> <javac srcdir="${test.dir}" destdir="${test.classes.dir}" @@ -116,36 +61,37 @@ includeantruntime="false" debug="true"> - <classpath refid="test.classpath"/> + <classpath> + <pathelement location="${classes.dir}"/> + </classpath> </javac> </target> - <!-- Tests --> + + <!-- Test --> <target name="test" depends="compile-test"> - <junitlauncher - haltOnFailure="true" - printSummary="true"> + <java + classname="${test.main.class}" + fork="true" + failonerror="true"> <classpath> <pathelement location="${classes.dir}"/> <pathelement location="${test.classes.dir}"/> - - <fileset dir="${deps.dir}/test"> - <include name="*.jar"/> - </fileset> </classpath> - <testclasses outputdir="${test.results.dir}"> - <fileset dir="${test.classes.dir}"> - <include name="**/*Test.class"/> - </fileset> + <!-- Enable Java assert statements. --> + <jvmarg value="-ea"/> - <listener type="legacy-plain"/> - </testclasses> - </junitlauncher> + <!-- TestRunner scans this directory for @Runner classes. --> + <sysproperty + key="mai.test.classes" + value="${test.classes.dir}"/> + </java> </target> + <!-- JAR --> <target name="jar" depends="compile"> @@ -164,12 +110,14 @@ </jar> </target> + <!-- Build --> <target name="build" depends="jar"> <echo message="Built ${jar.file}"/> </target> + <!-- Run --> <target name="run" depends="compile"> @@ -184,9 +132,10 @@ </java> </target> + <!-- LSP / JDT LS --> - <target name="lsp" depends="resolve"> + <target name="lsp"> <echo message="Generating JDT LS project files..."/> <echo file="${basedir}/.project"><![CDATA[<?xml version="1.0" encoding="UTF-8"?> @@ -213,37 +162,16 @@ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> -]]></echo> - - <fileset id="lsp.dependencies" dir="${deps.dir}/test"> - <include name="*.jar"/> - </fileset> - - <pathconvert - property="lsp.dependency.entries" - refid="lsp.dependencies" - pathsep=" "> - - <mapper> - <globmapper - from="${basedir}/*" - to=" <classpathentry kind="lib" path="*"/>"/> - </mapper> - </pathconvert> - - <echo - file="${basedir}/.classpath" - append="true">${lsp.dependency.entries} -</echo> - - <echo file="${basedir}/.classpath" append="true"><![CDATA[ - <classpathentry kind="output" path="build/classes"/> + <classpathentry + kind="output" + path="build/classes"/> </classpath> ]]></echo> <echo message="Generated .project and .classpath"/> </target> + <!-- Clean --> <target name="clean"> @@ -260,6 +188,9 @@ <delete dir="${tools.dir}"/> </target> + + <!-- Rebuild --> + <target name="rebuild" depends="clean,build"/> </project> |
