Commit 13aabe4b617657b5a59796f5eda70384016cc24f
1 parent
7fce24de
Use git commit instead of svn revision in snapshot branding line
Showing
1 changed file
with
369 additions
and
367 deletions
ant/build_liteloader.xml
1 | -<?xml version="1.0" encoding="UTF-8" ?> | ||
2 | -<project name="liteloader" basedir="." default="development"> | ||
3 | - | ||
4 | - <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="tasks/ant-contrib.jar" /> | ||
5 | - | ||
6 | - <!-- Versions !!IMPORTANT --> | ||
7 | - <property name="version" value="1.8.0_00" /> | ||
8 | - <property name="mcversion" value="1.8" /> | ||
9 | - <property name="author" value="Mumfrey" /> | ||
10 | - | ||
11 | - <!-- Project definitions and dependencies --> | ||
12 | - <property name="upstream" value="" /> | ||
13 | - <property name="project" value="LiteLoader" /> | ||
14 | - <property name="displayname" value="LiteLoader" /> | ||
15 | - <property name="md5set" value="mcp" /> | ||
16 | - <property name="outmd5set" value="liteloader" /> | ||
17 | - <property name="tweakclass" value="com.mumfrey.liteloader.launch.LiteLoaderTweaker" /> | ||
18 | - | ||
19 | - <property name="mcp.dir" location="../../.." /> | ||
20 | - <property name="build.dir" location="${mcp.dir}/build" /> | ||
21 | - <property name="eclipse.dir" location="${mcp.dir}/eclipse" /> | ||
22 | - <property name="temp.dir" location="${mcp.dir}/temp" /> | ||
23 | - <property name="md5.dir" location="${mcp.dir}/md5" /> | ||
24 | - <property name="libs.dir" location="${mcp.dir}/lib" /> | ||
25 | - <property name="src.dir" location="${build.dir}/src"/> | ||
26 | - <property name="mc.src.dir" location="${mcp.dir}/src/minecraft" /> | ||
27 | - <property name="mc.bin.dir" location="${mcp.dir}/bin/minecraft" /> | ||
28 | - <property name="reobf.dir" location="${mcp.dir}/reobf/minecraft" /> | ||
29 | - <property name="mc.libs.dir" location="${mcp.dir}/jars/libraries" /> | ||
30 | - | ||
31 | - <property name="dist.dir" location="${build.dir}/dist" /> | ||
32 | - <property name="filetype" value="jar" /> | ||
33 | - | ||
34 | - <property name="python_windows" location="${mcp.dir}/runtime/bin/python/python_mcp.exe" /> | ||
35 | - <property name="python_linux" location="/usr/bin/python" /> | ||
36 | - | ||
37 | - <property environment="env" /> | ||
38 | - | ||
39 | - <target name="setup_client"> | ||
40 | - <property name="clientjar" value="true" /> | ||
41 | - <property name="suffix" value="" /> | ||
42 | - <property name="javadocpath" value="docs" /> | ||
43 | - </target> | ||
44 | - | ||
45 | - <target name="setup_core"> | ||
46 | - <property name="suffix" value="-core" /> | ||
47 | - <property name="javadocpath" value="coredocs" /> | ||
48 | - </target> | ||
49 | - | ||
50 | - <target name="setup_development"> | ||
51 | - <property name="skipremoval" value="DEV" /> | ||
52 | - <property name="md5.outfile" value="${md5.dir}/client_${outmd5set}.md5" /> | ||
53 | - <property name="artefact.name" value="${ant.project.name}${suffix}-${mcversion}" /> | ||
54 | - <property name="stage.dir" location="${build.dir}/stage/${ant.project.name}/${version}" /> | ||
55 | - <property name="meta.version" value="${version}" /> | ||
56 | - </target> | ||
57 | - | ||
58 | - <target name="setup_production"> | ||
59 | - <property name="skipremoval" value="" /> | ||
60 | - <property name="md5.outfile" value="${md5.dir}/client_${outmd5set}_production.md5" /> | ||
61 | - <property name="artefact.name" value="${ant.project.name}${suffix}-${mcversion}" /> | ||
62 | - <property name="stage.dir" location="${build.dir}/stage/${ant.project.name}/${version}" /> | ||
63 | - <property name="meta.version" value="${version}" /> | ||
64 | - </target> | ||
65 | - | ||
66 | - <target name="setup_jenkins"> | ||
67 | - <property name="skipremoval" value="" /> | ||
68 | - <property name="md5.outfile" value="${md5.dir}/client_${outmd5set}_production.md5" /> | ||
69 | - <property name="artefact.name" value="${ant.project.name}${suffix}-${mcversion}-SNAPSHOT" /> | ||
70 | - <property name="stage.dir" location="${build.dir}/stage" /> | ||
71 | - <property name="brand" value="${mcversion}-SNAPSHOT-r${env.SVN_REVISION}-b${env.BUILD_NUMBER}-${env.BUILD_ID}" /> | ||
72 | - <property name="meta.version" value="${version} [${brand}]" /> | ||
73 | - <property name="jenkins" value="" /> | ||
74 | - </target> | ||
75 | - | ||
76 | - <!-- Main target --> | ||
77 | - <target name="development" depends="setup_client, setup_development, build" description="Entry point for MCP and upstream builds" /> | ||
78 | - | ||
79 | - <target name="production" depends="setup_client, setup_production, build, javadoc, mcpjar" description="Entry point for production builds" /> | ||
80 | - | ||
81 | - <target name="jenkins" depends="setup_client, setup_jenkins, build, javadoc, mcpjar" description="Entry point for CI builds" /> | ||
82 | - | ||
83 | - <target name="core" depends="setup_core, setup_jenkins, build, javadoc, mcpjar" description="Entry point for CI builds" /> | ||
84 | - | ||
85 | - <target name="build" description="Perform all tasks for a client build" depends="init, recompile, reobfuscate, savemd5, stage, jar" > | ||
86 | - </target> | ||
87 | - | ||
88 | - <target name="clean"> | ||
89 | - <echo level="info" message="Cleaning output directories" /> | ||
90 | - | ||
91 | - <delete dir="${src.dir}" /> | ||
92 | - <delete dir="${mcp.dir}/reobf" /> | ||
93 | - </target> | ||
94 | - | ||
95 | - <target name="contributesource" description="Contribute an upstream project source code to the source path"> | ||
96 | - <echo level="info" message="Contributing project ${lib}" /> | ||
97 | - <copy todir="${src.dir}" verbose="false" overwrite="true" failonerror="false"> | ||
98 | - <fileset dir="${eclipse.dir}/${lib}/java${sub}"> | ||
99 | - <exclude name="**/debug" /> | ||
100 | - <exclude name="**/debug/*.java" /> | ||
101 | - </fileset> | ||
102 | - <fileset dir="${eclipse.dir}/${lib}/src${sub}" /> | ||
103 | - <filterchain> | ||
104 | - <linecontains negate="true"> | ||
105 | - <contains value="@MCPONLY${skipremoval}" /> | ||
106 | - </linecontains> | ||
107 | - </filterchain> | ||
108 | - </copy> | ||
109 | - </target> | ||
110 | - | ||
111 | - <target name="contributeclientsource" description="Contribute client source if building a client jar" if="clientjar"> | ||
112 | - <antcall target="contributesource"> | ||
113 | - <param name="lib" value="${project}" /> | ||
114 | - <param name="sub" value="/client" /> | ||
115 | - </antcall> | ||
116 | - </target> | ||
117 | - | ||
118 | - <target name="contributeresources" description="Contribute resources to the staging path"> | ||
119 | - <echo level="info" message="Contributing project resources for ${lib}" /> | ||
120 | - <copy todir="${stage.dir}" verbose="false" failonerror="false"> | ||
121 | - <fileset dir="${eclipse.dir}/${lib}/resources" excludes=".svn/**"> | ||
122 | - <exclude name="**/Thumbs.db" /> | ||
123 | - <exclude name="**/minecraft.key" /> | ||
124 | - </fileset> | ||
125 | - </copy> | ||
126 | - </target> | ||
127 | - | ||
128 | - <target name="findmd5dir"> | ||
129 | - <echo level="info" message="Searching for existing MD5 directory..." /> | ||
130 | - <condition property="md5dir.exists"> | ||
131 | - <available file="${md5.dir}" type="dir"/> | ||
132 | - </condition> | ||
133 | - </target> | ||
134 | - | ||
135 | - <target name="findmd5" depends="findmd5dir"> | ||
136 | - <echo level="info" message="Searching for existing MD5 sets..." /> | ||
137 | - <condition property="md5set.exists"> | ||
138 | - <available file="${md5.dir}/client_${md5set}.md5" type="file"/> | ||
139 | - </condition> | ||
140 | - </target> | ||
141 | - | ||
142 | - <target name="seedmd5" depends="findmd5" unless="md5set.exists"> | ||
143 | - <echo level="info" message="MD5 sets not found, seeding..." /> | ||
144 | - <ant target="genmd5" antfile="seed_md5.xml" inheritall="true" /> | ||
145 | - </target> | ||
146 | - | ||
147 | - <target name="notifymd5ok" depends="findmd5" if="md5set.exists"> | ||
148 | - <echo level="info" message="MD5 sets already exist, skipping MD5 set seeding" /> | ||
149 | - </target> | ||
150 | - | ||
151 | - <target name="preparemd5" description="Copy patched MD5 to the temp directory" depends="seedmd5, notifymd5ok, clean"> | ||
152 | - <echo level="info" message="Prepare exclusion MD5s, using exclusion set "${md5set}"" /> | ||
153 | - | ||
154 | - <copy tofile="${temp.dir}/client.md5" file="${md5.dir}/client_${md5set}.md5" failonerror="true" verbose="true" overwrite="true" /> | ||
155 | - </target> | ||
156 | - | ||
157 | - <target name="prepare" description="Prepare source for MCP" depends="preparemd5"> | ||
158 | - <echo level="info" message="Prepare sources for compile" /> | ||
159 | - | ||
160 | - <echo level="info" message="Contributing libs" /> | ||
161 | - <copy todir="${libs.dir}" verbose="true" overwrite="true"> | ||
162 | - <fileset dir="${eclipse.dir}/${project}/lib"> | ||
163 | - <exclude name="**/authlib*.jar" /> | ||
164 | - <exclude name="**/log4j*.jar" /> | ||
165 | - </fileset> | ||
166 | - </copy> | ||
167 | - | ||
168 | - <echo level="info" message="Contributing MC source" /> | ||
169 | - <copy todir="${src.dir}" verbose="false" overwrite="true"> | ||
170 | - <fileset dir="${mc.src.dir}" /> | ||
171 | - </copy> | ||
172 | - | ||
173 | - <echo level="info" message="Contributing upstream projects" /> | ||
174 | - <foreach list="${upstream}" param="lib" target="contributesource" /> | ||
175 | - | ||
176 | - <antcall target="contributesource"> | ||
177 | - <param name="lib" value="${project}" /> | ||
178 | - <param name="sub" value="/common" /> | ||
179 | - </antcall> | ||
180 | - | ||
181 | - <antcall target="contributeclientsource" /> | ||
182 | - </target> | ||
183 | - | ||
184 | - <target name="init" description="Initialize build environment" depends="prepare"> | ||
185 | - <echo append="false" file="${temp.dir}/build.cfg" message="[OUTPUT]
SrcClient = build/src" /> | ||
186 | - | ||
187 | - <echo level="info" message="Cleaning old stage and dist, MCP reobf directories" /> | ||
188 | - | ||
189 | - <delete dir="${stage.dir}" /> | ||
190 | - | ||
191 | - <echo level="info" message="Creating stage and dist dirs" /> | ||
192 | - <mkdir dir="${stage.dir}" /> | ||
193 | - <mkdir dir="${dist.dir}" /> | ||
194 | - <mkdir dir="${md5.dir}" /> | ||
195 | - </target> | ||
196 | - | ||
197 | - <target name="recompile" description="MCP recompile"> | ||
198 | - <echo level="info" message="Compiling projects" /> | ||
199 | - | ||
200 | - <exec executable="${python_windows}" dir="${mcp.dir}" osfamily="windows"> | ||
201 | - <arg value="runtime/recompile.py" /> | ||
202 | - <arg value="--client" /> | ||
203 | - <arg value="--config" /> | ||
204 | - <arg value="${temp.dir}/build.cfg" /> | ||
205 | - <arg value="%*" /> | ||
206 | - </exec> | ||
207 | - | ||
208 | - <exec executable="${python_linux}" dir="${mcp.dir}" osfamily="unix"> | ||
209 | - <arg value="runtime/recompile.py" /> | ||
210 | - <arg value="--client" /> | ||
211 | - <arg value="--config" /> | ||
212 | - <arg value="${temp.dir}/build.cfg" /> | ||
213 | - <arg value="%*" /> | ||
214 | - </exec> | ||
215 | - </target> | ||
216 | - | ||
217 | - <target name="reobfuscate" description="MCP reobfuscate"> | ||
218 | - <echo level="info" message="Obfuscating classes" /> | ||
219 | - | ||
220 | - <exec executable="${python_windows}" dir="${mcp.dir}" osfamily="windows"> | ||
221 | - <arg value="runtime/reobfuscate.py" /> | ||
222 | - <arg value="--client" /> | ||
223 | - <arg value="%*" /> | ||
224 | - </exec> | ||
225 | - | ||
226 | - <exec executable="${python_linux}" dir="${mcp.dir}" osfamily="unix"> | ||
227 | - <arg value="runtime/reobfuscate.py" /> | ||
228 | - <arg value="--client" /> | ||
229 | - <arg value="%*" /> | ||
230 | - </exec> | ||
231 | - </target> | ||
232 | - | ||
233 | - <target name="savemd5" description="Put post-obfuscation MD5 to stored md5 set" if="outmd5set"> | ||
234 | - <echo level="info" message="Storing obfuscated MD5s" /> | ||
235 | - | ||
236 | - <copy file="${temp.dir}/client_reobf.md5" tofile="${md5.outfile}" overwrite="true" verbose="true" /> | ||
237 | - </target> | ||
238 | - | ||
239 | - <target name="stage" description="Stage resources into staging directory"> | ||
240 | - <echo level="info" message="Staging resources" /> | ||
241 | - | ||
242 | - <copy todir="${stage.dir}" overwrite="true"> | ||
243 | - <fileset dir="${reobf.dir}" excludes=".svn/**, *.txt"> | ||
244 | - <exclude name="?.class" /> | ||
245 | - <exclude name="??.class" /> | ||
246 | - <exclude name="???.class" /> | ||
247 | - <exclude name="/net/minecraft/**" /> | ||
248 | - </fileset> | ||
249 | - </copy> | ||
250 | - | ||
251 | - <foreach list="${upstream}" param="lib" target="contributeresources" /> | ||
252 | - | ||
253 | - <antcall target="contributeresources"> | ||
254 | - <param name="lib" value="${project}" /> | ||
255 | - </antcall> | ||
256 | - | ||
257 | - <antcall target="stamp"> | ||
258 | - </antcall> | ||
259 | - </target> | ||
260 | - | ||
261 | - <target name="stamp" description="Stamp build information into staged resources" if="jenkins"> | ||
262 | - <echo level="info" message="Writing branding information into artefact staging area" /> | ||
263 | - <echo level="info" message="Brand: ${brand}" /> | ||
264 | - | ||
265 | - <replaceregexp file="${stage.dir}/liteloader.properties" byline="true" match="^brand=.*$" replace="brand=${brand}" /> | ||
266 | - </target> | ||
267 | - | ||
268 | - <target name="jar" description="Build the client jar"> | ||
269 | - <echo level="info" message="Building final output" /> | ||
270 | - | ||
271 | - <mkdir dir="${dist.dir}" /> | ||
272 | - | ||
273 | - <jar destfile="${dist.dir}/${artefact.name}.${filetype}" duplicate="preserve" index="true" manifestencoding="UTF-8"> | ||
274 | - <manifest> | ||
275 | - <attribute name="Built-By" value="MCP (http://mcp.ocean-labs.de)" /> | ||
276 | - <attribute name="Implementation-Vendor" value="${author}" /> | ||
277 | - <attribute name="Implementation-Title" value="${ant.project.name}" /> | ||
278 | - <attribute name="Implementation-Version" value="${meta.version}" /> | ||
279 | - <attribute name="TweakClass" value="${tweakclass}" /> | ||
280 | - <attribute name="TweakName" value="${displayname}" /> | ||
281 | - <attribute name="TweakVersion" value="${version}" /> | ||
282 | - <attribute name="TweakAuthor" value="${author}" /> | ||
283 | - </manifest> | ||
284 | - <fileset dir="${stage.dir}" /> | ||
285 | - </jar> | ||
286 | - </target> | ||
287 | - | ||
288 | - <target name="compiledebug" description="Recompile with debug classes"> | ||
289 | - <copy todir="${src.dir}" verbose="false" overwrite="true" failonerror="false"> | ||
290 | - <fileset dir="${eclipse.dir}/${project}/debug" /> | ||
291 | - </copy> | ||
292 | - | ||
293 | - <antcall target="recompile" /> | ||
294 | - </target> | ||
295 | - | ||
296 | - <target name="mcpjar" description="Build the MCP-names jar" depends="compiledebug"> | ||
297 | - <echo level="info" message="Building mcpnamesjars" /> | ||
298 | - | ||
299 | - <mkdir dir="${dist.dir}" /> | ||
300 | - | ||
301 | - <delete file="${dist.dir}/${artefact.name}-mcpnames.${filetype}" /> | ||
302 | - <delete file="${dist.dir}/${artefact.name}-mcpnames-sources.${filetype}" /> | ||
303 | - | ||
304 | - <jar destfile="${dist.dir}/${artefact.name}-mcpnames.${filetype}" duplicate="preserve" index="true" manifestencoding="UTF-8"> | ||
305 | - <manifest> | ||
306 | - <attribute name="Built-By" value="MCP (http://mcp.ocean-labs.de)" /> | ||
307 | - <attribute name="Implementation-Vendor" value="${author}" /> | ||
308 | - <attribute name="Implementation-Title" value="${ant.project.name}" /> | ||
309 | - <attribute name="Implementation-Version" value="${meta.version}" /> | ||
310 | - <attribute name="TweakClass" value="${tweakclass}" /> | ||
311 | - <attribute name="TweakName" value="${displayname}" /> | ||
312 | - <attribute name="TweakVersion" value="${version}" /> | ||
313 | - <attribute name="TweakAuthor" value="${author}" /> | ||
314 | - </manifest> | ||
315 | - <fileset dir="${mc.bin.dir}"> | ||
316 | - <include name="com/mumfrey/**" /> | ||
317 | - <include name="net/eq2online/**" /> | ||
318 | - </fileset> | ||
319 | - <fileset dir="${eclipse.dir}/${project}/resources" excludes=".svn/**" /> | ||
320 | - <fileset dir="${eclipse.dir}/${project}/debug" excludes=".svn/**"> | ||
321 | - <exclude name="**/*.java" /> | ||
322 | - </fileset> | ||
323 | - </jar> | ||
324 | - <jar destfile="${dist.dir}/${artefact.name}-mcpnames-sources.${filetype}" duplicate="preserve" index="false" filesetmanifest="skip"> | ||
325 | - <fileset dir="${eclipse.dir}/${project}/java/common" /> | ||
326 | - <fileset dir="${eclipse.dir}/${project}/java/client" /> | ||
327 | - <fileset dir="${eclipse.dir}/${project}/debug" /> | ||
328 | - <fileset dir="${eclipse.dir}/${project}/resources" /> | ||
329 | - </jar> | ||
330 | - </target> | ||
331 | - | ||
332 | - <target name="javadoc" description="Create the javadoc jar"> | ||
333 | - <echo level="info" message="Generating javadoc" /> | ||
334 | - | ||
335 | - <javadoc destdir="${stage.dir}/${javadocpath}" useexternalfile="true"> | ||
336 | - <fileset dir="${eclipse.dir}/${project}/java"> | ||
337 | - <exclude name="**/debug" /> | ||
338 | - <exclude name="**/debug/*.java" /> | ||
339 | - </fileset> | ||
340 | - <classpath> | ||
341 | - <fileset dir="${mc.libs.dir}"> | ||
342 | - <include name="**/*.jar" /> | ||
343 | - </fileset> | ||
344 | - <fileset dir="${libs.dir}"> | ||
345 | - <include name="*.jar" /> | ||
346 | - </fileset> | ||
347 | - <pathelement location="${mc.bin.dir}"/> | ||
348 | - </classpath> | ||
349 | - <arg value="-XDignore.symbol.file" /> | ||
350 | - </javadoc> | ||
351 | - <jar destfile="${dist.dir}/${artefact.name}-javadoc.${filetype}" duplicate="preserve" index="true" manifestencoding="UTF-8"> | ||
352 | - <manifest> | ||
353 | - <attribute name="Built-By" value="MCP (http://mcp.ocean-labs.de)" /> | ||
354 | - <attribute name="Implementation-Vendor" value="${author}" /> | ||
355 | - <attribute name="Implementation-Title" value="${ant.project.name}" /> | ||
356 | - <attribute name="Implementation-Version" value="${version}" /> | ||
357 | - </manifest> | ||
358 | - <fileset dir="${stage.dir}/${javadocpath}" /> | ||
359 | - </jar> | ||
360 | - <copy file="${dist.dir}/${artefact.name}-javadoc.${filetype}" tofile="${dist.dir}/${artefact.name}-mcpnames-javadoc.${filetype}" /> | ||
361 | - </target> | ||
362 | - | ||
363 | - <target name="deploy" depends="production" description="Deploy artifact to local minecraft installation in APPDATA"> | ||
364 | - <mkdir dir="${env.APPDATA}/.minecraft/libraries/com/mumfrey/liteloader/${mcversion}"/> | ||
365 | - <copy todir="${env.APPDATA}/.minecraft/libraries/com/mumfrey/liteloader/${mcversion}" file="${dist.dir}/${artefact.name}.${filetype}" failonerror="false" overwrite="true" /> | ||
366 | - <copy todir="${eclipse.dir}/LiteLoaderInstaller/src/main/resources" file="${dist.dir}/${artefact.name}.${filetype}" failonerror="false" overwrite="true" /> | ||
367 | - </target> | 1 | +<?xml version="1.0" encoding="UTF-8" ?> |
2 | +<project name="liteloader" basedir="." default="development"> | ||
3 | + | ||
4 | + <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="tasks/ant-contrib.jar" /> | ||
5 | + | ||
6 | + <!-- Versions !!IMPORTANT --> | ||
7 | + <property name="version" value="1.8.0_00" /> | ||
8 | + <property name="mcversion" value="1.8" /> | ||
9 | + <property name="author" value="Mumfrey" /> | ||
10 | + | ||
11 | + <!-- Project definitions and dependencies --> | ||
12 | + <property name="upstream" value="" /> | ||
13 | + <property name="project" value="LiteLoader" /> | ||
14 | + <property name="displayname" value="LiteLoader" /> | ||
15 | + <property name="md5set" value="mcp" /> | ||
16 | + <property name="outmd5set" value="liteloader" /> | ||
17 | + <property name="tweakclass" value="com.mumfrey.liteloader.launch.LiteLoaderTweaker" /> | ||
18 | + | ||
19 | + <property name="mcp.dir" location="../../.." /> | ||
20 | + <property name="build.dir" location="${mcp.dir}/build" /> | ||
21 | + <property name="eclipse.dir" location="${mcp.dir}/eclipse" /> | ||
22 | + <property name="temp.dir" location="${mcp.dir}/temp" /> | ||
23 | + <property name="md5.dir" location="${mcp.dir}/md5" /> | ||
24 | + <property name="libs.dir" location="${mcp.dir}/lib" /> | ||
25 | + <property name="src.dir" location="${build.dir}/src"/> | ||
26 | + <property name="mc.src.dir" location="${mcp.dir}/src/minecraft" /> | ||
27 | + <property name="mc.bin.dir" location="${mcp.dir}/bin/minecraft" /> | ||
28 | + <property name="reobf.dir" location="${mcp.dir}/reobf/minecraft" /> | ||
29 | + <property name="mc.libs.dir" location="${mcp.dir}/jars/libraries" /> | ||
30 | + | ||
31 | + <property name="dist.dir" location="${build.dir}/dist" /> | ||
32 | + <property name="filetype" value="jar" /> | ||
33 | + | ||
34 | + <property name="python_windows" location="${mcp.dir}/runtime/bin/python/python_mcp.exe" /> | ||
35 | + <property name="python_linux" location="/usr/bin/python" /> | ||
36 | + | ||
37 | + <property environment="env" /> | ||
38 | + | ||
39 | + <propertyregex property="gitcommit" input="${env.GIT_COMMIT}" regexp="^(.{7})" select="\1" casesensitive="false" /> | ||
40 | + | ||
41 | + <target name="setup_client"> | ||
42 | + <property name="clientjar" value="true" /> | ||
43 | + <property name="suffix" value="" /> | ||
44 | + <property name="javadocpath" value="docs" /> | ||
45 | + </target> | ||
46 | + | ||
47 | + <target name="setup_core"> | ||
48 | + <property name="suffix" value="-core" /> | ||
49 | + <property name="javadocpath" value="coredocs" /> | ||
50 | + </target> | ||
51 | + | ||
52 | + <target name="setup_development"> | ||
53 | + <property name="skipremoval" value="DEV" /> | ||
54 | + <property name="md5.outfile" value="${md5.dir}/client_${outmd5set}.md5" /> | ||
55 | + <property name="artefact.name" value="${ant.project.name}${suffix}-${mcversion}" /> | ||
56 | + <property name="stage.dir" location="${build.dir}/stage/${ant.project.name}/${version}" /> | ||
57 | + <property name="meta.version" value="${version}" /> | ||
58 | + </target> | ||
59 | + | ||
60 | + <target name="setup_production"> | ||
61 | + <property name="skipremoval" value="" /> | ||
62 | + <property name="md5.outfile" value="${md5.dir}/client_${outmd5set}_production.md5" /> | ||
63 | + <property name="artefact.name" value="${ant.project.name}${suffix}-${mcversion}" /> | ||
64 | + <property name="stage.dir" location="${build.dir}/stage/${ant.project.name}/${version}" /> | ||
65 | + <property name="meta.version" value="${version}" /> | ||
66 | + </target> | ||
67 | + | ||
68 | + <target name="setup_jenkins"> | ||
69 | + <property name="skipremoval" value="" /> | ||
70 | + <property name="md5.outfile" value="${md5.dir}/client_${outmd5set}_production.md5" /> | ||
71 | + <property name="artefact.name" value="${ant.project.name}${suffix}-${mcversion}-SNAPSHOT" /> | ||
72 | + <property name="stage.dir" location="${build.dir}/stage" /> | ||
73 | + <property name="brand" value="${mcversion}-SNAPSHOT-r${gitcommit}-b${env.BUILD_NUMBER}-${env.BUILD_ID}" /> | ||
74 | + <property name="meta.version" value="${version} [${brand}]" /> | ||
75 | + <property name="jenkins" value="" /> | ||
76 | + </target> | ||
77 | + | ||
78 | + <!-- Main target --> | ||
79 | + <target name="development" depends="setup_client, setup_development, build" description="Entry point for MCP and upstream builds" /> | ||
80 | + | ||
81 | + <target name="production" depends="setup_client, setup_production, build, javadoc, mcpjar" description="Entry point for production builds" /> | ||
82 | + | ||
83 | + <target name="jenkins" depends="setup_client, setup_jenkins, build, javadoc, mcpjar" description="Entry point for CI builds" /> | ||
84 | + | ||
85 | + <target name="core" depends="setup_core, setup_jenkins, build, javadoc, mcpjar" description="Entry point for CI builds" /> | ||
86 | + | ||
87 | + <target name="build" description="Perform all tasks for a client build" depends="init, recompile, reobfuscate, savemd5, stage, jar" > | ||
88 | + </target> | ||
89 | + | ||
90 | + <target name="clean"> | ||
91 | + <echo level="info" message="Cleaning output directories" /> | ||
92 | + | ||
93 | + <delete dir="${src.dir}" /> | ||
94 | + <delete dir="${mcp.dir}/reobf" /> | ||
95 | + </target> | ||
96 | + | ||
97 | + <target name="contributesource" description="Contribute an upstream project source code to the source path"> | ||
98 | + <echo level="info" message="Contributing project ${lib}" /> | ||
99 | + <copy todir="${src.dir}" verbose="false" overwrite="true" failonerror="false"> | ||
100 | + <fileset dir="${eclipse.dir}/${lib}/java${sub}"> | ||
101 | + <exclude name="**/debug" /> | ||
102 | + <exclude name="**/debug/*.java" /> | ||
103 | + </fileset> | ||
104 | + <fileset dir="${eclipse.dir}/${lib}/src${sub}" /> | ||
105 | + <filterchain> | ||
106 | + <linecontains negate="true"> | ||
107 | + <contains value="@MCPONLY${skipremoval}" /> | ||
108 | + </linecontains> | ||
109 | + </filterchain> | ||
110 | + </copy> | ||
111 | + </target> | ||
112 | + | ||
113 | + <target name="contributeclientsource" description="Contribute client source if building a client jar" if="clientjar"> | ||
114 | + <antcall target="contributesource"> | ||
115 | + <param name="lib" value="${project}" /> | ||
116 | + <param name="sub" value="/client" /> | ||
117 | + </antcall> | ||
118 | + </target> | ||
119 | + | ||
120 | + <target name="contributeresources" description="Contribute resources to the staging path"> | ||
121 | + <echo level="info" message="Contributing project resources for ${lib}" /> | ||
122 | + <copy todir="${stage.dir}" verbose="false" failonerror="false"> | ||
123 | + <fileset dir="${eclipse.dir}/${lib}/resources" excludes=".svn/**"> | ||
124 | + <exclude name="**/Thumbs.db" /> | ||
125 | + <exclude name="**/minecraft.key" /> | ||
126 | + </fileset> | ||
127 | + </copy> | ||
128 | + </target> | ||
129 | + | ||
130 | + <target name="findmd5dir"> | ||
131 | + <echo level="info" message="Searching for existing MD5 directory..." /> | ||
132 | + <condition property="md5dir.exists"> | ||
133 | + <available file="${md5.dir}" type="dir"/> | ||
134 | + </condition> | ||
135 | + </target> | ||
136 | + | ||
137 | + <target name="findmd5" depends="findmd5dir"> | ||
138 | + <echo level="info" message="Searching for existing MD5 sets..." /> | ||
139 | + <condition property="md5set.exists"> | ||
140 | + <available file="${md5.dir}/client_${md5set}.md5" type="file"/> | ||
141 | + </condition> | ||
142 | + </target> | ||
143 | + | ||
144 | + <target name="seedmd5" depends="findmd5" unless="md5set.exists"> | ||
145 | + <echo level="info" message="MD5 sets not found, seeding..." /> | ||
146 | + <ant target="genmd5" antfile="seed_md5.xml" inheritall="true" /> | ||
147 | + </target> | ||
148 | + | ||
149 | + <target name="notifymd5ok" depends="findmd5" if="md5set.exists"> | ||
150 | + <echo level="info" message="MD5 sets already exist, skipping MD5 set seeding" /> | ||
151 | + </target> | ||
152 | + | ||
153 | + <target name="preparemd5" description="Copy patched MD5 to the temp directory" depends="seedmd5, notifymd5ok, clean"> | ||
154 | + <echo level="info" message="Prepare exclusion MD5s, using exclusion set "${md5set}"" /> | ||
155 | + | ||
156 | + <copy tofile="${temp.dir}/client.md5" file="${md5.dir}/client_${md5set}.md5" failonerror="true" verbose="true" overwrite="true" /> | ||
157 | + </target> | ||
158 | + | ||
159 | + <target name="prepare" description="Prepare source for MCP" depends="preparemd5"> | ||
160 | + <echo level="info" message="Prepare sources for compile" /> | ||
161 | + | ||
162 | + <echo level="info" message="Contributing libs" /> | ||
163 | + <copy todir="${libs.dir}" verbose="true" overwrite="true"> | ||
164 | + <fileset dir="${eclipse.dir}/${project}/lib"> | ||
165 | + <exclude name="**/authlib*.jar" /> | ||
166 | + <exclude name="**/log4j*.jar" /> | ||
167 | + </fileset> | ||
168 | + </copy> | ||
169 | + | ||
170 | + <echo level="info" message="Contributing MC source" /> | ||
171 | + <copy todir="${src.dir}" verbose="false" overwrite="true"> | ||
172 | + <fileset dir="${mc.src.dir}" /> | ||
173 | + </copy> | ||
174 | + | ||
175 | + <echo level="info" message="Contributing upstream projects" /> | ||
176 | + <foreach list="${upstream}" param="lib" target="contributesource" /> | ||
177 | + | ||
178 | + <antcall target="contributesource"> | ||
179 | + <param name="lib" value="${project}" /> | ||
180 | + <param name="sub" value="/common" /> | ||
181 | + </antcall> | ||
182 | + | ||
183 | + <antcall target="contributeclientsource" /> | ||
184 | + </target> | ||
185 | + | ||
186 | + <target name="init" description="Initialize build environment" depends="prepare"> | ||
187 | + <echo append="false" file="${temp.dir}/build.cfg" message="[OUTPUT]
SrcClient = build/src" /> | ||
188 | + | ||
189 | + <echo level="info" message="Cleaning old stage and dist, MCP reobf directories" /> | ||
190 | + | ||
191 | + <delete dir="${stage.dir}" /> | ||
192 | + | ||
193 | + <echo level="info" message="Creating stage and dist dirs" /> | ||
194 | + <mkdir dir="${stage.dir}" /> | ||
195 | + <mkdir dir="${dist.dir}" /> | ||
196 | + <mkdir dir="${md5.dir}" /> | ||
197 | + </target> | ||
198 | + | ||
199 | + <target name="recompile" description="MCP recompile"> | ||
200 | + <echo level="info" message="Compiling projects" /> | ||
201 | + | ||
202 | + <exec executable="${python_windows}" dir="${mcp.dir}" osfamily="windows"> | ||
203 | + <arg value="runtime/recompile.py" /> | ||
204 | + <arg value="--client" /> | ||
205 | + <arg value="--config" /> | ||
206 | + <arg value="${temp.dir}/build.cfg" /> | ||
207 | + <arg value="%*" /> | ||
208 | + </exec> | ||
209 | + | ||
210 | + <exec executable="${python_linux}" dir="${mcp.dir}" osfamily="unix"> | ||
211 | + <arg value="runtime/recompile.py" /> | ||
212 | + <arg value="--client" /> | ||
213 | + <arg value="--config" /> | ||
214 | + <arg value="${temp.dir}/build.cfg" /> | ||
215 | + <arg value="%*" /> | ||
216 | + </exec> | ||
217 | + </target> | ||
218 | + | ||
219 | + <target name="reobfuscate" description="MCP reobfuscate"> | ||
220 | + <echo level="info" message="Obfuscating classes" /> | ||
221 | + | ||
222 | + <exec executable="${python_windows}" dir="${mcp.dir}" osfamily="windows"> | ||
223 | + <arg value="runtime/reobfuscate.py" /> | ||
224 | + <arg value="--client" /> | ||
225 | + <arg value="%*" /> | ||
226 | + </exec> | ||
227 | + | ||
228 | + <exec executable="${python_linux}" dir="${mcp.dir}" osfamily="unix"> | ||
229 | + <arg value="runtime/reobfuscate.py" /> | ||
230 | + <arg value="--client" /> | ||
231 | + <arg value="%*" /> | ||
232 | + </exec> | ||
233 | + </target> | ||
234 | + | ||
235 | + <target name="savemd5" description="Put post-obfuscation MD5 to stored md5 set" if="outmd5set"> | ||
236 | + <echo level="info" message="Storing obfuscated MD5s" /> | ||
237 | + | ||
238 | + <copy file="${temp.dir}/client_reobf.md5" tofile="${md5.outfile}" overwrite="true" verbose="true" /> | ||
239 | + </target> | ||
240 | + | ||
241 | + <target name="stage" description="Stage resources into staging directory"> | ||
242 | + <echo level="info" message="Staging resources" /> | ||
243 | + | ||
244 | + <copy todir="${stage.dir}" overwrite="true"> | ||
245 | + <fileset dir="${reobf.dir}" excludes=".svn/**, *.txt"> | ||
246 | + <exclude name="?.class" /> | ||
247 | + <exclude name="??.class" /> | ||
248 | + <exclude name="???.class" /> | ||
249 | + <exclude name="/net/minecraft/**" /> | ||
250 | + </fileset> | ||
251 | + </copy> | ||
252 | + | ||
253 | + <foreach list="${upstream}" param="lib" target="contributeresources" /> | ||
254 | + | ||
255 | + <antcall target="contributeresources"> | ||
256 | + <param name="lib" value="${project}" /> | ||
257 | + </antcall> | ||
258 | + | ||
259 | + <antcall target="stamp"> | ||
260 | + </antcall> | ||
261 | + </target> | ||
262 | + | ||
263 | + <target name="stamp" description="Stamp build information into staged resources" if="jenkins"> | ||
264 | + <echo level="info" message="Writing branding information into artefact staging area" /> | ||
265 | + <echo level="info" message="Brand: ${brand}" /> | ||
266 | + | ||
267 | + <replaceregexp file="${stage.dir}/liteloader.properties" byline="true" match="^brand=.*$" replace="brand=${brand}" /> | ||
268 | + </target> | ||
269 | + | ||
270 | + <target name="jar" description="Build the client jar"> | ||
271 | + <echo level="info" message="Building final output" /> | ||
272 | + | ||
273 | + <mkdir dir="${dist.dir}" /> | ||
274 | + | ||
275 | + <jar destfile="${dist.dir}/${artefact.name}.${filetype}" duplicate="preserve" index="true" manifestencoding="UTF-8"> | ||
276 | + <manifest> | ||
277 | + <attribute name="Built-By" value="MCP (http://mcp.ocean-labs.de)" /> | ||
278 | + <attribute name="Implementation-Vendor" value="${author}" /> | ||
279 | + <attribute name="Implementation-Title" value="${ant.project.name}" /> | ||
280 | + <attribute name="Implementation-Version" value="${meta.version}" /> | ||
281 | + <attribute name="TweakClass" value="${tweakclass}" /> | ||
282 | + <attribute name="TweakName" value="${displayname}" /> | ||
283 | + <attribute name="TweakVersion" value="${version}" /> | ||
284 | + <attribute name="TweakAuthor" value="${author}" /> | ||
285 | + </manifest> | ||
286 | + <fileset dir="${stage.dir}" /> | ||
287 | + </jar> | ||
288 | + </target> | ||
289 | + | ||
290 | + <target name="compiledebug" description="Recompile with debug classes"> | ||
291 | + <copy todir="${src.dir}" verbose="false" overwrite="true" failonerror="false"> | ||
292 | + <fileset dir="${eclipse.dir}/${project}/debug" /> | ||
293 | + </copy> | ||
294 | + | ||
295 | + <antcall target="recompile" /> | ||
296 | + </target> | ||
297 | + | ||
298 | + <target name="mcpjar" description="Build the MCP-names jar" depends="compiledebug"> | ||
299 | + <echo level="info" message="Building mcpnamesjars" /> | ||
300 | + | ||
301 | + <mkdir dir="${dist.dir}" /> | ||
302 | + | ||
303 | + <delete file="${dist.dir}/${artefact.name}-mcpnames.${filetype}" /> | ||
304 | + <delete file="${dist.dir}/${artefact.name}-mcpnames-sources.${filetype}" /> | ||
305 | + | ||
306 | + <jar destfile="${dist.dir}/${artefact.name}-mcpnames.${filetype}" duplicate="preserve" index="true" manifestencoding="UTF-8"> | ||
307 | + <manifest> | ||
308 | + <attribute name="Built-By" value="MCP (http://mcp.ocean-labs.de)" /> | ||
309 | + <attribute name="Implementation-Vendor" value="${author}" /> | ||
310 | + <attribute name="Implementation-Title" value="${ant.project.name}" /> | ||
311 | + <attribute name="Implementation-Version" value="${meta.version}" /> | ||
312 | + <attribute name="TweakClass" value="${tweakclass}" /> | ||
313 | + <attribute name="TweakName" value="${displayname}" /> | ||
314 | + <attribute name="TweakVersion" value="${version}" /> | ||
315 | + <attribute name="TweakAuthor" value="${author}" /> | ||
316 | + </manifest> | ||
317 | + <fileset dir="${mc.bin.dir}"> | ||
318 | + <include name="com/mumfrey/**" /> | ||
319 | + <include name="net/eq2online/**" /> | ||
320 | + </fileset> | ||
321 | + <fileset dir="${eclipse.dir}/${project}/resources" excludes=".svn/**" /> | ||
322 | + <fileset dir="${eclipse.dir}/${project}/debug" excludes=".svn/**"> | ||
323 | + <exclude name="**/*.java" /> | ||
324 | + </fileset> | ||
325 | + </jar> | ||
326 | + <jar destfile="${dist.dir}/${artefact.name}-mcpnames-sources.${filetype}" duplicate="preserve" index="false" filesetmanifest="skip"> | ||
327 | + <fileset dir="${eclipse.dir}/${project}/java/common" /> | ||
328 | + <fileset dir="${eclipse.dir}/${project}/java/client" /> | ||
329 | + <fileset dir="${eclipse.dir}/${project}/debug" /> | ||
330 | + <fileset dir="${eclipse.dir}/${project}/resources" /> | ||
331 | + </jar> | ||
332 | + </target> | ||
333 | + | ||
334 | + <target name="javadoc" description="Create the javadoc jar"> | ||
335 | + <echo level="info" message="Generating javadoc" /> | ||
336 | + | ||
337 | + <javadoc destdir="${stage.dir}/${javadocpath}" useexternalfile="true"> | ||
338 | + <fileset dir="${eclipse.dir}/${project}/java"> | ||
339 | + <exclude name="**/debug" /> | ||
340 | + <exclude name="**/debug/*.java" /> | ||
341 | + </fileset> | ||
342 | + <classpath> | ||
343 | + <fileset dir="${mc.libs.dir}"> | ||
344 | + <include name="**/*.jar" /> | ||
345 | + </fileset> | ||
346 | + <fileset dir="${libs.dir}"> | ||
347 | + <include name="*.jar" /> | ||
348 | + </fileset> | ||
349 | + <pathelement location="${mc.bin.dir}"/> | ||
350 | + </classpath> | ||
351 | + <arg value="-XDignore.symbol.file" /> | ||
352 | + </javadoc> | ||
353 | + <jar destfile="${dist.dir}/${artefact.name}-javadoc.${filetype}" duplicate="preserve" index="true" manifestencoding="UTF-8"> | ||
354 | + <manifest> | ||
355 | + <attribute name="Built-By" value="MCP (http://mcp.ocean-labs.de)" /> | ||
356 | + <attribute name="Implementation-Vendor" value="${author}" /> | ||
357 | + <attribute name="Implementation-Title" value="${ant.project.name}" /> | ||
358 | + <attribute name="Implementation-Version" value="${version}" /> | ||
359 | + </manifest> | ||
360 | + <fileset dir="${stage.dir}/${javadocpath}" /> | ||
361 | + </jar> | ||
362 | + <copy file="${dist.dir}/${artefact.name}-javadoc.${filetype}" tofile="${dist.dir}/${artefact.name}-mcpnames-javadoc.${filetype}" /> | ||
363 | + </target> | ||
364 | + | ||
365 | + <target name="deploy" depends="production" description="Deploy artifact to local minecraft installation in APPDATA"> | ||
366 | + <mkdir dir="${env.APPDATA}/.minecraft/libraries/com/mumfrey/liteloader/${mcversion}"/> | ||
367 | + <copy todir="${env.APPDATA}/.minecraft/libraries/com/mumfrey/liteloader/${mcversion}" file="${dist.dir}/${artefact.name}.${filetype}" failonerror="false" overwrite="true" /> | ||
368 | + <copy todir="${eclipse.dir}/LiteLoaderInstaller/src/main/resources" file="${dist.dir}/${artefact.name}.${filetype}" failonerror="false" overwrite="true" /> | ||
369 | + </target> | ||
368 | </project> | 370 | </project> |
369 | \ No newline at end of file | 371 | \ No newline at end of file |