<?xml version="1.0" encoding="utf-8" ?>
 <!--
 * Licensed to the Apache Software Foundation (ASF) under one   *
 * or more contributor license agreements.  See the NOTICE file *
 * distributed with this work for additional information        *
 * regarding copyright ownership.  The ASF licenses this file   *
 * to you under the Apache License, Version 2.0 (the            *
 * "License"); you may not use this file except in compliance   *
 * with the License.  You may obtain a copy of the License at   *
 *                                                              *
 *   http://www.apache.org/licenses/LICENSE-2.0                 *
 *                                                              *
 * Unless required by applicable law or agreed to in writing,   *
 * software distributed under the License is distributed on an  *
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
 * KIND, either express or implied.  See the License for the    *
 * specific language governing permissions and limitations      *
 * under the License.                                           *
 -->
<project name="etch-Mixin-example" basedir="." default="help" >
    <description>Mixin Example</description>
    <property name="Etch.basedir" location="${basedir}/../.." />
    <import file="${Etch.basedir}/build-support/etch.includes.xml" />

    <!-- TODO better computation of etch.home, etch.version -->
    <property environment="env" />

    <!-- compute ETCH_HOME -->
    <property name="build.ETCH_HOME" location="${basedir}/../../target/Installers/dist" />
    <condition property="etch.home" value="${env.ETCH_HOME}" >
        <isset property="${env.ETCH_HOME}" />
    </condition>
    <condition property="etch.home" value="${build.ETCH_HOME}" >
        <not><isset property="etch.home" /></not>
    </condition>

    <property name="Etch.dependency.junit.jar"
        location="${default.junit.lib}/junit-4.3.1.jar" />

    <property name="Etch.buildSupportDirectory" location="../../build-support" />

    <!-- compute etch.version -->
    <condition property="etch.version" value="${Etch.version}" >
        <not><isset property="etch.version" /></not>
    </condition>

    <condition property="etch.longversion" value="${Etch.longversion}" >
        <not><isset property="etch.longversion" /></not>
    </condition>

    <!-- Csharp Support -->
    <condition property="USE.dotnet" >
        <and>
            <os family="windows" />
            <available file="${env.DOTNET_HOME}/msbuild.exe" />
            <available file="${build.ant-dotnet.lib}/ant-dotnet-1.1.jar" />
            <available file="${env.NUNIT_HOME}/bin/net-2.0/nunit.exe" />
        </and>
    </condition>
    <condition property="USE.mono" >
        <and>
            <not><os family="windows" /></not>
            <!-- TODO mono support is not fully baked, use -DUSE.mono to test -->
            <!-- <available file="${env.MONO_HOME}/bin/mdtool" /> -->
            <isset property="USE.mono" />
        </and>
    </condition>
    <condition property="BUILD.csharp" >
        <or>
            <isset property="USE.dotnet" />
            <isset property="USE.mono" />
        </or>
    </condition>

    <!-- import etch task -->
    <taskdef onerror="report" resource="org/apache/etch/tools/ant/etch.xml" classpath="${etch.home}/lib/apache-etch-ant-plugin-${etch.longversion}.jar" />

    <!-- import dotnet task -->
    <condition property="ant.dotnet.jar" value="ant-dotnet-1.1.jar" >
        <not><isset property="ant.dotnet.jar" /></not>
    </condition>

    <taskdef
        onerror="report"
        resource="org/apache/ant/dotnet/antlib.xml"
        classpath="${ant.dotnet.jar}" />

    <macrodef name="mdtool" >
        <attribute name="dir"         default="." />
        <attribute name="failonerror" default="false" />
        <attribute name="project"     default="project.csproj" />
        <attribute name="target"      default="${build.target}" />
        <sequential>
            <exec executable="${env.MONO_HOME}/bin/mdtool" dir="@{dir}" failonerror="@{failonerror}" >
                <arg value="build" />
                <arg value="--buildfile:@{project}" />
            </exec>
        </sequential>
    </macrodef>

    <!-- set properties -->
    <property name="src"               location="${basedir}/src" />
    <property name="main-src-java"     location="${src}/main/java" />
    <property name="test-src-java"     location="${src}/test/java" />
    <property name="target"            location="${basedir}/target" />
    <property name="dist-src"          location="${target}/dist-src" />
    <property name="generated-sources" location="${target}/generated-sources" />
    <property name="gen-src-java"      location="${generated-sources}/main/etch/java" />
    <property name="gen-src-csharp"    location="${generated-sources}/main/etch/csharp" />
    <property name="gen-src-c"         location="${generated-sources}/main/etch/c" />
    <property name="bin"               location="${target}/bin" />
    <property name="classes"           location="${target}/classes" />
    <property name="classes-test"      location="${target}/classes-test" />
    <property name="test-results"      location="${target}/test-results" />
    <property name="nunit-results"     location="${target}/nunit-results" />
    <property name="dist"              location="${basedir}/../../target/Installers/dist" />

    <!-- initialize -->
    <target name="init" >
        <mkdir dir="${target}" />
        <mkdir dir="${dist-src}" />
        <mkdir dir="${generated-sources}" />
        <mkdir dir="${gen-src-java}" />
        <mkdir dir="${gen-src-csharp}" />
        <mkdir dir="${bin}" />
        <mkdir dir="${classes}" />
        <mkdir dir="${classes-test}" />
        <mkdir dir="${test-results}" />
        <mkdir dir="${nunit-results}" />
    </target>

    <!-- build the server -->
    <target name="generate-sources" depends="init" >
        <!-- generate sources -->

        <etch home="${etch.home}"
              file="${src}/main/etch/Example.etch"
              binding="java"
              outputDir="${gen-src-java}" />
 
        <etch home="${etch.home}"
              file="${src}/main/etch/Example.etch"
              binding="csharp"
              outputDir="${gen-src-csharp}" />

        <etch home="${etch.home}"
              file="${src}/main/etch/Example.etch"
              binding="c"
              outputDir="${gen-src-c}" />
    </target>

    <property name="etch-java-runtime-name" value="apache-etch-java-runtime-${etch.longversion}.jar" />
    <property name="Etch.dependency.java.runtime" location="${etch.home}/binding-java/lib/${etch-java-runtime-name}" />

    <target name="build-java" depends="generate-sources" >
        <!-- compile sources -->

        <javac target="1.5" destdir="${classes}" >
            <src path="${gen-src-java}" />
            <src path="${main-src-java}" />
            <classpath>
                <pathelement location="${Etch.dependency.java.runtime}" />
            </classpath>
        </javac>

        <javac target="1.5" destdir="${classes-test}" >
            <src path="${gen-src-java}" />
            <src path="${main-src-java}" />
            <src path="${test-src-java}" />
            <classpath>
                <pathelement location="${Etch.dependency.java.runtime}" />
                <pathelement location="${Etch.dependency.junit.jar}" />
            </classpath>
        </javac>

        <!-- Create Jar -->
        <jar jarfile="${bin}/examplemixin.jar" >
            <manifest>
                <attribute name="Class-Path" value="${etch-java-runtime-name}" />
            </manifest>
            <fileset dir="${classes}" >
                <include name="**/*" />
            </fileset>
        </jar>

        <!-- copy in dependencies -->
        <copy todir="${bin}" file="${Etch.dependency.java.runtime}" />
    </target>

    <target name="build-csharp-with-mono" depends="generate-sources" if="USE.mono" >
        <mdtool dir="${src}/main/csharp/ExampleClientProj" project="ExampleClientProj.csproj" />
        <mdtool dir="${src}/main/csharp/ExampleListenerProj" project="ExampleListenerProj.csproj" />
    </target>

    <target name="build-csharp-with-dotnet" depends="generate-sources" if="USE.dotnet" >
        <msbuild buildfile="${src}/main/csharp/ExampleListenerProj/ExampleListenerProj.csproj" >
            <property name="Configuration" value="${build.target}" />
        </msbuild>
        <msbuild buildfile="${src}/main/csharp/ExampleClientProj/ExampleClientProj.csproj" >
            <property name="Configuration" value="${build.target}" />
        </msbuild>
        <msbuild buildfile="${src}/test/csharp/ExampleTestProj/ExampleTestProj.csproj" >
            <property name="Configuration" value="${build.target}" />
        </msbuild>
        <copy todir="${bin}" >
            <fileset dir="${src}/main/csharp/ExampleListenerProj/bin/${build.target}" >
                <include name="*" />
            </fileset>
            <fileset dir="${src}/main/csharp/ExampleClientProj/bin/${build.target}" >
                <include name="*" />
            </fileset>
        </copy>
    </target>

    <target name="build-csharp" depends="build-csharp-with-mono,build-csharp-with-dotnet" />

    <target name="build-c" depends="generate-sources" if="USE.cmake">
        <cmake srcdir="${basedir}" bindir="${basedir}/target" buildtype="Debug" >
            <variable name="ETCH_HOME" type="PATH" value="${build.ETCH_HOME}" />
        </cmake>
        <copy todir="${bin}" flatten="true">
            <fileset dir="${basedir}/target/" >
                <include name="example-client" />
                <include name="example-server" />
                <include name="debug/example-client.exe" />
                <include name="debug/example-server.exe" />
            </fileset>
        </copy>
        <copy todir="${bin}" flatten="true">
            <fileset dir="${etch.home}/binding-c/extern/apr/bin" >
                <include name="libapr-1.dll" />
                <include name="libapriconv-1.dll" />
            </fileset>
        </copy>
    </target>

    <!-- define target builds -->
    <target name="build" depends="build-java,build-csharp,build-c" />

    <!-- run unit tests -->

    <target name="test-java" depends="build-java" unless="build.skip.tests">
        <!-- Run Unit Tests -->
        <junit printsummary="yes" haltonfailure="no" dir="${classes-test}"
            errorProperty="build.tests.fail" failureProperty="build.tests.fail" >
            <classpath>
                <pathelement location="${classes-test}" />
                <pathelement location="${Etch.dependency.java.runtime}" />
                <pathelement location="${Etch.dependency.junit.jar}" />
            </classpath>
            <formatter type="xml" />
            <batchtest fork="true" todir="${test-results}" >
                <fileset dir="${test-src-java}" >
                    <include name="**/Test*.java" />
                </fileset>
            </batchtest>
        </junit>
    </target>

    <target name="test-csharp" depends="build-csharp" if="BUILD.csharp" unless="build.skip.tests">
         <nunit xmlout="${nunit-results}/NUnitResults.xml">
             <testassembly name="${src}/test/csharp/ExampleTestProj/bin/${build.target}/ExampleTestProj.dll" />
         </nunit>

         <xslt style="${Etch.buildSupportDirectory}/NUnitToJUnit.xsl"
                 in="${nunit-results}/NUnitResults.xml" out="${test-results}/TEST-NUnitResults.xml" />
   </target>

    <target name="test" depends="build,test-java,test-csharp,done" ></target>

    <target name="done" depends="build" >
        <echo>

Build Complete!

To run java Mixin example, open a cmd window and run these
commands:

> cd target\bin
> start java -cp examplemixin.jar org.apache.etch.examples.mixin.MainExampleListener
> start java -cp examplemixin.jar org.apache.etch.examples.mixin.MainExampleClient

To run csharp example:

> cd target\bin
> start ExampleListener.exe
> start ExampleClient.exe

To run the c example:

> build using cmake (see README.txt) (if you are not building from trunk, 
  e.g. if you have an official release)
> cd target\debug
> start example-server.exe
> start example-client.exe

You can mix and match the various clients and listeners.

        </echo>
    </target>

    <!-- build everything -->
    <target name="init-debug" >
        <property name="build.target" value="Debug" />
    </target>

    <target name="init-release" >
        <property name="build.target" value="Release" />
    </target>

   <target name="dist-src" >
       <copy file="dist-build.xml" tofile="${dist-src}/build.xml" overwrite="true" >
           <filterset refid="Etch.buildTokens" />
       </copy>    
        <copy file="CMakeLists.txt" tofile="${dist-src}/CMakeLists.txt" overwrite="true" />
        <copy file="dist-README.txt" tofile="${dist-src}/README.txt" overwrite="true" />
        
        <copy todir="${dist-src}/src/main/etch" overwrite="true" >
            <fileset dir="${src}/main/etch" >
                <exclude name="**/.svn/**" />
                <include name="**/*.etch" />
            </fileset>
        </copy>
        
        <copy todir="${dist-src}/src/main/java" overwrite="true" >
            <fileset dir="${src}/main/java" >
                <exclude name="**/.svn/**" />
                <include name="**/*.java" />
            </fileset>
        </copy>
        
        <copy todir="${dist-src}/src/main/csharp" overwrite="true" >
            <fileset dir="${src}/main/csharp" >
                <exclude name="**/.svn/**" />
                <include name="**/*.cs" />
            </fileset>
        </copy>

        <copy todir="${dist-src}/src/main/c" overwrite="true" >
            <fileset dir="${src}/main/c" >
                <exclude name="**/.svn/**" />
                <include name="**/*.c" />
                <include name="**/*.h" />
                <include name="**/CMakeLists.txt" />
            </fileset>
        </copy>
        
        <copy todir="${dist}/examples/example_mixin" overwrite="true" >
            <fileset dir="${dist-src}" />
        </copy>
    </target>

    <target name="debug" depends="dist-src,init-debug,test" />
    <target name="release" depends="dist-src,init-release,test" />

    <!-- clean -->
    <target name="clean" >
        <delete dir="${target}" quiet="true" />
        <delete dir="${src}/main/csharp/ExampleClientProj/bin" quiet="true" />
        <delete dir="${src}/main/csharp/ExampleClientProj/obj" quiet="true" />
        <delete dir="${src}/main/csharp/ExampleListenerProj/bin" quiet="true" />
        <delete dir="${src}/main/csharp/ExampleListenerProj/obj" quiet="true" />
        <delete dir="${src}/test/csharp/ExampleTestProj/bin" quiet="true" />
        <delete dir="${src}/test/csharp/ExampleTestProj/obj" quiet="true" />
    </target>
</project>
