<?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="net-1.0-examples" default="compile" xmlnds="http://tempuri.org/nant-vs.xsd">
    <!-- include configuration file -->
    <include buildfile="nant.config" />
    <!-- compile all .NET Framework 1.0 examples -->
    <target name="compile" description="Builds .NET 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>
    <!-- update the version of all .NET Framework 1.0 examples -->
    <target name="update-version-info" description="Update AssemblyVersionInfo of .NET Framework 1.0 examples">
        <nant buildfile="Tutorials/nant.build" target="update-version-info" />
    </target>
</project>
