jqplot-zhurosoft / build.xml

<project name="jqPlot" default="all" basedir=".">
    
    <!-- directories for building -->
    <property description="Source directory" name="SRC_DIR" value="src"  />
    <property description="Build, work, temporary directory" name="BUILD_DIR" value="build" />
    <property description="Directory for distributable files" name="DIST_DIR" value="dist" />
    <property description="Directory for web site files" name="WEB_DIR" value="web" />

    <!-- Files names for distribution -->
    <property name="JQPLOT" value="jquery.jqplot.js" />
    <loadfile property="version" srcfile="version.txt" /> 
    <property file="dist.props" />
    
    <!-- misc. properties -->
    <property description="YUICompressor" name="YUICompressor" value="extras/yuicompressor-2.4.2.jar" />
    <loadfile description="Version to build" property="version" srcfile="version.txt" />
    <loadfile description="Copyright and license" property="copyright" srcfile="copyright.txt" />
    <condition property="ND" value="${basedir}/extras/NaturalDocs/NaturalDocs.bat" else="${basedir}/extras/NaturalDocs/NaturalDocs">
      <and>
        <os family="windows" />
      </and>
    </condition>
    <!-->
    <property description="NaturalDocs" name="ND" value="${basedir}/extras/NaturalDocs/NaturalDocs" />
    <property description="NaturalDocs" value="${basedir}/extras/NaturalDocs/NaturalDocs.bat" dir="${basedir}/extras/NaturalDocs">
    -->
    <exec executable="hg" outputproperty="HG_ID">
      <arg value="id"/>
      <arg value="-n"/>
    </exec>

    <!-- MAIN -->
       
    <target name="build" depends="clean" description="create and populate build area for making distribution">
        <echo message="Building jqPlot" />
        <mkdir dir="${BUILD_DIR}" />
        <mkdir dir="${BUILD_DIR}/plugins" />
        <mkdir dir="${BUILD_DIR}/images" />
        <mkdir dir="${BUILD_DIR}/examples" />
        
        <!-- stip out top level closures, concat everything, and wrap in a closure. -->
        <!-- copy all needed files from src to build -->
        <copy todir="${BUILD_DIR}">
          <fileset dir="${SRC_DIR}">
            <include name="*" />
            <exclude name="jquery.jqplot.js" />
            <exclude name="jsl.conf" />
          </fileset>
        </copy>
        
        <copy todir="${BUILD_DIR}/images">
          <fileset dir="${SRC_DIR}/images">
          </fileset>
        </copy>
        
        <copy todir="${BUILD_DIR}/examples">
          <fileset dir="examples">
            <exclude name="_*" />
            <exclude name="bug*" />
          </fileset>
        </copy>
        
        <replaceregexp match='src="../src/' replace='src="../' flags="g">
          <fileset dir="${BUILD_DIR}/examples" includes="*.html" />
        </replaceregexp>
        
        <replaceregexp match='href="../src/' replace='href="../' flags="g">
          <fileset dir="${BUILD_DIR}/examples" includes="*.html" />
        </replaceregexp>
        
        
        <replace file="${BUILD_DIR}/jqPlotOptions.txt" token="{{{" value="(code)" />
        <replace file="${BUILD_DIR}/jqPlotOptions.txt" token="}}}" value="(end)" />
        <replace file="${BUILD_DIR}/jqPlotOptions.txt" token="**" value="*" />
        
        <copy todir="${BUILD_DIR}/plugins">
          <fileset dir="${SRC_DIR}/plugins" includes="*" />
        </copy>
        
        <replaceregexp match="@VERSION" replace="${version}r${HG_ID}">
			<fileset dir="${BUILD_DIR}" includes="jqplot.*.js"/>
		</replaceregexp>
        
        <replaceregexp match="@VERSION" replace="${version}r${HG_ID}">
			<fileset dir="${BUILD_DIR}/plugins" includes="jqplot.*.js"/>
		</replaceregexp>
                
        <!-- remove appropriate opening and closing of closures -->
        <replaceregexp match=".*?\(function\(\$\) \{" replace="" flags="s">
          <fileset dir="${BUILD_DIR}">
            <include name="jqplot.*.js" />
            <include name="jsdate.js" />
            <exclude name="jqplot.core.js" />
          </fileset>
        </replaceregexp>
        
        <replaceregexp match="\}\)\(jQuery\)\;(?!.*\}\)\(jQuery\)\;)" replace="">
          <fileset dir="${BUILD_DIR}">
            <include name="jqplot.*.js" />
            <include name="jsdate.js" />
            <exclude name="jqplot.sprintf.js" />
          </fileset>
        </replaceregexp>
        
        <!-- now cat all files together to make one jqplot source file -->
        <concat destfile="${BUILD_DIR}/${JQPLOT}">
            <fileset dir="${BUILD_DIR}" includes="jqplot.core.js" />
            <fileset dir="${BUILD_DIR}">
              <include name="jqplot.*.js" />
              <include name="jsdate.js" />
              <exclude name="jqplot.core.js" />
              <exclude name="jqplot.sprintf.js" />
            </fileset>
            <fileset dir="${BUILD_DIR}" includes="jqplot.sprintf.js" />
        </concat>
        
    </target>

    <target name="dist" depends="build" description="Build uncompressed jqplot for creating distributions and web site.">
        <echo message="Creating jqPlot distribution" />
        
        <mkdir dir="${DIST_DIR}" />
        <mkdir dir="${DIST_DIR}/plugins" />
        <mkdir dir="${DIST_DIR}/images" />
        <mkdir dir="${DIST_DIR}/examples" />
        
        <!-- now copy files to dist dir. -->
        <copy todir="${DIST_DIR}">
          <fileset dir="${BUILD_DIR}" includes="${JQPLOT}" />
          <fileset dir="${BUILD_DIR}" includes="jquery.jqplot.css" />
          <fileset dir="${BUILD_DIR}" includes="excanvas.js" />
          <fileset dir="${BUILD_DIR}" includes="excanvas.min.js" />
          <fileset dir="" includes="*.php" />
          <fileset dir="" includes="style.css" />
          <fileset dir="" includes="README.txt" />
          <fileset dir="" includes="copyright.txt" />
          <fileset dir="${SRC_DIR}" includes="*.txt" />
          <fileset dir="${SRC_DIR}" includes="jquery-*.js" />
        </copy>
        
        <copy todir="${DIST_DIR}/examples">
          <fileset dir="${BUILD_DIR}/examples" />
        </copy>
        
        <replaceregexp match='src="\./src/' replace='src="\.\./' flags="g">
          <fileset dir="${DIST_DIR}/examples">
            <include name="*.html" />
          </fileset>
        </replaceregexp>
        
        <copy todir="${DIST_DIR}/plugins">
          <fileset dir="${BUILD_DIR}/plugins" includes="*" />
        </copy>
        
        <echo message="jqPlot built." />
    </target>

    <target name="min" depends="dist" description="Minify sources with YUI compressor.">
        <echo message="Building minified sources with YUI Compressor" />
        <mkdir dir="${DIST_DIR}/temp" />
        <mkdir dir="${DIST_DIR}/plugins/temp" />
        <apply executable="java" parallel="false" verbose="true" dest="${DIST_DIR}">
          <fileset dir="${DIST_DIR}">
            <include name="jquery.jqplot.js" />
          </fileset>
          <arg line="-jar" />
          <arg path="${YUICompressor}" />
          <arg value="--charset" />
          <arg value="ANSI" />
          <arg value="-o" />
          <targetfile />
          <mapper type="glob" from="jquery.jqplot.js" to="temp/jquery.jqplot.min.js" />
        </apply>
        <apply executable="java" parallel="false" verbose="true" dest="${DIST_DIR}">
          <fileset dir="${DIST_DIR}">
            <include name="jquery.jqplot.css" />
          </fileset>
          <arg line="-jar" />
          <arg path="${YUICompressor}" />
          <arg value="--charset" />
          <arg value="ANSI" />
          <arg value="-o" />
          <targetfile />
          <mapper type="glob" from="jquery.jqplot.css" to="jquery.jqplot.min.css" />
        </apply>
        <apply executable="java" parallel="false" verbose="true" dest="${DIST_DIR}/plugins">
          <fileset dir="${DIST_DIR}/plugins">
            <include name="jqplot.*.js" />
            <exclude name="jqplot.*.min.js" />
          </fileset>
          <arg line="-jar" />
          <arg path="${YUICompressor}" />
          <arg value="--charset" />
          <arg value="ANSI" />
          <arg value="-o" />
          <targetfile />
          <mapper type="glob" from="jqplot.*.js" to="temp/jqplot.*.min.js" />
        </apply>
        
        <copy todir="${DIST_DIR}">
          <fileset dir="${DIST_DIR}/temp" includes="*.min.js" />
          <filterchain>
            <concatfilter prepend="copyright.txt"/>
          </filterchain>
        </copy>
        
        <delete dir="${DIST_DIR}/temp" />
        
        <copy todir="${DIST_DIR}/plugins">
          <fileset dir="${DIST_DIR}/plugins/temp" includes="*.min.js" />
          <filterchain>
            <concatfilter prepend="copyright.txt"/>
          </filterchain>
        </copy>
        
        <replaceregexp match="@VERSION" replace="${version}r${HG_ID}">
			<fileset dir="${DIST_DIR}">
				<include name="jquery.jqplot.js"/>
				<include name="jquery.jqplot.min.js"/>
				<include name="jqplot.*.js"/>
				<include name="jqplot.*.min.js" />
			</fileset>
		</replaceregexp>
        
        <replaceregexp match="@VERSION" replace="${version}r${HG_ID}">
			<fileset dir="${DIST_DIR}/plugins">
				<include name="jqplot.*.js"/>
				<include name="jqplot.*.min.js" />
			</fileset>
		</replaceregexp>
        
        <delete dir="${DIST_DIR}/plugins/temp" />
        
        <echo message="Minified sources built." />
    </target>
    
    <target name="web" depends="dist, min, docs" description="Create jqPlot.com web site">
        <echo message="Building web site" />
        <mkdir dir="${WEB_DIR}" />
        <copy todir="${WEB_DIR}">
          <fileset dir="${DIST_DIR}">
            <include name="jquery*.js" />
            <include name="jquery.jqplot*.css" />
            <include name="excanvas*.js" />
            <include name="*.php" />
            <include name="style.css" />
          </fileset>
          <fileset dir=".">
            <include name="config.xml" />
          </fileset>
        </copy>
        <copy todir="${WEB_DIR}/images">
          <fileset dir="${DIST_DIR}/images"/>
        </copy>
        <copy todir="${WEB_DIR}/docs">
          <fileset dir="${DIST_DIR}/docs"/>
        </copy>

        <echo message="Creating test folder for web site" />
            <mkdir dir="${WEB_DIR}/tests" />
            <copy todir="${WEB_DIR}/tests">
              <fileset dir="tests" />
            </copy>
            <copy todir="${WEB_DIR}/tests/images">
              <fileset dir="tests/images" includes="*" />
            </copy>
            <replaceregexp match="\.\./src/" replace="\.\./" flags="g">
              <fileset dir="${WEB_DIR}/tests">
                <include name="*.php" />
                <include name="*.html" />
              </fileset>
            </replaceregexp>
            <replaceregexp match="jqplot\.(\w+)\.js" replace="jqplot.\1.min.js" flags="g">
              <fileset dir="${WEB_DIR}/tests" includes="*.php" />
            </replaceregexp>
            <replaceregexp match="jquery.jqplot.js" replace="jquery.jqplot.min.js">
              <fileset dir="${WEB_DIR}/tests" includes="opener.php" />
            </replaceregexp>
        <echo message="Test folder finished" />

        <copy todir="${WEB_DIR}/plugins">
          <fileset dir="${DIST_DIR}/plugins"/>
        </copy>
    </target>
    
  <target name="compress" depends="dist, min, docs" description="Create the zip, gzip, and bzip compressed archives for downloading">
      <zip destfile="${DIST_DIR}/jquery.jqplot.${version}r${HG_ID}.zip"
       basedir=""
       includes="${DIST_DIR}/excanvas*.js ${DIST_DIR}/jquery-*.js ${DIST_DIR}/jquery*.min.js ${DIST_DIR}/jquery.jqplot.* ${DIST_DIR}/*.txt ${DIST_DIR}/plugins/* ${DIST_DIR}/examples/* ${DIST_DIR}/examples/jquery-ui/css/ui-lightness/* ${DIST_DIR}/examples/jquery-ui/css/ui-lightness/images/* ${DIST_DIR}/examples/jquery-ui/js/* ${DIST_DIR}/docs/* ${DIST_DIR}/docs/files/* ${DIST_DIR}/docs/files/examples/* ${DIST_DIR}/docs/files/images/* ${DIST_DIR}/docs/files/plugins/* ${DIST_DIR}/docs/index/* ${DIST_DIR}/docs/javascript/* ${DIST_DIR}/docs/search/* ${DIST_DIR}/docs/styles/*"
      />
      <tar destfile="${DIST_DIR}/jquery.jqplot.${version}r${HG_ID}.tar.gz" compression="gzip">
          <zipfileset src="${DIST_DIR}/jquery.jqplot.${version}r${HG_ID}.zip"/>
      </tar>
      <tar destfile="${DIST_DIR}/jquery.jqplot.${version}r${HG_ID}.tar.bz2" compression="bzip2">
          <zipfileset src="${DIST_DIR}/jquery.jqplot.${version}r${HG_ID}.zip"/>
      </tar>
  </target>

  <target name="docs" depends="dist, min" description="Create documentation for distribution.">
    <echo message="Creating documentation" />
      <!-- don't want to process jquery itself -->
        <move file="${BUILD_DIR}/jquery-1.4.4.js" tofile="${BUILD_DIR}/jquery-1.4.4.js.bak" />
        <mkdir dir="${DIST_DIR}/docs" />
        <!-- rename files we don't used for docs -->
        <move file="${BUILD_DIR}/jquery.jqplot.js" tofile="${BUILD_DIR}/jquery.jqplot.js.bak"/>
        <exec executable="${ND}" dir="${basedir}/extras/NaturalDocs/" >
          <arg value="-r" />
          <arg value="-i" />
          <arg path="${BUILD_DIR}" />
          <arg line="-o HTML " />
          <arg path="dist/docs" />
          <arg value="-p" />
          <arg path="NDdata/" />
          <arg line="-s Default docstyles" />
        </exec>
        <!-- put files back -->
        <move file="${BUILD_DIR}/jquery.jqplot.js.bak" tofile="${BUILD_DIR}/jquery.jqplot.js"/>
        <replaceregexp match="@VERSION" replace="${version}r${HG_ID}" flags="g">
          <fileset dir="${DIST_DIR}/docs/index" includes="*.html" />
          <fileset dir="${DIST_DIR}/docs/files" includes="*.html" />
        </replaceregexp>
        <replace dir="${DIST_DIR}/docs/index" token="${logoDivToken}" value="${logoDivValue}" />
        <replace dir="${DIST_DIR}/docs/files" token="${logoDivToken}" value="${logoDivValue}" />
        <replace dir="${DIST_DIR}/docs/search" token="${logoDivToken}" value="${logoDivValue}" />
        <replace dir="${DIST_DIR}/docs/files/plugins" token="${PIh1Token}" value="${PIh1Value}" />
        <replace dir="${DIST_DIR}/docs/files/plugins" token="${PIh1CloseToken}" value="${PIh1CloseValue}" />
        <replace dir="${DIST_DIR}/docs/files" token="${h1Token}" value="${h1Value}" />
        <replace dir="${DIST_DIR}/docs/files" token="${h1CloseToken}" value="${h1CloseValue}" />

        <copy todir="${DIST_DIR}/docs/files/images">
          <fileset dir="${SRC_DIR}/images" includes="*.jpg" />
          <fileset dir="${SRC_DIR}/images" includes="*.png" />
        </copy>
        <!-- put jquery back the way it was -->
        <move file="${BUILD_DIR}/jquery-1.4.4.js.bak" tofile="${BUILD_DIR}/jquery-1.4.4.js" />
        <echo message="Documentation Finished" />
  </target>

    <target name="clean" description="Clean up, removing build and distribution directories and everything underneath.">
        <delete dir="${BUILD_DIR}" />
        <delete dir="${DIST_DIR}" />
        <delete dir="${WEB_DIR}" />
    </target>

    <target name="everything" depends="all, docs, compress" description="Clean and build distributable files and documentation.">
        <echo message="clean then build distributable files and documentation." />
    </target>

    <target name="all" depends="clean, build, dist, min" description="Clean and build distributable files.">
        <echo message="clean then build distributable files." />
    </target>

</project>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.