<?xml version="1.0"?> <project name="Arduino PDE" default="build"> <path id="class.path"> <fileset dir="lib"> <include name="*.jar"/> </fileset> <pathelement path="${env.JAVA_HOME}/lib/tools.jar"/> <pathelement path="../arduino-core/arduino-core.jar"/> </path> <path id="class.path.test"> <path refid="class.path"/> <pathelement location="bin/"/> <fileset dir="test-lib"> <include name="*.jar"/> </fileset> </path> <target name="clean" description="Clean the build directories"> <delete dir="bin" /> <delete dir="test-bin" /> <delete file="pde.jar" /> </target> <target name="compile" description="Compile sources"> <condition property="core-built"> <available file="../arduino-core/arduino-core.jar" /> </condition> <fail unless="core-built" message="Please build the Arduino-core library first and make sure it sits in ../arduino-core/arduino-core.jar" /> <mkdir dir="bin" /> <!-- ant seems to nuke ${java.home} for some reason, pointing at the JRE subfolder instead of the actual JDK found at JAVA_HOME. To avoid this, we grab the actual JAVA_HOME environment variable and use that to specify the location of tools.jar. --> <!-- if someone is better with ant please help clean this up --> <property environment="env" /> <property name="java_home" value="${env.JAVA_HOME}" /> <condition property="linux"><os family="unix" /></condition> <fail if="linux" unless="java_home" message="The JAVA_HOME variable must be set to the location of a full JDK. For instance, on Ubuntu Linux, this might be /usr/lib/jvm/java-6-sun." /> <condition property="windows"><os family="windows" /></condition> <fail if="windows" unless="java_home" message="The JAVA_HOME variable must be set to the location of a full JDK. For instance, on Windows, this might be c:\jdk1.6.0_18." /> <condition property="work.dir" value="../build/macosx/work/Arduino.app/Contents/Java/"> <os family="mac"/> </condition> <condition property="java.additional.library.path" value="."> <os family="mac"/> </condition> <condition property="work.dir" value="../build/windows/work/"> <os family="windows"/> </condition> <condition property="java.additional.library.path" value="."> <os family="windows"/> </condition> <condition property="work.dir" value="../build/linux/work/"> <os family="unix"/> </condition> <condition property="java.additional.library.path" value="lib"> <os family="unix"/> </condition> <!-- <dirname property="blah" file="${java.home}" /> <echo message="here! ${java.home}/lib/tools.jar or there: ${blah}" /> <echo message="override ${env.JAVA_HOME}/lib/tools.jar" /> <fail /> --> <javac source="1.8" target="1.8" srcdir="src" destdir="bin" encoding="UTF-8" includeAntRuntime="false" debug="true" classpathref="class.path" /> </target> <target name="test" depends="compile" description="Runs the test"> <mkdir dir="test-bin"/> <javac source="1.8" target="1.8" srcdir="test" destdir="test-bin" encoding="UTF-8" includeAntRuntime="false" debug="true" classpathref="class.path.test"> </javac> <copy todir="test-bin" overwrite="true" verbose="true"> <fileset dir="test" includes="**/*.zip" /> <fileset dir="test" includes="**/*.txt" /> <fileset dir="test" includes="**/*.properties" /> <fileset dir="test" includes="**/*.ino" /> <fileset dir="test" includes="**/*.json*" /> <fileset dir="test" includes="**/*.key" /> <fileset dir="test" includes="**/*.hex" /> <fileset dir="test" includes="**/*.pac" /> </copy> <junit printsummary="yes" dir="${work.dir}" fork="true"> <jvmarg value="-Djava.library.path=${java.additional.library.path}"/> <jvmarg value="-DWORK_DIR=."/> <jvmarg value="-ea"/> <classpath> <pathelement location="bin"/> <pathelement location="test-bin"/> <path refid="class.path.test"/> </classpath> <formatter type="xml"/> <batchtest fork="yes" todir="test-bin"> <fileset dir="test"> <include name="**/*Test.java"/> <exclude name="**/Abstract*.java"/> </fileset> </batchtest> </junit> </target> <target name="build" depends="compile" description="Build PDE"> <jar basedir="bin" destfile="pde.jar" /> </target> </project>