<?xml version="1.0" ?>

<project name="PIE" default="build" basedir=".">

    <property name="version" value="1.0.0" />
    <property name="build_dir" value="./build" />
    <property name="src_dir" value="./sources" />

    <target name="clean">
        <delete dir="${build_dir}" />
    </target>

    <target name="build-uncompressed">
        <mkdir dir="${build_dir}" />
        <concat destfile="${build_dir}/script_uncompressed.js">
            <fileset file="${src_dir}/PIE_open.js" />
            <fileset file="${src_dir}/Util.js" />
            <fileset file="${src_dir}/GradientUtil.js" />
            <fileset file="${src_dir}/Observable.js" />
            <fileset file="${src_dir}/Heartbeat.js" />
            <fileset file="${src_dir}/OnUnload.js" />
            <fileset file="${src_dir}/OnResize.js" />
            <fileset file="${src_dir}/OnScroll.js" />
            <fileset file="${src_dir}/OnPrint.js" />
            <fileset file="${src_dir}/OnMouseup.js" />
            <fileset file="${src_dir}/Length.js" />
            <fileset file="${src_dir}/BgPosition.js" />
            <fileset file="${src_dir}/BgSize.js" />
            <fileset file="${src_dir}/Angle.js" />
            <fileset file="${src_dir}/Color.js" />
            <fileset file="${src_dir}/Tokenizer.js" />
            <fileset file="${src_dir}/BoundsInfo.js" />
            <fileset file="${src_dir}/StyleInfoBase.js" />
            <fileset file="${src_dir}/BackgroundStyleInfo.js" />
            <fileset file="${src_dir}/BorderStyleInfo.js" />
            <fileset file="${src_dir}/BorderRadiusStyleInfo.js" />
            <fileset file="${src_dir}/BorderImageStyleInfo.js" />
            <fileset file="${src_dir}/BoxShadowStyleInfo.js" />
            <fileset file="${src_dir}/VisibilityStyleInfo.js" />
            <fileset file="${src_dir}/RendererBase.js" />
            <fileset file="${src_dir}/RootRenderer.js" />
            <fileset file="${src_dir}/BackgroundRenderer.js" />
            <fileset file="${src_dir}/BorderRenderer.js" />
            <fileset file="${src_dir}/BorderImageRenderer.js" />
            <fileset file="${src_dir}/BoxShadowOutsetRenderer.js" />
            <!--<fileset file="${src_dir}/BoxShadowInsetRenderer.js" />-->
            <fileset file="${src_dir}/ImgRenderer.js" />
            <fileset file="${src_dir}/IE9RootRenderer.js" />
            <fileset file="${src_dir}/IE9BackgroundRenderer.js" />
            <fileset file="${src_dir}/IE9BorderImageRenderer.js" />
            <fileset file="${src_dir}/Element.js" />
            <fileset file="${src_dir}/PIE_API.js" />
            <fileset file="${src_dir}/PIE_close.js" />
        </concat>

        <concat destfile="${build_dir}/PIE_uncompressed.htc">
            <fileset file="${src_dir}/htc_open.txt" />
            <fileset file="${build_dir}/script_uncompressed.js" />
            <fileset file="${src_dir}/htc_init.js" />
            <fileset file="${src_dir}/htc_close.txt" />
        </concat>

        <concat destfile="${build_dir}/PIE_uncompressed.js">
            <fileset file="${src_dir}/js_open.js" />
            <fileset file="${build_dir}/script_uncompressed.js" />
            <fileset file="${src_dir}/js_close.js" />
        </concat>

        <replace file="${build_dir}/PIE_uncompressed.htc" token="$Version$" value="${version}"/>
        <replace file="${build_dir}/PIE_uncompressed.js" token="$Version$" value="${version}"/>
    </target>

    <target name="build-compressed" depends="build-uncompressed">
        <exec executable="java">
            <arg line='-jar tools/compiler.jar
                       --js ${build_dir}/script_uncompressed.js
                       --js ${src_dir}/htc_init.js
                       --js ${src_dir}/closure_preservefunctions.js
                       --module "script_compressed:1"
                       --module "htc_init_compressed:1"
                       --module "temp:1"
                       --module_output_path_prefix ${build_dir}/
                       --compilation_level ADVANCED_OPTIMIZATIONS
                       --externs ${src_dir}/closure_externs.js' />
        </exec>

        <concat destfile="${build_dir}/PIE.htc">
            <fileset file="${src_dir}/htc_open.txt" />
            <fileset file="${build_dir}/script_compressed.js" />
            <fileset file="${build_dir}/htc_init_compressed.js" />
            <fileset file="${src_dir}/htc_close.txt" />
        </concat>

        <concat destfile="${build_dir}/PIE.js">
            <fileset file="${src_dir}/js_open.js" />
            <fileset file="${build_dir}/script_compressed.js" />
            <fileset file="${src_dir}/js_close.js" />
        </concat>

        <replace file="${build_dir}/PIE.htc" token="$Version$" value="${version}"/>
        <replace file="${build_dir}/PIE.js" token="$Version$" value="${version}"/>

        <delete file="${build_dir}/temp.js" />
        <delete file="${build_dir}/htc_init_compressed.js" />
        <delete file="${build_dir}/script_uncompressed.js" />
        <delete file="${build_dir}/script_compressed.js" />
    </target>


    <target name="copy-wrappers">
        <copy todir="${build_dir}">
            <fileset dir="${src_dir}/wrappers" />
        </copy>
    </target>


    <target name="build" depends="build-uncompressed,build-compressed" />

    <target name="package" depends="clean,build,copy-wrappers">
        <!-- Create distribution bundle -->
        <zip destfile="${build_dir}/PIE.zip" basedir="${build_dir}"/>
    </target>

</project>
