Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1615 mhunt 1
<?xml version="1.0"?>
2
 
3
<project name="package-name" default="compile" basedir=".">
4
 
5
	<!-- Description should describe the build script, not the project.    -->
6
	<!-- Example: 'Build and release script for the [insert here] package. -->
7
	<description>Build and release script template for packages containing an API.</description>
8
 
9
	<taskdef resource="jats.properties"/>
10
 
11
	<!-- =================================================================== -->
12
	<!--  GLOBAL PROPERTIES                                                  -->
13
	<!-- =================================================================== -->
14
 
15
 
16
	<!-- =================================================================== -->
17
	<!--  PUBLIC TARGETS                                                     -->
18
	<!-- =================================================================== -->
19
 
20
	<!-- =================================================================== -->
21
	<target name="sandbox"
22
		description="Prepare the project dependency 'sandbox'.">
23
		<echo message="Prepare the project dependency 'sandbox'."/>
24
		<!-- [insert tasks here to prepare the implementation sandbox] -->
25
		<!-- eg:                                                       -->
26
		<!-- <jats>                                                    -->
27
		<!--   <sandbox name="dependency" version="1.2.3.mas"/>        -->
28
		<!--   <sandbox name="package-name-api" version="1.0.0.mas"/>  -->
29
		<!-- </jats>                                                   -->
30
	</target>
31
 
32
	<!-- =================================================================== -->
33
	<target name="sandbox-api"
34
		description="Prepare the project dependency 'sandbox' for the API.">
35
		<echo message="Prepare the project dependency 'sandbox' for the API."/>
36
		<!-- [insert tasks here to prepare the API sandbox]            -->
37
		<!-- eg:                                                       -->
38
		<!-- <jats>                                                    -->
39
		<!--   <sandbox name="dependency" version="1.2.3.mas"/>        -->
40
		<!-- </jats>                                                   -->
41
	</target>
42
 
43
	<!-- =================================================================== -->
44
	<target name="-compile">
45
		<echo message="Compile the project source."/>
46
		<!-- [insert tasks here to perform source compilation]         -->
47
	</target>
48
 
49
	<!-- =================================================================== -->
50
	<target name="compile" depends="sandbox,-compile"
51
		description="Compile the project source.">
52
		<echo message="Compile the project source."/>
53
		<!-- Task pulls in implementation sandbox and delegates to -compile -->
54
	</target>
55
 
56
	<!-- =================================================================== -->
57
	<target name="compile-api" depends="sandbox-api,-compile"
58
		description="Compile the project source.">
59
		<echo message="Compile the project source."/>
60
		<!-- Task pulls in API sandbox and delegates to -compile -->
61
	</target>
62
 
63
	<!-- =================================================================== -->
64
	<target name="package" depends="compile"
65
		description="Package the project into releasable entities.">
66
		<echo message="Package the project release entities."/>
67
		<!-- [insert tasks here to package implementation] -->
68
	</target>
69
 
70
	<!-- =================================================================== -->
71
	<target name="package-api" depends="compile-api"
72
		description="Package the project API into releasable entities.">
73
		<echo message="Package the project API release entities."/>
74
		<!-- [insert tasks here to package API] -->
75
	</target>
76
 
77
	<!-- =================================================================== -->
78
	<target name="test" depends=""
79
		description="Test the package using JUnit tests.">
80
		<echo message="Test the package."/>
81
		<!-- [insert tasks here to test implementation] -->
82
	</target>
83
 
84
	<!-- =================================================================== -->
85
	<target name="release-patch"
86
		description="Formally release this package as a patch release.">
87
		<property name="jants.jants.release.category" value="patch"/>
88
		<property name="jants.jants.release.api"      value=""/>
89
		<antcall target="-label"/>
90
	</target>
91
 
92
	<!-- =================================================================== -->
93
	<target name="release-minor"
94
		description="Formally release this package as a minor release.">
95
		<property name="jants.release.category" value="minor"/>
96
		<property name="jants.release.api"      value=""/>
97
		<antcall target="-label"/>
98
	</target>
99
 
100
	<!-- =================================================================== -->
101
	<target name="release-major"
102
		description="Formally release this package as a major release.">
103
		<property name="jants.release.category" value="major"/>
104
		<property name="jants.release.api"      value=""/>
105
		<antcall target="-label"/>
106
	</target>
107
 
108
	<!-- =================================================================== -->
109
	<target name="release-prompt"
110
		description="Formally release this package as a user-specified version.">
111
		<property name="jants.release.category" value="prompt"/>
112
		<property name="jants.release.api"      value=""/>
113
		<antcall target="-label"/>
114
	</target>
115
 
116
	<!-- =================================================================== -->
117
	<target name="release-patch-api"
118
		description="Formally release this package as a patch release.">
119
		<property name="jants.release.category" value="patch"/>
120
		<property name="jants.release.api"      value="-api"/>
121
		<antcall target="-label"/>
122
	</target>
123
 
124
	<!-- =================================================================== -->
125
	<target name="release-minor-api"
126
		description="Formally release this package as a minor release.">
127
		<property name="jants.release.category" value="minor"/>
128
		<property name="jants.release.api"      value="-api"/>
129
		<antcall target="-label"/>
130
	</target>
131
 
132
	<!-- =================================================================== -->
133
	<target name="release-major-api"
134
		description="Formally release this package as a major release.">
135
		<property name="jants.release.category" value="major"/>
136
		<property name="jants.release.api"      value="-api"/>
137
		<antcall target="-label"/>
138
	</target>
139
 
140
	<!-- =================================================================== -->
141
	<target name="release-prompt-api"
142
		description="Formally release this package as a user-specified version.">
143
		<property name="jants.release.category" value="prompt"/>
144
		<property name="jants.release.api"      value="-api"/>
145
		<antcall target="-label"/>
146
	</target>
147
 
148
 
149
	<!-- =================================================================== -->
150
	<!--  SILENT TARGETS                                                     -->
151
	<!-- =================================================================== -->
152
 
153
	<!-- =================================================================== -->
154
	<target name="-label">
155
		<jats package="${ant.project.name}${jants.release.api}" scope="mas">
156
			<cclabel type      = "${jants.release.category}"
157
					 mkview    = "true"
158
					 labelname = "jants.build.label"
159
					 viewname  = "jants.build.view.name"
160
					 viewpath  = "jants.build.view.path"
161
					 version   = "jants.build.version"/>
162
		</jats>
163
		<ant dir="${jants.build.view.path}" inheritAll="false" inheritRefs="false" target="-dpkg-release-${jants.release.category}">
164
			<property name="jants.build.version" value="${jants.build.version}"/>
165
		</ant>
166
		<ccrmview viewname="${jants.build.view.name}"/>
167
		<cclocklabel labelname="${jants.build.label}${jants.release-api}"/>
168
	</target>
169
 
170
	<!-- =================================================================== -->
171
	<target name="-dpkg-release-patch">
172
		<property name="jants.release.category" value="patch"/>
173
		<antcall target="-release${jants.release.api}"/>
174
	</target>
175
 
176
	<!-- =================================================================== -->
177
	<target name="-dpkg-release-minor">
178
		<property name="jants.release.category" value="minor"/>
179
		<antcall target="-release${jants.release.api}"/>
180
	</target>
181
 
182
	<!-- =================================================================== -->
183
	<target name="-dpkg-release-major">
184
		<property name="jants.release.category" value="major"/>
185
		<antcall target="-release${jants.release.api}"/>
186
	</target>
187
 
188
	<!-- =================================================================== -->
189
	<target name="-dpkg-release-prompt">
190
		<property name="jants.release.category" value="force"/>
191
		<antcall target="-release${jants.release.api}"/>
192
	</target>
193
 
194
	<!-- =================================================================== -->
195
	<target name="-release" depends="package,test">
196
		<!-- Clean the package directory -->
197
		<delete dir="pkg"/>
198
		<mkdir dir="pkg"/>
199
 
200
		<!-- Prepare the package entities -->
201
		<!-- [insert tasks here to copy relevant non-API files to their -->
202
		<!--  correct location within pkg]                              -->
203
 
204
		<!-- And perform the dpkg release -->
205
		<jats package="${ant.project.name}${jants.release.api}" scope="mas">
206
			<release type="${jants.release.category}" version="${jants.build.version}"/>
207
		</jats>
208
	</target>
209
 
210
	<!-- =================================================================== -->
211
	<target name="-release-api" depends="package-api">
212
		<!-- Clean the package directory -->
213
		<delete dir="pkg"/>
214
		<mkdir dir="pkg"/>
215
 
216
		<!-- Prepare the package entities -->
217
		<!-- [insert tasks here to copy relevant API files to their     -->
218
		<!--  correct location within pkg]                              -->
219
 
220
		<!-- And perform the dpkg release -->
221
		<jats package="${ant.project.name}${jants.release.api}" scope="mas">
222
			<release type="${jants.release.category}" version="${jants.build.version}"/>
223
		</jats>
224
	</target>
225
 
226
</project>