summaryrefslogtreecommitdiff
path: root/build.xml
diff options
context:
space:
mode:
Diffstat (limited to 'build.xml')
-rw-r--r--build.xml145
1 files changed, 38 insertions, 107 deletions
diff --git a/build.xml b/build.xml
index f5d65bc..0e2400a 100644
--- a/build.xml
+++ b/build.xml
@@ -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="&#10;">
-
- <mapper>
- <globmapper
- from="${basedir}/*"
- to=" &lt;classpathentry kind=&quot;lib&quot; path=&quot;*&quot;/&gt;"/>
- </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>