forked from esp8266/Arduino
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.xml
132 lines (113 loc) · 4.45 KB
/
build.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?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.6" target="1.6"
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.6" target="1.6"
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" />
</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"/>
<pathelement path="../build/macosx/work/Arduino.app/Contents/Resources/Java/quaqua.jar"/>
<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>