jqplot / 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" />

    <!-- Files names for distribution -->
    <property name="JQPLOT" value="jquery.jqplot.js" />
	  <loadfile property="version" srcfile="version.txt" /> 
	  
	  <!-- misc. properties -->
    <property description="YUICompressor" name="YUICompressor" value="extras/yuicompressor-2.4.2.jar" />
	  <loadfile description="Version to build" property="version" srcfile="version.txt" />
	  <property description="NaturalDocs" name="ND" value="extras/NaturalDocs/NaturalDocs" />

    <!-- MAIN -->

    <target name="dist" description="Build uncompressed jqplot for distribution.">
        <echo message="Building jqPlot" />
        <mkdir dir="${BUILD_DIR}" />
        <mkdir dir="${DIST_DIR}" />
        <mkdir dir="${BUILD_DIR}/plugins" />
        <mkdir dir="${DIST_DIR}/plugins" />
        <!-- 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="excanvas.min.js" />
            <include name="jqplot.*.js" />
            <exclude name="jquery.jqplot.js" />
          </fileset>
        </copy>
    	  <replaceregexp match="@VERSION" replace="${version}" file="${BUILD_DIR}/jqplot.core.js" />
        <copy todir="${BUILD_DIR}/plugins">
          <fileset dir="${SRC_DIR}/plugins" includes="*" />
        </copy>
                
        <!-- remove appropriate opening and closing of closures -->
        <replaceregexp match="\(function\(\$\) \{" replace="">
          <fileset dir="${BUILD_DIR}">
            <include name="jqplot.*.js" />
            <exclude name="jqplot.core.js" />
          </fileset>
        </replaceregexp>
        <replaceregexp match="\}\)\(jQuery\)\;(?!.*\}\)\(jQuery\)\;)" replace="">
          <fileset dir="${BUILD_DIR}">
            <include name="jqplot.*.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" />
              <exclude name="jqplot.core.js" />
              <exclude name="jqplot.sprintf.js" />
            </fileset>
            <fileset dir="${BUILD_DIR}" includes="jqplot.sprintf.js" />
        </concat>
        
        <!-- now copy files to dist dir. -->
        <copy todir="${DIST_DIR}">
          <fileset dir="${BUILD_DIR}" includes="${JQPLOT}" />
        </copy>
        
        <copy todir="${DIST_DIR}/plugins">
          <fileset dir="${BUILD_DIR}/plugins" includes="*" />
        </copy>
        
        <copy todir="${DIST_DIR}">
          <fileset dir="${BUILD_DIR}" includes="excanvas.min.js" />
        </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" />
    		<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="jquery.jqplot.min.js" />
    		</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="jqplot.*.min.js" />
    		</apply>
        <echo message="Minified sources built." />
    </target>

	<target name="tests" depends="dist" description="Create test suite for distribution.">
		<echo message="Creating automated test suite for distribtion" />
    <mkdir dir="${DIST_DIR}/tests" />
    <copy todir="${DIST_DIR}/tests">
      <fileset dir="tests" includes="*" />
    </copy>
    <copy todir="${DIST_DIR}/tests/jspec/lib">
      <fileset dir="tests/jspec/lib" includes="jspec.min.*" />
    </copy>
    <copy todir="${DIST_DIR}/tests/jspec/lib/images">
      <fileset dir="tests/jspec/lib/images" includes="*" />
    </copy>
    <replaceregexp match="\.\./src/" replace="\.\./" flags="g" file="${DIST_DIR}/tests/index.html" />
		<echo message="Test Suite Finished" />
	</target>

	<target name="docs" depends="dist" description="Create documentation for distribution.">
		<echo message="Creating documentation" />
    <mkdir dir="${DIST_DIR}/docs" />
    <exec executable="${ND}">
      <arg value="-r" />
      <arg value="-i" />
      <arg path="src" />
      <arg line="-o HTML " />
      <arg path="dist/docs" />
      <arg value="-p" />
      <arg path="NDdata/" />
      <arg line="-s Default docstyles" />
    </exec>
		<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}" />
    </target>

    <target name="all" depends="clean,dist,min,tests,docs" description="Clean then build everything (distribution, minify, tests and docs).">
        <echo message="Build complete distribution, docs and tests" />
    </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.