﻿<?xml version="1.0" encoding="utf-8"?>
<Project
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="UpdateMicrosoftGSL">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - UpdateMicrosoftGSL" />
        <Exec
            Condition="Exists('$(MSBuildProjectDirectory)\$(MICROSOFT_GSL_DIR)')"
            Command="&quot;$(GIT_EXE)&quot; pull"
            WorkingDirectory="$(MSBuildProjectDirectory)\$(MICROSOFT_GSL_DIR)" />
        <Exec
            Condition="!Exists('$(MSBuildProjectDirectory)\$(MICROSOFT_GSL_DIR)')"
            Command="&quot;$(GIT_EXE)&quot; clone $(MICROSOFT_GSL_URL)"
            WorkingDirectory="$(MSBuildProjectDirectory)" />
    </Target>
    <Target Name="BuildMicrosoftGSL">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - BuildMicrosoftGSL" />
    </Target>
    <Target Name="CopyMicrosoftGSL">
        <ItemGroup>
            <MICROSOFT_GSL_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(MICROSOFT_GSL_DIR)\CONTRIBUTING.md" />
            <MICROSOFT_GSL_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(MICROSOFT_GSL_DIR)\LICENSE" />
            <MICROSOFT_GSL_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(MICROSOFT_GSL_DIR)\README.md" />
            <MICROSOFT_GSL_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(MICROSOFT_GSL_DIR)\ThirdPartyNotices.txt" />
            <MICROSOFT_GSL_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(MICROSOFT_GSL_DIR)\include\gsl\*.*" />
        </ItemGroup>
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CopyMicrosoftGSL" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\docs\$(MICROSOFT_GSL_DIR)')"
            Directories="$(COMMON_SDKS)\docs\$(MICROSOFT_GSL_DIR)" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\include\gsl')"
            Directories="$(COMMON_SDKS)\include\gsl" />
        <Copy
            SourceFiles="@(MICROSOFT_GSL_DOCS_FILES)"
            DestinationFolder="$(COMMON_SDKS)\docs\$(MICROSOFT_GSL_DIR)"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(MICROSOFT_GSL_INCLUDE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\include\gsl"
            SkipUnchangedFiles="true" />
    </Target>
    <Target Name="CleanMicrosoftGSL">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CleanMicrosoftGSL" />
        <RemoveDir
            Condition="Exists('$(MSBuildProjectDirectory)\$(MICROSOFT_GSL_DIR)')"
            Directories="$(MSBuildProjectDirectory)\$(MICROSOFT_GSL_DIR)" />
    </Target>
    <Target Name="MicrosoftGSL">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - MicrosoftGSL" />
        <CallTarget
            Condition="!Exists('$(MSBuildProjectDirectory)\build_state\MicrosoftGSL_build_successful')"
            Targets="UpdateMicrosoftGSL;BuildMicrosoftGSL;CopyMicrosoftGSL" />
        <Touch
            AlwaysCreate='true'
            Files="$(MSBuildProjectDirectory)\build_state\MicrosoftGSL_build_successful" />
    </Target>
</Project>
