<!--
 * 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="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>
