-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.xml
143 lines (120 loc) · 4.7 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
133
134
135
136
137
138
139
140
141
142
143
<project name="Ceylon Swarm" default="install">
<property environment="env"/>
<condition property="ceylon.home" value="${env.CEYLON_HOME}" else="../ceylon/dist/dist">
<isset property="env.CEYLON_HOME" />
</condition>
<property name="ceylon.ant.lib" value="${ceylon.home}/lib/ceylon-ant.jar"/>
<property file="build.properties" />
<property name="ceylon.verbosity" value="false"/>
<property name="ceylon.executable" location="${ceylon.home}/bin/ceylon"/>
<property name="out.repo" location="${basedir}/modules"/>
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="${ceylon.libs.dir}/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
<!-- Local repository -->
<property name="ceylon.repo.dir" location="${user.home}/.ceylon/repo" />
<path id="ant-tasks">
<pathelement location="${ceylon.ant.lib}"/>
</path>
<target name="ceylondefs" unless="ceylondefined">
<property name="ceylondefined" value="true" />
<typedef resource="com/redhat/ceylon/ant/antlib.xml" classpathref="ant-tasks"/>
<reposet id="ceylon.repo">
<repo url="${ceylon.repo.dir}"/>
</reposet>
<moduleset id="modules.source">
<module name="ceylon.swarm"/>
</moduleset>
</target>
<target name="clean"
description="Deletes the test-modules and modules directories">
<delete dir="${out.repo}"/>
</target>
<target name="compile" depends="ceylondefs"
description="Compiles the Ceylon Swarm">
<ceylon-compile
verbose="${ceylon.verbosity}"
encoding="UTF-8"
pack200="true"
out="${out.repo}"
fork="true">
<reposet refid="ceylon.repo"/>
<moduleset refid="modules.source"/>
</ceylon-compile>
</target>
<target name="doc" depends="ceylondefs"
description="Documents the Swarm module">
<ceylon-doc
includesourcecode="true"
nomtimecheck="true"
encoding="UTF-8"
fork="true">
<moduleset refid="modules.source"/>
<linkset>
<link pattern="ceylon" url="https://modules.ceylon-lang.org/repo/1/"/>
</linkset>
</ceylon-doc>
</target>
<target name="publish" depends="compile,scripts,publish-quick"
description="Copies the swarm modules to the user's repository"/>
<target name="publish-quick"
description="Compiles and copies the swarm modules to the user's repository">
<copy todir="${ceylon.repo.dir}" overwrite="true">
<fileset dir="${out.repo}">
<include name="ceylon/swarm/**"/>
</fileset>
</copy>
</target>
<target name="publish-herd" depends="ceylondefs">
<fail message="Please specify a target Herd upload repo url with -Dherd.repo=..." unless="herd.repo"/>
<fail message="Please specify a target Herd user name with -Dherd.user=..." unless="herd.user"/>
<fail message="Please specify a target Herd password with -Dherd.pass=..." unless="herd.pass"/>
<ceylon-compile
verbose="${ceylon.verbosity}"
out="${herd.repo}"
user="${herd.user}"
pass="${herd.pass}"
encoding="UTF-8"
fork="true">
<moduleset refid="modules.source"/>
</ceylon-compile>
<ceylon-doc
includesourcecode="true"
nomtimecheck="true"
out="${herd.repo}"
user="${herd.user}"
pass="${herd.pass}"
encoding="UTF-8"
fork="true">
<moduleset refid="modules.source"/>
<rep url="https://modules.ceylon-lang.org/repo/1/"/>
<linkset>
<link pattern="ceylon" url="https://modules.ceylon-lang.org/repo/1/"/>
</linkset>
</ceylon-doc>
<ceylon-plugin mode="pack"
out="${herd.repo}"
user="${herd.user}"
pass="${herd.pass}"
fork="true">
<moduleset refid="modules.source"/>
</ceylon-plugin>
</target>
<target name="scripts" depends="ceylondefs">
<ceylon-plugin mode="pack"
out="${out.repo}"
fork="true">
<moduleset refid="modules.source"/>
</ceylon-plugin>
</target>
<target name="install" depends="publish">
<ceylon-plugin
mode="install" force="true"
out="${out.repo}"
fork="true">
<moduleset refid="modules.source"/>
</ceylon-plugin>
</target>
</project>