<?xml version="1.0" ?>
<!--
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="netcf-1.0-examples" default="compile" xmlnds="http://tempuri.org/nant-vs.xsd">
    <!-- include configuration file -->
    <include buildfile="nant.config" />
    <!-- compile all .NET Compact Framework 1.0 examples -->
    <target name="compile" description="Builds .NET Compact Framework 1.0 examples">
        <if test="${framework::exists(project.runtime.config + '-' + project.runtime.version)}">
            <nant target="compile">
                <buildfiles>
                    <include name="*/nant.build" />
                    <!-- exclude current build file -->
                    <exclude name="exclude.build" />
                </buildfiles>
            </nant>
        </if>
        <if test="${not framework::exists(project.runtime.config + '-' + project.runtime.version)}">
            <if test="${property::exists('project.build.package') and project.build.package}">
                <fail message="${project.runtime.description} is not available." />
            </if>
            <if test="${not(property::exists('project.build.package') and project.build.package)}">
                <echo message="${project.runtime.description} is not available. Examples skipped." />
            </if>
        </if>
    </target>
</project>
