<!--
 * weinre is available under *either* the terms of the modified BSD license *or* the
 * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
 * 
 * Copyright (c) 2010, 2011 IBM Corporation
-->

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

    <!-- ============================================================
         set properties
         ============================================================ -->
    
    <property file="personal.properties" />
    <property file="build.properties" />
    <property file="vendor.properties" />

    <!-- hint: override in your personal.properties -->
    <property name="BUILDER" value="The Unknown Builder"/>
    
    <basename property="ant.file.basename" file="${ant.file}"/>

    <available property="VENDOR_FOUND"   file="${VENDOR}"/>
    
    <tstamp>
        <format property="TSTAMP_STARTED" pattern="HH:mm:ss"/>
    </tstamp>

    <tstamp>
        <format property="BUILD_NUMBER_DATE" pattern="yyyy-MM-dd--HH-mm-ss" timezone="GMT"/>
    </tstamp>
    
    <property name="BUILD_NUMBER" value="${WEINRE_VERSION}build-${BUILD_NUMBER_DATE}"/>
    
    
    <!-- ============================================================
         main entry point
         ============================================================ -->
    
    <target name="build" depends="build-dev">
        <antcall target="build-jar"/>
        <antcall target="build-ui-jar"/>
        <antcall target="build-application-mac"/>
        <antcall target="build-archives"/>

        <echo>full ant build completed successfully</echo>
    </target>

    <!-- ============================================================
         clean
         ============================================================ -->

    <target name="clean">
        <delete dir="${OUT}"/>
        <mkdir  dir="${OUT}"/> <!-- this is an Eclipse source folder! -->
        
        <delete dir="${TMP}"/>
        <delete dir="${CACHED}"/>
        <delete dir="${VENDOR}"/>
    </target>
    
    <!-- ============================================================
         development-time build
         ============================================================ -->

    <target name="build-dev">
        <delete dir="${OUT}"/>
        <mkdir  dir="${OUT}"/>
        
        <property 
            name  = "build-info-text"
            value = "weinre build ${BUILD_NUMBER} by ${BUILDER}"
        />
        
        <echo file="${OUT}/build-info.txt" message="${build-info-text}"/>
        
        <antcall target="build-vendor"/>
        <antcall target="compile-java"/>
        <antcall target="build-web"/>
        <antcall target="build-doc"/>
        <antcall target="build-json-idl"/>
        <antcall target="build-client"/>
        <antcall target="build-target"/>

        <tstamp>
            <format property="TSTAMP_FINISHED" pattern="HH:mm:ss"/>
        </tstamp>
        
        <property name="MESSAGE_FINISHED" value="at ${TSTAMP_FINISHED} for ${ant.file}:build-dev"/>

        <antcall target="finished"/>
        <antcall target="finished-growl"/>
    </target>

    <!-- ============================================================
         compile java code
         ============================================================ -->

    <target name="compile-java" if="USE_JAVAC">
        <delete dir="../${PROJECT_SERVER}/bin"/>
        <mkdir  dir="../${PROJECT_SERVER}/bin"/>

        <javac 
            srcdir            = "../${PROJECT_SERVER}/src"
            destdir           = "../${PROJECT_SERVER}/bin"
            debug             = "true"
            verbose           = "false"
            includeAntRuntime = "false"
        >
            <classpath path="../${PROJECT_BUILD}/vendor/cli/commons-cli.jar"/>
            <classpath path="../${PROJECT_BUILD}/vendor/jetty/jetty.jar"/>
            <classpath path="../${PROJECT_BUILD}/vendor/json4j/json4j.jar"/>
            <classpath path="../${PROJECT_BUILD}/vendor/jetty/servlet-api.jar"/>
            <compilerarg value="-Xlint"/>
        </javac>
        
        <delete dir="../${PROJECT_APPLICATION}/bin"/>
        <mkdir  dir="../${PROJECT_APPLICATION}/bin"/>
        
        <javac 
            srcdir            = "../${PROJECT_APPLICATION}/src"
            destdir           = "../${PROJECT_APPLICATION}/bin"
            debug             = "true"
            verbose           = "false"
            includeAntRuntime = "false"
        >
            <classpath path="../${PROJECT_SERVER}/bin"/>
            <classpath path="../${PROJECT_BUILD}/vendor/json4j/json4j.jar"/>
            <classpath path="../${PROJECT_BUILD}/vendor/swt/cocoa-macosx-x86_64/swt.jar"/>
            <compilerarg value="-Xlint"/>
        </javac>
        
    </target>
        
    <!-- ============================================================
         build vendor libs
         ============================================================ -->

    <target name="build-vendor" unless="VENDOR_FOUND">
        <ant antfile="get-vendor.xml"/>
    </target>
        
    <!-- ============================================================
         basic web resources
         ============================================================ -->

    <target name="build-web">
        <delete dir="${WEB}" />
        <mkdir  dir="${WEB}" />
        
        <delete dir="${TMP}" />
        <mkdir  dir="${TMP}" />

        <echo message="compiling scoop modules"/>
        <exec executable="python" failonerror="true" failifexecutionfails="true">
            <arg  file="vendor/scooj/scoopc.py"/>
            <arg value="--out"/>
            <arg  file="${TMP}/modules"/>
            <arg  file="../${PROJECT_WEB}/modules"/>
        </exec>
            
        <copy todir="${TMP}/modules">
            <fileset file="${VENDOR}/scooj/scooj.js"/>
        </copy>
        
        <echo message="transportd-izing modules"/>
        <exec executable="python" failonerror="true" failifexecutionfails="true">
            <arg  file="vendor/modjewel/module2transportd.py"/>
            <arg value="--quiet"/>
            <arg value="--out"/>
            <arg  file="${WEB}"/>
            <arg  file="${TMP}/modules"/>
        </exec>

        <copy todir="${WEB}">
            <fileset file="${VENDOR}/modjewel/modjewel-require.js"/>
        </copy>
        
        <copy todir="${WEB}">
            <fileset file="${VENDOR}/json2/json2.js"/>
        </copy>
        
        <copy todir="${WEB}">
            <fileset dir="../${PROJECT_WEB}">
                <exclude name="versions.js"/>
                <exclude name="common/**/*"/>
                <exclude name="bin/**/*"/>
                <include name="**/*.js"/>
                <include name="**/*.css"/>
                <include name="**/*.html"/>
                <include name="**/*.png"/>
            </fileset>
        </copy>

        <echo message="building InjectedScript.js"/>
        <echo 
            file    = "${WEB}/weinre/target/InjectedScript.js"
            message = "var injectedScriptConstructor = ${line.separator}"
        />
        <concat 
            destfile = "${WEB}/weinre/target/InjectedScript.js"
            append   = "true"
        >
            <fileset file="${VENDOR}/webkit/WebCore/inspector/InjectedScriptSource.js"/>
        </concat>
            
        <echo message="building versions.js"/>
        <copy todir="${WEB}">
            <fileset dir="../${PROJECT_WEB}">
                <include name="versions.js"/>
            </fileset>
        
            <filterset>
                <filter token="WEINRE_VERSION"             value="${WEINRE_VERSION}"/>
                <filter token="BUILD_NUMBER"               value="${BUILD_NUMBER}"/>
                <filter token="BUILD_NUMBER_DATE"          value="${BUILD_NUMBER_DATE}"/>
                <filter token="CLI_VERSION"                value="${CLI_VERSION}"/>
                <filter token="JSON4J_VERSION"             value="${JSON4J_VERSION}"/>
                <filter token="JSON2_VERSION"              value="${JSON2_VERSION}"/>
                <filter token="WEBKIT_VERSION"             value="${WEBKIT_VERSION}"/>
                <filter token="SWT_VERSION"                value="${SWT_VERSION}"/>
                <filter token="JETTY_VERSION"              value="${JETTY_VERSION}"/>
                <filter token="SCOOJ_VERSION"              value="${SCOOJ_VERSION}"/>
                <filter token="MODJEWEL_VERSION"           value="${MODJEWEL_VERSION}"/>
                <filter token="JAVAX_SERVLET_VERSION"      value="${JAVAX_SERVLET_VERSION}"/>
                <filter token="JAVAX_SERVLET_VERSION_IMPL" value="${JAVAX_SERVLET_VERSION_IMPL}"/>
            </filterset>
        </copy>

        <echo message="building add-css-properties.js"/>
        <exec executable="python" failonerror="true" failifexecutionfails="true">
            <arg  file="scripts/build-css-properties.py"/>
            <arg value="vendor/webkit/WebCore/CSSPropertyNames.in"/>
            <arg value="${WEB}/add-css-properties.js"/>
        </exec>
        
    </target>

    <!-- ============================================================
         documentation
         ============================================================ -->

    <target name="build-doc">

        <mkdir  dir="${WEB}/doc" />
        
        <copy todir="${WEB}/doc" file="${OUT}/build-info.txt"/>
        
        <build-html name="Building"     oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/>
        <build-html name="Home"         oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/>
        <build-html name="Installing"   oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/>
        <build-html name="License"      oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/>
        <build-html name="Running"      oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/>
        <build-html name="MultiUser"    oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/>
        <build-html name="Security"     oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/>
        <build-html name="TestDrive"    oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/>
        <build-html name="ChangeLog"    oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/>
        
        <copy file="${WEB}/doc/Home.html" tofile="${WEB}/doc/index.html"/>
        
        <copy todir="${WEB}/doc/images" file="../${PROJECT_WEB}/images/weinre-icon-64x64.png"/>

        <copy todir="${WEB}/doc/css">     <fileset dir="../${PROJECT_DOC}/css"/>     </copy>
        <copy todir="${WEB}/doc/images">  <fileset dir="../${PROJECT_DOC}/images"/>  </copy>
        <copy todir="${WEB}/doc/scripts"> <fileset dir="../${PROJECT_DOC}/scripts"/> </copy>
        
    </target>
    
    <!-- ============================================================
         convert IDL to JSON (cached)
         ============================================================ -->

    <target name="build-json-idl">
        <uptodate property="JSON_IDL_UPTODATE" targetfile="${CACHED}/json-idl/all-json-idls.js">
            <srcfiles dir="../${PROJECT_SERVER}/interfaces"    includes="*.idl"/>
            <srcfiles dir="${VENDOR}/webkit/WebCore/inspector" includes="*.idl"/>
        </uptodate>
        
        <antcall target="build-json-idl-fresh"/>
        
        <copy todir="${WEB}/interfaces"> <fileset dir="${CACHED}/json-idl"/></copy>
    </target>
    
    <!-- ============================================================
         convert IDL to JSON (slow part)
         ============================================================ -->
    
    <target name="build-json-idl-fresh" unless="JSON_IDL_UPTODATE">

        <delete dir="${CACHED}/json-idl"/>
        <mkdir  dir="${CACHED}/json-idl"/>
        
        <simple-idl2json name="WeinreClientCommands"      oDir="${CACHED}/json-idl" iDir="../${PROJECT_SERVER}/interfaces"/>
        <simple-idl2json name="WeinreClientEvents"        oDir="${CACHED}/json-idl" iDir="../${PROJECT_SERVER}/interfaces"/>
        <simple-idl2json name="WeinreTargetCommands"      oDir="${CACHED}/json-idl" iDir="../${PROJECT_SERVER}/interfaces"/>
        <simple-idl2json name="WeinreTargetEvents"        oDir="${CACHED}/json-idl" iDir="../${PROJECT_SERVER}/interfaces"/>
        <simple-idl2json name="WeinreExtraClientCommands" oDir="${CACHED}/json-idl" iDir="../${PROJECT_SERVER}/interfaces"/>
        <simple-idl2json name="WeinreExtraTargetEvents"   oDir="${CACHED}/json-idl" iDir="../${PROJECT_SERVER}/interfaces"/>

        <simple-idl2json name="InjectedScriptHost"    oDir="${CACHED}/json-idl" iDir="${VENDOR}/webkit/WebCore/inspector"/>
        
        <simple-idl2json name="Inspector"             oDir="${CACHED}/json-idl" iDir="${VENDOR}/webkit/WebCore/inspector">
            <arg value="--anyType"/>
            <arg value="Value"/>
        </simple-idl2json>
        
        <simple-idl2json name="InspectorFrontendHost" oDir="${CACHED}/json-idl" iDir="${VENDOR}/webkit/WebCore/inspector">
            <arg value="--anyType"/>
            <arg value="MouseEvent"/>
        </simple-idl2json>

        <exec executable="python" failonerror="true" failifexecutionfails="true">
            <arg file="scripts/collect-all-json-idl.py"/>
            <arg file="${CACHED}/json-idl/all-json-idls.js"/>
            <arg file="${CACHED}/json-idl"/>
        </exec>

        <exec executable="python" failonerror="true" failifexecutionfails="true">
            <arg file="scripts/collect-all-json-idl.py"/>
            <arg value="-min"/>
            <arg file="${CACHED}/json-idl/all-json-idls-min.js"/>
            <arg file="${CACHED}/json-idl"/>
        </exec>

    </target>

    <!-- ============================================================
         build the web/target files
         ============================================================ -->

    <target name="build-target">
        
        <mkdir dir="${WEB}/target"/>
        
        <exec executable="python" failonerror="true" failifexecutionfails="true">
            <arg file="scripts/build-target-scripts.py"/>
            <arg file="../${PROJECT_WEB}/demo/weinre-demo-pieces.html"/>
            <arg file="${WEB}"/>
            <arg file="${WEB}/target"/>
        </exec>
        
    </target>

    <!-- ============================================================
         build the web/client files
         ============================================================ -->
        
    <target name="build-client">
        
        <copy todir="${WEB}/client/nls/English.lproj">
            <fileset file="${VENDOR}/webkit/WebCore/English.lproj/localizedStrings.js"/>
        </copy>

        <copy todir="${WEB}/client">
            <fileset dir="${VENDOR}/webkit/WebCore/inspector/front-end"/>
        </copy>

        <exec executable="python" failonerror="true" failifexecutionfails="true">
            <arg file="scripts/build-client-html.py"/>
            <arg file="${WEB}"/>
        </exec>
        
    </target>
    
    <!-- ============================================================
         build the main jar
         ============================================================ -->
        
    <target name="build-jar">
        
        <jar destfile="${OUT}/weinre.jar">
            <manifest>
                <attribute name="Built-By" value="${ant.file.basename} - ${ant.project.name}"/>
                <attribute name="Main-Class" value="weinre.server.Main"/>
            </manifest>
            
            <fileset file="${OUT}/build-info.txt"/>

            <zipfileset src="${VENDOR}/jetty/jetty.jar">
                <exclude name="about*.html"/>
                <exclude name="META-INF/**/*"/>
            </zipfileset>
            
            <zipfileset src="${VENDOR}/jetty/servlet-api.jar">
                <exclude name="META-INF/**/*"/>
            </zipfileset>
            
            <zipfileset src="${VENDOR}/cli/commons-cli.jar">
                <exclude name="META-INF/**/*"/>
            </zipfileset>
            
            <zipfileset src="${VENDOR}/json4j/json4j.jar">
                <exclude name="META-INF/**/*"/>
            </zipfileset>
            
            <fileset dir="../${PROJECT_SERVER}/bin"/>
                
            <zipfileset dir="${WEB}" prefix="web"/>
        </jar>
        
    </target>

    <!-- ============================================================
         build the ui jar
         ============================================================ -->
        
    <target name="build-ui-jar">

        <fileset dir="../${PROJECT_APPLICATION}/bin"/>

        <jar destfile="${OUT}/weinre-ui.jar">
            <manifest>
                <attribute name="Built-By" value="${ant.file.basename} - ${ant.project.name}"/>
                <attribute name="Main-Class" value="weinre.application.GUIMain"/>
            </manifest>
            
            <fileset file="${OUT}/build-info.txt"/>
            
            <fileset dir="../${PROJECT_APPLICATION}/bin"/>
            
            <zipfileset src="${VENDOR}/swt/cocoa-macosx-x86_64/swt.jar">
                <exclude name="META-INF/**/*"/>
            </zipfileset>
        </jar>
        
    </target>

    <!-- ============================================================
         build the mac application
         ============================================================ -->
        
    <target name="build-application-mac">
        <delete dir="${OUT}/applications/mac"/>
        <mkdir  dir="${OUT}/applications/mac/weinre.app"/>

        <copy todir="${OUT}/applications/mac/weinre.app">
            <fileset dir="../${PROJECT_APPLICATION}/resources/macosx/weinre.app">
                <exclude name="**/Info.plist"/>
            </fileset>
        </copy>
        
        <copy todir="${OUT}/applications/mac/weinre.app">
            <fileset dir="../${PROJECT_APPLICATION}/resources/macosx/weinre.app">
                <include name="**/Info.plist"/>
            </fileset>
            <filterset>
                <filter token="VERSION" value="${WEINRE_VERSION}"/>
            </filterset>
        </copy>
        
        <chmod file="${OUT}/applications/mac/weinre.app/Contents/MacOS/launcher" perm="+x"/>
        <copy todir="${OUT}/applications/mac/weinre.app/Contents/MacOS" file="${OUT}/weinre.jar" />
        <copy todir="${OUT}/applications/mac/weinre.app/Contents/MacOS" file="${OUT}/weinre-ui.jar"/>
        <copy todir="${OUT}/applications/mac/weinre.app/Contents/Resources" file="${OUT}/build-info.txt"/>
        
    </target>

    <!-- ============================================================
         build the archives
         ============================================================ -->
    <target name="build-archives">
        
        <!-- =================================== -->
        <delete dir="${OUT}/archives"/>
        <mkdir  dir="${OUT}/archives"/>
        
        <delete dir="${OUT}/files"/>
        
        <delete dir="${OUT}/files/weinre-jar"/>
        <mkdir  dir="${OUT}/files/weinre-jar"/>
        <copy todir="${OUT}/files/weinre-jar" file="${OUT}/build-info.txt"/>
        <copy todir="${OUT}/files/weinre-jar" file="${OUT}/weinre.jar"/>

        <!-- ant's zip task doesn't preserve permission bits -->
        <exec executable="zip" dir="${OUT}/files">
            <arg value="-q"/>
            <arg value="-r"/>
            <arg value="../archives/weinre-jar-${BUILD_NUMBER}.zip"/>
            <arg value="weinre-jar"/>
        </exec>

        <!-- =================================== -->
        <delete dir="${OUT}/files/weinre-mac"/>
        <mkdir  dir="${OUT}/files/weinre-mac"/>
        <copy todir="${OUT}/files/weinre-mac" file="${OUT}/build-info.txt" />
        <copy todir="${OUT}/files/weinre-mac">
            <fileset dir="${OUT}/applications/mac"/>
        </copy>
        <chmod file="${OUT}/files/weinre-mac/weinre.app/Contents/MacOS/launcher" perm="+x"/>
        
        <!-- ant's zip task doesn't preserve permission bits -->
        <exec executable="zip" dir="${OUT}/files">
            <arg value="-q"/>
            <arg value="-r"/>
            <arg value="../archives/weinre-mac-${BUILD_NUMBER}.zip"/>
            <arg value="weinre-mac"/>
        </exec>

        <!-- =================================== -->
        <delete dir="${OUT}/files/weinre-doc"/>
        <mkdir  dir="${OUT}/files/weinre-doc"/>
        <copy todir="${OUT}/files/weinre-doc" file="${OUT}/build-info.txt" />
        <copy todir="${OUT}/files/weinre-doc">
            <fileset dir="${OUT}/web/doc"/>
        </copy>
        
        <!-- ant's zip task doesn't preserve permission bits -->
        <exec executable="zip" dir="${OUT}/files">
            <arg value="-q"/>
            <arg value="-r"/>
            <arg value="../archives/weinre-doc-${BUILD_NUMBER}.zip"/>
            <arg value="weinre-doc"/>
        </exec>

        <!-- =================================== -->
        <delete dir="${OUT}/files/weinre-src"/>
        <mkdir  dir="${OUT}/files/weinre-src"/>
        <copy todir="${OUT}/files/weinre-src" file="${OUT}/build-info.txt" />
        <copy todir="${OUT}/files/weinre-src/weinre.application"> <fileset dir="../weinre.application" excludes="**/bin/"/></copy>
        <copy todir="${OUT}/files/weinre-src/weinre.build">       <fileset dir="../weinre.build"       excludes="**/bin/, **/out/, **/cached/, **/vendor/, **/tmp/"/></copy>
        <copy todir="${OUT}/files/weinre-src/weinre.doc">         <fileset dir="../weinre.doc"         excludes="**/bin/"/></copy>
        <copy todir="${OUT}/files/weinre-src/weinre.server">      <fileset dir="../weinre.server"      excludes="**/bin/"/></copy>
        <copy todir="${OUT}/files/weinre-src/weinre.web">         <fileset dir="../weinre.web"         excludes="**/bin/"/></copy>
        
        <!-- ant's zip task doesn't preserve permission bits -->
        <exec executable="zip" dir="${OUT}/files">
            <arg value="-q"/>
            <arg value="-r"/>
            <arg value="../archives/weinre-src-${BUILD_NUMBER}.zip"/>
            <arg value="weinre-src"/>
        </exec>
        
        <!-- =================================== -->
        <delete dir="${OUT}/files"/>
        
    </target>
            
    
    <!-- ============================================================
         done!
         ============================================================ -->
             
    <target name="finished">
        <echo>ant completed successfully ${MESSAGE_FINISHED}</echo>
    </target>
    
    <!-- ============================================================
         done! via growl
         ============================================================ -->
             
    <target name="finished-growl" if="USE_GROWL">
        <exec os="Mac OS X" executable="growlnotify">
            <arg value="-m"/>
            <arg value="${MESSAGE_FINISHED}"/>
            <arg value="ant completed successfully"/>
        </exec>
    </target>

    <!-- ============================================================
         macro to compile IDL to JSON
         ============================================================ -->
        
    <macrodef name="simple-idl2json">
       <attribute name="name"/>
       <attribute name="iDir"/>
       <attribute name="oDir"/>
       <element name="args" optional="true" implicit="true"/>
       <sequential>
           <exec executable="python" failonerror="true" failifexecutionfails="true">
               <arg file="scripts/simple-idl2json.py"/>
               <args/>
               <arg value="--validate"/>
               <arg file="@{iDir}/@{name}.idl"/>
               <arg file="@{oDir}/@{name}.json"/>
           </exec>
       </sequential>
    </macrodef>
                    
    <!-- ============================================================
         macro to compile HTML
         ============================================================ -->
        
    <macrodef name="build-html">
       <attribute name="name"/>
       <attribute name="iDir"/>
       <attribute name="oDir"/>
       <element name="args" optional="true" implicit="true"/>
       <sequential>
           <delete file="@{oDir}/@{name}.html"/>
           <concat destfile="@{oDir}/@{name}.html">
               <filelist dir="@{iDir}" files="boilerplate-header.html.txt"/>
               <filelist dir="@{iDir}" files="@{name}.body.html"/>
               <filelist dir="@{iDir}" files="boilerplate-trailer.html.txt"/>
               <filterchain>
                  <replacetokens>
                    <token key="PAGE_NAME" value="@{name}"/>
                  </replacetokens>
                </filterchain>
           </concat>
           <echo>generated @{oDir}/@{name}.html</echo>
       </sequential>
    </macrodef>
                    
    <!-- ============================================================ -->
</project>
