<?xml version="1.0" standalone="yes"?>
<!--
    Copyright 2009 Matt Snider, LLC. All rights reserved.
-->
<project basedir="." default="package">

	<!-- makes all environment variables accessable from within this ant script using the .env prefix -->
	<property environment="env"/>

    <!-- file locations -->
	<property name="builddir" value="${basedir}/../core/build/"/>
	<property name="jsdir" value="${basedir}/www/assets/js/"/>
	<property name="cssdir" value="${basedir}/www/assets/css/"/>

    <!-- location of the YUI compressor relative to the base dir -->
    <property name="yuicompressor" value="${builddir}../bin/yuicompressor-2.4.2.jar"/>

	<!-- if not set in environment (ie. a developer build) this is the default build number -->
	<property name="env.BUILD_NUMBER" value="dev"/>

    <!-- which tier am I -->
	<property name="tier" value="web"/>

	<!-- targets -->

	<target name="clean" description="Deletes all the generated artifacts">
		<subant target="clean">
			<filelist dir="${builddir}">
				<file name="../build.xml"/>
            </filelist>
        </subant>
		<delete file="${jsdir}library.js"/>
		<delete file="${jsdir}library-build.js"/>
		<delete file="${jsdir}library-min.js"/>
		<delete file="${jsdir}dp.highlighter.js"/>
		<delete file="${cssdir}library.js"/>
		<delete file="${cssdir}library-build.js"/>
		<delete file="${cssdir}library-min.js"/>
	</target>

    <target name="packaged.core" description="Ensures that core is packaged">
		<subant target="package">
			<filelist dir="${builddir}">
				<file name="../build.xml"/>
            </filelist>
        </subant>
    </target>

    <target name="create.consolidate.build.directories">
		<!-- javascript build directories -->
		<mkdir dir="${builddir}js"/>

        <!-- css build directories -->
		<mkdir dir="${builddir}css"/>
	</target>

    <!-- @start consolidate dp.highlighter.js -->
    <target name="reconsolidate.dp.highlighter.js.check" depends="packaged.core, create.consolidate.build.directories">
		<condition property="dp.highlighter.js.uptodate">
			<uptodate targetfile="${jsdir}dp.highlighter.js">
				<srcfiles dir="${jsdir}sh" includes="shCore.js"/>
				<srcfiles dir="${jsdir}sh" includes="shBrushXml.js"/>
				<srcfiles dir="${jsdir}sh" includes="shBrushVb.js"/>
				<srcfiles dir="${jsdir}sh" includes="shBrushSql.js"/>
				<srcfiles dir="${jsdir}sh" includes="shBrushRuby.js"/>
				<srcfiles dir="${jsdir}sh" includes="shBrushPython.js"/>
				<srcfiles dir="${jsdir}sh" includes="shBrushPhp.js"/>
				<srcfiles dir="${jsdir}sh" includes="shBrushJScript.js"/>
				<srcfiles dir="${jsdir}sh" includes="shBrushJava.js"/>
				<srcfiles dir="${jsdir}sh" includes="shBrushDelphi.js"/>
				<srcfiles dir="${jsdir}sh" includes="shBrushCss.js"/>
				<srcfiles dir="${jsdir}sh" includes="shBrushCSharp.js"/>
				<srcfiles dir="${jsdir}sh" includes="shBrushCpp.js"/>
			</uptodate>
		</condition>
	</target>

	<target name="consolidate.dp.highlighter.js" depends="packaged.core, reconsolidate.dp.highlighter.js.check" unless="dp.highlighter.js.uptodate">
		<echo message="processing dp.highlighter.js"/>

        <concat destfile="${jsdir}dp.highlighter.js">
			<filelist dir="${jsdir}sh">
				<file name="shCore.js"/>
				<file name="shBrushXml.js"/>
				<file name="shBrushVb.js"/>
				<file name="shBrushSql.js"/>
				<file name="shBrushRuby.js"/>
				<file name="shBrushPython.js"/>
				<file name="shBrushPhp.js"/>
				<file name="shBrushJScript.js"/>
				<file name="shBrushJava.js"/>
				<file name="shBrushDelphi.js"/>
				<file name="shBrushCss.js"/>
				<file name="shBrushCSharp.js"/>
				<file name="shBrushCpp.js"/>
			</filelist>
		</concat>

        <java jar="${yuicompressor}" fork="true" failonerror="true" output="${jsdir}dp.highlighter-min.js">
			<arg value="--charset" />
			<arg value="UTF-8" />
			<arg value="--line-break" />
			<arg value="0" />
			<arg value="${jsdir}dp.highlighter.js" />
		</java>
	</target>
    <!-- @end consolidate dp.highlighter.js -->

    <!-- @start consolidate library.js -->
    <target name="reconsolidate.library.js.check" depends="packaged.core, create.consolidate.build.directories">
		<condition property="library.js.uptodate">
			<uptodate targetfile="${jsdir}library.js">
				<srcfiles dir="${builddir}js" includes="library.js"/>
				<srcfiles dir="${jsdir}" includes="blog.js"/>
			</uptodate>
		</condition>
	</target>

	<target name="consolidate.library.js" depends="packaged.core, reconsolidate.library.js.check" unless="library.js.uptodate">
		<echo message="processing library.js"/>

        <copy file="${builddir}js/library.js" tofile="${jsdir}library-build.js" />

        <concat destfile="${jsdir}library.js">
			<filelist dir="${jsdir}">
				<file name="library-build.js"/>
				<file name="blog.js"/>
			</filelist>
		</concat>

        <delete file="${jsdir}library-build.js" />

        <java jar="${yuicompressor}" fork="true" failonerror="true" output="${jsdir}library-min.js">
			<arg value="--charset" />
			<arg value="UTF-8" />
			<arg value="--line-break" />
			<arg value="0" />
			<arg value="${jsdir}library.js" />
		</java>
	</target>
    <!-- @end consolidate library.js -->

    <!-- @start consolidate library.css -->
    <target name="reconsolidate.library.css.check" depends="packaged.core, create.consolidate.build.directories">
		<condition property="library.css.uptodate">
			<uptodate targetfile="${cssdir}library.css">
				<srcfiles dir="${builddir}css/" includes="library.css"/>
				<srcfiles dir="${cssdir}" includes="layout.css"/>
			</uptodate>
		</condition>
	</target>

	<target name="consolidate.library.css" depends="reconsolidate.library.css.check" unless="library.css.uptodate">
		<echo message="processing library.css"/>

        <copy file="${builddir}css/library.css" tofile="${cssdir}library-build.css" />

        <concat destfile="${cssdir}library.css">
			<filelist dir="${cssdir}">
				<file name="library-build.css"/>
				<file name="layout.css"/>
			</filelist>
		</concat>

        <delete file="${cssdir}library-build.css" />

		<java jar="${yuicompressor}" fork="true" failonerror="true" output="${cssdir}library-min.css">
			<arg value="--charset" />
			<arg value="UTF-8" />
			<arg value="${cssdir}library.css" />
		</java>
	</target>
    <!-- @end consolidate library.css -->

	<target name="package" description="Produce consolidated and compressed JS and CSS files" depends="consolidate.library.js, consolidate.dp.highlighter.js, consolidate.library.css"  unless="js.and.css.uptodate">
        <!--<copy todir="${basedir}/WebContent/sc/dev000/js/">
			<fileset file="${builddir}js-consolidated/*.js"/>
		</copy>

		<copy todir="${basedir}/WebContent/sc/dev000/css/">
			<fileset file="${builddir}css-consolidated/*.css"/>
		</copy>-->
	</target>
</project>
