<?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-cpp-runtime" basedir="." default="help">
    <description>Etch-to-CPP runtime binding implementation</description>
    <property name="Etch.basedir" location="${basedir}/../.." />
    <import file="${Etch.basedir}/build-support/etch.includes.xml" />

    <!-- Static properties of the sub-project -->
    <property name="proj"                 location="${Etch.basedir}/binding-cpp/runtime" />
    <property name="target"               location="${proj}/target" />
    <property name="testResultsDirectory" location="${target}/test-results" />
    
    <!-- INIT TARGET -->
    <!-- Modify this target to define project specific properties that can only be set at runtime -->
    <target name="do-init" >
        <mkdir dir="${target}" />
        <mkdir dir="${testResultsDirectory}" />
    </target>

    <!-- CLEAN TARGET -->
    <target name="do-clean">
        <delete dir="${target}" />
    <delete dir="${proj}/lib/capu/3psw/libs" />
    <delete dir="${proj}/lib/capu/build" />
    <delete dir="${proj}/lib/capu/deliverable" />
    </target>

    <!-- BUILD TARGET -->
    <target name="do-build-info" unless="USE.cmake">
        <echo message="**********************************" />
        <echo message="binding-cpp build will not be done." />
        <echo message="**********************************" />
    </target>
    
    <target name="do-build-generate-sources" if="USE.cmake">
        <mkdir dir="${Etch.dist}/binding-cpp" />
        <!-- package up etch-java-runtime src -->
        <zip destfile="${Etch.dist}/binding-cpp/${etch-cpp-runtime-src.zip}">
            <fileset dir="${proj}">
                <exclude name="target/" />
                <exclude name="doc/" />
                <exclude name="**/.svn" />
            </fileset>
        </zip>
    </target>

    <!-- Uncomment the generator you would like to use on your platform. If no generator is set explicitly the default generator will be used. -->
    <target name="do-build-main" if="USE.cmake">
        <echo>"${basedir}/target"</echo>
        <cmake srcdir="${basedir}" bindir="${basedir}/target" buildtype="Debug" >
            <!--<generator name="Visual Studio 8 2005" platform="windows" />-->
            <!--<generator name="Visual Studio 9 2008" platform="windows" />-->
            <!--<generator name="Visual Studio 10 2010" platform="windows" />-->
            <!--<generator name="Unix Makefiles"/>-->
            <!--<generator name="Eclipse CDT4 - Unix Makefiles" platform="Linux" />-->
            <variable name="ETCH_EXTERNAL_DEPENDS" type="PATH" value="${env.ETCH_EXTERNAL_DEPENDS}" />
        </cmake>
    </target>

    <target name="do-build" depends="do-build-info,do-build-generate-sources,do-build-main" if="USE.cmake">

        <mkdir dir="${Etch.dist}/binding-cpp/bin" />
        <mkdir dir="${Etch.dist}/binding-cpp/include" />
        <mkdir dir="${Etch.dist}/binding-cpp/lib" />

        <!-- copy etch includes to dist folder -->
        <copy todir="${Etch.dist}/binding-cpp/include">
            <fileset dir="${proj}/include">
                <exclude name="**/.svn" />
            </fileset>
        </copy>

        <!-- copy etch library to dist folder -->
        <copy todir="${Etch.dist}/binding-cpp/lib" flatten="true">
            <fileset dir="${target}/src/main">
            </fileset>
        </copy>
        
        <!-- copy capu includes to dist folder -->
        <copy todir="${Etch.dist}/binding-cpp/include">
            <fileset dir="${proj}/lib/capu/deliverable/capu/include/capu">
                <exclude name="**/.svn" />
            </fileset>
        </copy>
    
        <!-- copy capu lib to dist folder -->
        <copy todir="${Etch.dist}/binding-cpp/lib">
            <fileset dir="${proj}/lib/capu/deliverable/capu/lib">
                <include name="**/*.lib" />
            </fileset>
        </copy>

    </target>

    <!-- TEST TARGET -->
    <target name="do-test" unless="build.skip.tests">

        <!-- Run CAPU Unit Tests -->
        <!-- Run CAPU Unit Tests on Windows-->
        <property name="executable-full-path"
            location="lib/capu/deliverable/capu/bin/Windows_X86_32/Debug/capuTest.exe"/>
        <exec executable="${executable-full-path}" osfamily="windows" failonerror="true">
            <arg value="--gtest_output=xml:${testResultsDirectory}/"/>
        </exec>
        <!-- Run CAPU Unit Tests on Unix -->
        <exec executable="lib/capu/deliverable/capu/bin/Linux_X86_32/capuTest" osfamily="unix"  failonerror="true">
            <arg value="--gtest_output=xml:${testResultsDirectory}/"/>
        </exec>
    
        <!-- Run Etch Unit Tests -->
        <!-- Run Etch Unit Tests on Windows-->
        <exec executable="${target}/src/test/debug/etch-cpp-test" osfamily="windows"  failonerror="true">
            <arg value="--gtest_output=xml:${testResultsDirectory}/"/>
        </exec>
        <!-- Run Etch Unit Tests on Unix -->
        <exec executable="${target}/src/test/etch-cpp-test" osfamily="unix"  failonerror="true">
            <arg value="--gtest_output=xml:${testResultsDirectory}/"/>
        </exec>
    </target>

    <!-- POSTBUILD TARGET -->
    <target name="do-postbuild">
    </target>

    <target name="do-publish" if="build.tests.fail">
        <!-- Set flag file if any tests failed -->
        <touch file="${Etch.runtime.tests.fail}"/>
    </target>

</project>
