﻿<?xml version="1.0" encoding="utf-8"?>
<Project
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="DownloadP4API">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - DownloadP4API" />
        <MakeDir
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx64')"
            Directories="$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx64" />
        <MakeDir
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx86')"
            Directories="$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx86" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\p4api\$(P4API_DOC)')"
            FileUri="$(P4API_DOC_URL)/$(P4API_DOC)"
            FileName="$(MSBuildProjectDirectory)\_archives\p4api\$(P4API_DOC)"
            UseDefaultCredentials="True" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx64\$(P4API_DEBUG_ZIP)')"
            FileUri="$(P4API_URL)/bin.ntx64/$(P4API_DEBUG_ZIP)"
            FileName="$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx64\$(P4API_DEBUG_ZIP)"
            UseDefaultCredentials="True" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx64\$(P4API_RELEASE_ZIP)')"
            FileUri="$(P4API_URL)/bin.ntx64/$(P4API_RELEASE_ZIP)"
            FileName="$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx64\$(P4API_RELEASE_ZIP)"
            UseDefaultCredentials="True" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx86\$(P4API_DEBUG_ZIP)')"
            FileUri="$(P4API_URL)/bin.ntx86/$(P4API_DEBUG_ZIP)"
            FileName="$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx86\$(P4API_DEBUG_ZIP)"
            UseDefaultCredentials="True" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx86\$(P4API_RELEASE_ZIP)')"
            FileUri="$(P4API_URL)/bin.ntx86/$(P4API_RELEASE_ZIP)"
            FileName="$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx86\$(P4API_RELEASE_ZIP)"
            UseDefaultCredentials="True" />
    </Target>
    <Target Name="ExtractP4API">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - ExtractP4API" />
        <MakeDir
            Condition="!Exists('$(MSBuildProjectDirectory)\p4api\bin.ntx64')"
            Directories="$(MSBuildProjectDirectory)\p4api\bin.ntx64" />
        <MakeDir
            Condition="!Exists('$(MSBuildProjectDirectory)\p4api\bin.ntx86')"
            Directories="$(MSBuildProjectDirectory)\p4api\bin.ntx86" />
        <Unzip
            Condition="!Exists('$(MSBuildProjectDirectory)\p4api\bin.ntx64\$(P4API_DEBUG_OUT)')"
            ZipFileName="$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx64\$(P4API_DEBUG_ZIP)"
            TargetDirectory="$(MSBuildProjectDirectory)\p4api\bin.ntx64" />
        <Unzip
            Condition="!Exists('$(MSBuildProjectDirectory)\p4api\bin.ntx64\$(P4API_RELEASE_OUT)')"
            ZipFileName="$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx64\$(P4API_RELEASE_ZIP)"
            TargetDirectory="$(MSBuildProjectDirectory)\p4api\bin.ntx64" />
        <Unzip
            Condition="!Exists('$(MSBuildProjectDirectory)\p4api\bin.ntx86\$(P4API_DEBUG_OUT)')"
            ZipFileName="$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx86\$(P4API_DEBUG_ZIP)"
            TargetDirectory="$(MSBuildProjectDirectory)\p4api\bin.ntx86" />
        <Unzip
            Condition="!Exists('$(MSBuildProjectDirectory)\p4api\bin.ntx86\$(P4API_RELEASE_OUT)')"
            ZipFileName="$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx86\$(P4API_RELEASE_ZIP)"
            TargetDirectory="$(MSBuildProjectDirectory)\p4api\bin.ntx86" />
    </Target>
    <Target Name="BuildP4API">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - BuildP4API" />
    </Target>
    <Target Name="CopyP4API">
        <ItemGroup>
            <P4API_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\_archives\p4api\$(P4API_DOC)" />
            <P4API_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\p4api\bin.ntx86\$(P4API_RELEASE_OUT)\include\p4\*.*" />
            <P4API_LIB_X64_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\p4api\bin.ntx64\$(P4API_DEBUG_OUT)\lib\*.*" />
            <P4API_LIB_X64_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\p4api\bin.ntx64\$(P4API_RELEASE_OUT)\lib\*.*" />
            <P4API_LIB_X86_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\p4api\bin.ntx86\$(P4API_DEBUG_OUT)\lib\*.*" />
            <P4API_LIB_X86_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\p4api\bin.ntx86\$(P4API_RELEASE_OUT)\lib\*.*" />
            <P4API_SAMPLE_FILES
                Include="$(MSBuildProjectDirectory)\_archives\p4api\bin.ntx64\$(P4API_RELEASE_OUT)\sample\*.*" />
        </ItemGroup>
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CopyP4API" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\docs\p4api')"
            Directories="$(COMMON_SDKS)\docs\p4api" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\docs\p4api\sample')"
            Directories="$(COMMON_SDKS)\docs\p4api\sample" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\include\p4')"
            Directories="$(COMMON_SDKS)\include\p4" />
        <Copy
            SourceFiles="@(P4API_DOCS_FILES)"
            DestinationFolder="$(COMMON_SDKS)\docs\p4api"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(P4API_INCLUDE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\include\p4"
            SkipUnchangedFiles="true" />
        <Copy SourceFiles="@(P4API_LIB_X64_DEBUG_FILES)"
              DestinationFolder="$(COMMON_SDKS)\lib\x64\Debug"
              SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(P4API_LIB_X64_RELEASE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\x64\Release"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(P4API_LIB_X86_DEBUG_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\x86\Debug"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(P4API_LIB_X86_RELEASE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\x86\Release"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(P4API_SAMPLE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\docs\p4api\sample"
            SkipUnchangedFiles="true" />
    </Target>
    <Target Name="CleanP4API">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CleanP4API" />
        <RemoveDir
            Condition="Exists('$(MSBuildProjectDirectory)\p4api')"
            Directories="$(MSBuildProjectDirectory)\p4api" />
    </Target>
    <Target Name="P4API">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - P4API" />
        <CallTarget
            Condition="!Exists('$(MSBuildProjectDirectory)\build_state\P4API_build_successful')"
            Targets="DownloadP4API;ExtractP4API;BuildP4API;CopyP4API" />
        <Touch
            AlwaysCreate='true'
            Files="$(MSBuildProjectDirectory)\build_state\P4API_build_successful" />
    </Target>
</Project>
