aboutsummaryrefslogtreecommitdiffstats
path: root/build.xml
blob: f6650f44051f77c09d0228063cac7a37309e012c (plain)
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
<project name="jQuery" default="all" basedir=".">

	<loadfile property="version" srcfile="version.txt" />
	<property name="PREFIX" value="." />
	<property description="Folder for jquery and min target" name="dist" value="${PREFIX}/dist" />

	<property name="JQ" value="${dist}/jquery.js" />
	<property name="JQ_MIN" value="${dist}/jquery.min.js" />

	<loadfile property="sizzle-exports" srcfile="src/sizzle-jquery.js" />

	<available property="qunit" file="test/qunit" />
	<available property="sizzle" file="src/sizzle" />

	<target name="all" depends="jquery,lint,min" />

	<target name="qunit-clone" unless="qunit">
		<exec executable="git" outputproperty="git-qunit" >
			<arg line="clone git://github.com/jquery/qunit.git test/qunit" />
		</exec>
		<echo message="git clone qunit: ${git-qunit}" />
	</target>
	<target name="qunit-pull" if="qunit">
		<exec executable="git" outputproperty="git-qunit" dir="test/qunit" >
			<arg line="pull origin master" />
		</exec>
		<echo message="git pull sizzle: ${git-qunit}" />
	</target>
	<target name="sizzle-clone" unless="sizzle">
		<exec executable="git" outputproperty="git-sizzle" >
			<arg line="clone git://github.com/jeresig/sizzle.git src/sizzle" />
		</exec>
		<echo message="git clone sizzle: ${git-sizzle}" />
	</target>
	<target name="sizzle-pull" if="sizzle">
		<exec executable="git" outputproperty="git-sizzle" dir="src/sizzle" >
			<arg line="pull origin master" />
		</exec>
		<echo message="git pull sizzle: ${git-sizzle}" />
	</target>

	<target name="init" depends="qunit-clone,qunit-pull,sizzle-clone,sizzle-pull" />

	<target name="selector" depends="init" description="Builds the selector library for jQuery from Sizzle.">
		<copy file="src/sizzle/sizzle.js" tofile="src/selector.js" overwrite="true" />
		<replaceregexp match="// EXPOSE(.*)&#10;" replace="// EXPOSE\1&#10;${sizzle-exports}" file="src/selector.js" />
		<replaceregexp match="window.Sizzle(.*)&#10;" replace="" file="src/selector.js" />
	</target>

	<target name="jquery" depends="init,selector" description="Main jquery build, concatenates source files and replaces @VERSION">
		<echo message="Building ${JQ}" />
		<mkdir dir="${dist}" />
		<concat destfile="${JQ}">
			<fileset file="src/intro.js" />
			<fileset file="src/core.js" />
			<fileset file="src/support.js" />
			<fileset file="src/data.js" />
			<fileset file="src/queue.js" />
			<fileset file="src/attributes.js" />
			<fileset file="src/event.js" />
			<fileset file="src/selector.js" />
			<fileset file="src/traversing.js" />
			<fileset file="src/manipulation.js" />
			<fileset file="src/css.js" />
			<fileset file="src/ajax.js" />
			<fileset file="src/xhr.js" />
			<fileset file="src/transports/jsonp.js" />
			<fileset file="src/transports/script.js" />
			<fileset file="src/transports/xhr.js" />
			<fileset file="src/effects.js" />
			<fileset file="src/offset.js" />
			<fileset file="src/dimensions.js" />
			<fileset file="src/outro.js" />
		</concat>
		<replaceregexp match="@VERSION" replace="${version}" flags="g" byline="true" file="${JQ}" />
		<exec executable="git" outputproperty="date">
			<arg line="log -1 --pretty=format:%ad" />
		</exec>
		<replaceregexp match="(\(\s*function\s*\(\s*jQuery\s*\)\s*\{)|(\}\s*\)\s*\(\s*jQuery\s*\)\s*;)" flags="g" replace="" file="${JQ}" />
		<replaceregexp match="Date: " replace="Date: ${date}" file="${JQ}" />
		<echo message="${JQ} built." />
	</target>

	<target name="lint" depends="jquery" description="Check jQuery against JSLint">
		<exec executable="java">
			<arg line="-jar build/js.jar build/jslint-check.js" />
		</exec>
	</target>

	<target name="min" depends="jquery" description="Remove all comments and whitespace, no compression, great in combination with GZip">
		<echo message="Building ${JQ_MIN}" />
		<apply executable="java" parallel="false" verbose="true" dest="${dist}">
			<fileset dir="${dist}">
				<include name="jquery.js" />
			</fileset>
			<arg line="-jar" />
			<arg path="build/google-compiler-20100917.jar" />
			<arg value="--warning_level" />
			<arg value="QUIET" />
			<arg value="--js_output_file" />
			<targetfile />
			<arg value="--js" />
			<mapper type="glob" from="jquery.js" to="tmpmin" />
		</apply>
		<concat destfile="${JQ_MIN}">
			<filelist files="${JQ}, ${dist}/tmpmin" />
			<filterchain>
				<headfilter lines="15" />
			</filterchain>
		</concat>
		<concat destfile="${JQ_MIN}" append="yes">
			<filelist files="${dist}/tmpmin" />
		</concat>
		<delete file="${dist}/tmpmin" />
		<echo message="${JQ_MIN} built." />
	</target>

	<target name="clean">
		<delete dir="${dist}" />
		<delete file="src/selector.js" />
		<delete dir="test/qunit" />
		<delete dir="src/sizzle" />
	</target>

	<target name="openAjaxMetadata">
		<property name="target" value="openAjaxMetadata-jquery-${version}.xml" />
		<delete file="${dist}/jquery-*.xml" />
		<get src="http://www.exfer.net/jquery/createjQueryXMLDocs.py?version=1.3" dest="${target}" />
		<xslt includes="${target}" excludes="build.xml" destdir="./dist" style="build/style.xsl" extension=".xml" />
		<delete file="${target}" />
	</target>

</project>