﻿<?xml version="1.0" encoding="utf-8"?>
<Project
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="UpdateFooNathan">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - UpdateFooNathan" />
        <MakeDir
            Condition="!Exists('$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)')"
            Directories="$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)" />
        <Exec
            Condition="Exists('$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)\debug_assert')"
            Command="&quot;$(GIT_EXE)&quot; pull"
            WorkingDirectory="$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)\debug_assert" />
        <Exec
            Condition="!Exists('$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)\debug_assert')"
            Command="&quot;$(GIT_EXE)&quot; clone $(FOO_NATHAN_URL)/debug_assert.git"
            WorkingDirectory="$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)" />
        <Exec
            Condition="Exists('$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)\type_safe')"
            Command="&quot;$(GIT_EXE)&quot; pull"
            WorkingDirectory="$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)\type_safe" />
        <Exec
            Condition="!Exists('$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)\type_safe')"
            Command="&quot;$(GIT_EXE)&quot; clone $(FOO_NATHAN_URL)/type_safe.git"
            WorkingDirectory="$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)" />
    </Target>
    <Target Name="BuildFooNathan">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - BuildFooNathan" />
    </Target>
    <Target Name="CopyFooNathan">
        <ItemGroup>
	        <FOO_NATHAN_DEBUG_ASSERT_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)\debug_assert\LICENSE" />
	        <FOO_NATHAN_DEBUG_ASSERT_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)\debug_assert\README.md" />
	        <FOO_NATHAN_DEBUG_ASSERT_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)\debug_assert\debug_assert.hpp" />
	        <FOO_NATHAN_TYPE_SAFE_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)\type_safe\CHANGELOG.md" />
            <FOO_NATHAN_TYPE_SAFE_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)\type_safe\LICENSE" />
            <FOO_NATHAN_TYPE_SAFE_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)\type_safe\README.md" />
            <FOO_NATHAN_TYPE_SAFE_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)\type_safe\include\type_safe\**\*.*" />
        </ItemGroup>
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CopyFooNathan" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\docs\$(FOO_NATHAN_DIR)\debug_assert')"
            Directories="$(COMMON_SDKS)\docs\$(FOO_NATHAN_DIR)\debug_assert" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\docs\$(FOO_NATHAN_DIR)\type_safe')"
            Directories="$(COMMON_SDKS)\docs\$(FOO_NATHAN_DIR)\type_safe" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\include\type_safe')"
            Directories="$(COMMON_SDKS)\include\type_safe" />
        <Copy
            SourceFiles="@(FOO_NATHAN_DEBUG_ASSERT_DOCS_FILES)"
            DestinationFolder="$(COMMON_SDKS)\docs\$(FOO_NATHAN_DIR)\debug_assert"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(FOO_NATHAN_DEBUG_ASSERT_INCLUDE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\include"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(FOO_NATHAN_TYPE_SAFE_DOCS_FILES)"
            DestinationFolder="$(COMMON_SDKS)\docs\$(FOO_NATHAN_DIR)\type_safe"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(FOO_NATHAN_TYPE_SAFE_INCLUDE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\include\type_safe\%(RecursiveDir)"
            SkipUnchangedFiles="true" />
    </Target>
    <Target Name="CleanFooNathan">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CleanFooNathan" />
        <RemoveDir
            Condition="Exists('$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)')"
            Directories="$(MSBuildProjectDirectory)\$(FOO_NATHAN_DIR)" />
    </Target>
    <Target Name="FooNathan">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - FooNathan" />
        <CallTarget
            Condition="!Exists('$(MSBuildProjectDirectory)\build_state\FooNathan_build_successful')"
            Targets="UpdateFooNathan;BuildFooNathan;CopyFooNathan" />
        <Touch
            AlwaysCreate='true'
            Files="$(MSBuildProjectDirectory)\build_state\FooNathan_build_successful" />
    </Target>
</Project>
