jquery-ui/release/build.xml

250 lines
8.7 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!--
jQuery UI Release!
Call task called 'deploy-release' to build a full release.
The release built will be stored on 'dist' dir.
@author Eduardo Lundgren (eduardo.lundgren@gmail.com)
-->
<project name="jquery-ui" default="deploy-release" basedir=".">
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="build/ant-contrib-0.6.jar"/>
</classpath>
</taskdef>
<property file="ant.properties" />
<loadfile srcFile="../version.txt" property="release.version" />
<property name="release.filename" value="jquery.ui-${release.version}" />
<property name="dist.dir" value="dist/${release.filename}/" />
<property name="build.dir" value="build" />
<property name="ui.dir" value="../" />
<property name="src.dir" value="${ui.dir}/ui/" />
<property name="min.folder" value="${dist.dir}/ui/minified" />
<property name="packed.folder" value="${dist.dir}/ui/packed" />
<property name="concatenated" value="jquery.ui.all" />
<property name="concatenated.i18n" value="jquery.ui.i18n.all" />
<property name="core.files" value="ui.core.js, ui.draggable.js, ui.droppable.js, ui.resizable.js, ui.selectable.js, ui.sortable.js, effects.core.js" />
<property description="YUI Compressor" name="yui-jar" value="${build.dir}/yuicompressor-2.4.2.jar" />
<property description="Dean Edwards Packer" name="pack.php" value="${build.dir}/pack.php" />
<target name="deploy-release" depends="concatenate, minify, pack, copy, replace-version, prepend-header, zip" description="Release builder">
</target>
<target name="replace-version">
<replaceregexp match="@VERSION" replace="${release.version}" flags="g" byline="true">
<fileset dir="${dist.dir}/ui/" includes="*.js"/>
<fileset dir="${dist.dir}/ui/minified/" includes="*.js"/>
<fileset dir="${dist.dir}/ui/packed/" includes="*.js"/>
</replaceregexp>
<echo message="Replaced all @VERSION to ${release.version}." />
</target>
<target name="prepend-header">
<!-- TODO: refactor this ugly mess -->
<copy todir="${dist.dir}/headers/">
<fileset dir="${dist.dir}/ui/" includes="*.js" />
</copy>
<replaceregexp match="^(\/\*.*?\*\/\s).+" replace="\1" flags="s">
<fileset dir="${dist.dir}/headers/" includes="*.js"/>
</replaceregexp>
<for param="file">
<path><fileset dir="${dist.dir}/ui/minified/" includes="*.js" /></path>
<sequential>
<propertyregex override="yes" property="target" input="@{file}" regexp=".+\\(.+)\.min\.js$" replace="\1"/>
<concat destfile="${dist.dir}/ui-headered/${target}.min.js">
<header file="${dist.dir}/headers/${target}.js" />
<fileset file="@{file}" />
</concat>
</sequential>
</for>
<copy todir="${dist.dir}/ui/minified">
<fileset dir="${dist.dir}/ui-headered/" includes="*.js" />
</copy>
<delete dir="${dist.dir}/ui-headered/" />
<for param="file">
<path><fileset dir="${dist.dir}/ui/packed/" includes="*.js" /></path>
<sequential>
<propertyregex override="yes" property="target" input="@{file}" regexp=".+\\(.+)\.packed\.js$" replace="\1"/>
<concat destfile="${dist.dir}/ui-headered/${target}.packed.js">
<header file="${dist.dir}/headers/${target}.js" />
<fileset file="@{file}" />
</concat>
</sequential>
</for>
<copy todir="${dist.dir}/ui/packed">
<fileset dir="${dist.dir}/ui-headered/" includes="*.js" />
</copy>
<delete dir="${dist.dir}/ui-headered/" />
<delete dir="${dist.dir}/headers/" />
</target>
<target description="Zip the package" name="zip">
<zip destfile="${dist.dir}/../${release.filename}.zip">
<zipfileset dir="dist/" />
</zip>
</target>
<target name="concatenate">
<echo message="Building concatenated" />
<mkdir dir="${dist.dir}/ui/" />
<delete file="${dist.dir}/ui/${concatenated}.js" />
<concat destfile="${dist.dir}/ui/${concatenated}.js">
<filelist dir="${src.dir}/" files="${core.files}" />
<fileset dir="${src.dir}/" includes="ui.*.js, effects.*.js" excludes="${core.files}" />
</concat>
<echo message="Concatenated built." />
<mkdir dir="${dist.dir}/ui/i18n/" />
<delete file="${dist.dir}/ui/i18n/${concatenated.i18n}.js" />
<concat destfile="${dist.dir}/ui/i18n/${concatenated.i18n}.js" encoding="utf-8">
<fileset dir="${src.dir}/i18n/" includes="ui.*.js" />
</concat>
<echo message="Concatenated i18n built." />
</target>
<target name="minify" depends="concatenate" description="Remove all comments and whitespace, no compression, great in combination with GZip">
<echo message="Building minified" />
<delete dir="${min.folder}/" />
<mkdir dir="${min.folder}" />
<delete dir="${min.folder}/i18n/" />
<mkdir dir="${min.folder}/i18n/" />
<apply executable="java" parallel="false">
<filelist dir="${dist.dir}/ui/" files="${concatenated}.js" />
<fileset dir="${src.dir}/" includes="ui.*.js, effects.*.js" />
<arg line="-jar" />
<arg path="${yui-jar}" />
<arg value="--charset" />
<arg value="UTF-8" />
<srcfile />
<arg line="-o" />
<mapper type="glob" from="*.js" to="${min.folder}/*.min.js" />
<targetfile />
</apply>
<echo message="Minified built." />
<apply executable="java" parallel="false">
<filelist dir="${dist.dir}/ui/i18n/" files="${concatenated.i18n}.js" />
<fileset dir="${src.dir}/i18n/" includes="ui.*.js" />
<arg line="-jar" />
<arg path="${yui-jar}" />
<arg value="--charset" />
<arg value="UTF-8" />
<srcfile />
<arg line="-o" />
<mapper type="glob" from="*.js" to="${min.folder}/i18n/*.min.js" />
<targetfile />
</apply>
<echo message="Minified i18n built." />
</target>
<!-- Using PHP Dean Edwards Packer -->
<target name="pack" depends="concatenate" description="Remove all comments and whitespace and compress">
<echo message="Building packed" />
<delete dir="${packed.folder}/" />
<mkdir dir="${packed.folder}" />
<delete dir="${packed.folder}/i18n/" />
<mkdir dir="${packed.folder}/i18n/" />
<apply executable="php" parallel="false">
<filelist dir="${min.folder}" files="${concatenated}.min.js" />
<fileset dir="${min.folder}" includes="ui.*.min.js, effects.*.min.js" />
<arg path="${pack.php}" />
<srcfile />
<mapper type="glob" from="*.min.js" to="${packed.folder}/*.packed.js" />
<targetfile />
</apply>
<echo message="Packed built." />
<apply executable="php" parallel="false">
<filelist dir="${min.folder}/i18n/" files="${concatenated.i18n}.min.js" />
<fileset dir="${min.folder}/i18n/" includes="ui.*.min.js" />
<arg path="${pack.php}" />
<srcfile />
<mapper type="glob" from="*.min.js" to="${packed.folder}/i18n/*.packed.js" />
<targetfile />
</apply>
<echo message="Packed i18n built." />
</target>
<target description="Copy needed folders" name="copy">
<echo message="Copying files" />
<mkdir dir="${dist.dir}" />
<copy overwrite="true" todir="${dist.dir}/">
<fileset dir="${ui.dir}/" includes="jquery-*.js" />
</copy>
<copy overwrite="true" todir="${dist.dir}/ui/">
<fileset dir="${src.dir}/" includes="ui.*.js, effects.*.js" />
</copy>
<copy overwrite="true" todir="${dist.dir}/ui/i18n/" >
<fileset dir="${src.dir}/i18n/" />
</copy>
<copy overwrite="true" todir="${dist.dir}/">
<fileset dir="${ui.dir}/" includes="*.txt" />
</copy>
<copy overwrite="true" todir="${dist.dir}/demos/" >
<fileset dir="${ui.dir}/demos/" />
</copy>
<copy overwrite="true" todir="${dist.dir}/tests/" >
<fileset dir="${ui.dir}/tests/" />
</copy>
<copy overwrite="true" todir="${dist.dir}/themes/" >
<fileset dir="${ui.dir}/themes/" />
</copy>
<echo message="Files copied." />
</target>
<target name="clean">
<delete dir="dist" />
</target>
<target name="docs-download">
<property name="url" value="http://www.exfer.net/jquery/createjQueryXMLDocs.py?start=UI/" />
<get src="${url}Accordion" dest="docs-accordion.xml" />
<get src="${url}Datepicker" dest="docs-datepicker.xml" />
<get src="${url}Dialog" dest="docs-dialog.xml" />
<get src="${url}Draggable" dest="docs-draggable.xml" />
<get src="${url}Droppable" dest="docs-droppable.xml" />
<get src="${url}Progressbar" dest="docs-progressbar.xml" />
<get src="${url}Resizable" dest="docs-resizable.xml" />
<get src="${url}Selectable" dest="docs-selectable.xml" />
<get src="${url}Slider" dest="docs-slider.xml" />
<get src="${url}Sortable" dest="docs-sortable.xml" />
<get src="${url}Tabs" dest="docs-tabs.xml" />
</target>
<target name="docs-process" depends="docs-download">
<property name="docs.dir" value="${ui.dir}/documentation" />
<delete dir="${docs.dir}" />
<mkdir dir="${docs.dir}" />
<xslt includes="docs-*.xml" destdir="${docs.dir}" style="build/style.xsl" />
</target>
<target name="docs-clean">
<delete>
<fileset file="*.xml" excludes="build.xml" />
</delete>
</target>
</project>