﻿<?xml version="1.0" encoding="utf-8"?>
<Project
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="DownloadICU">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - DownloadICU" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\$(ICU_DOCS_ZIP)')"
            FileUri="$(ICU_URL)/$(ICU_DOCS_ZIP)"
            FileName="$(MSBuildProjectDirectory)\_archives\$(ICU_DOCS_ZIP)"
            UseDefaultCredentials="True" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\$(ICU_SRC_ZIP)')"
            FileUri="$(ICU_URL)/$(ICU_SRC_ZIP)"
            FileName="$(MSBuildProjectDirectory)\_archives\$(ICU_SRC_ZIP)"
            UseDefaultCredentials="True" />
    </Target>
    <Target Name="ExtractICU">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - ExtractICU" />
        <Unzip
            Condition="!Exists('$(MSBuildProjectDirectory)\$(ICU_DIR)\docs')"
            ZipFileName="$(MSBuildProjectDirectory)\_archives\$(ICU_DOCS_ZIP)"
            TargetDirectory="$(MSBuildProjectDirectory)\$(ICU_DIR)\docs" />
        <Unzip
            Condition="!Exists('$(MSBuildProjectDirectory)\$(ICU_DIR)\source')"
            ZipFileName="$(MSBuildProjectDirectory)\_archives\$(ICU_SRC_ZIP)"
            TargetDirectory="$(MSBuildProjectDirectory)" />
    </Target>
    <Target Name="PatchICU">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - PatchICU" />
        <Copy
            Condition="!Exists('$(MSBuildProjectDirectory)\$(ICU_DIR)\source\Globals.props')"
            SourceFiles="$(MSBuildProjectDirectory)\fix_icu\Globals.props"
            DestinationFiles="$(MSBuildProjectDirectory)\$(ICU_DIR)\source\Globals.props"
            SkipUnchangedFiles="true" />
        <Copy
            Condition="!Exists('$(MSBuildProjectDirectory)\$(ICU_DIR)\source\FixICUProjects.py')"
            SourceFiles="$(MSBuildProjectDirectory)\fix_icu\FixICUProjects.py"
            DestinationFiles="$(MSBuildProjectDirectory)\$(ICU_DIR)\source\FixICUProjects.py"
            SkipUnchangedFiles="true" />
        <Exec
            Condition="!Exists('$(MSBuildProjectDirectory)\$(ICU_DIR)\icu_patched')"
            Command="&quot;$(PYTHON_EXE)&quot; &quot;$(MSBuildProjectDirectory)\$(ICU_DIR)\source\FixICUProjects.py&quot;"
            WorkingDirectory="$(MSBuildProjectDirectory)\$(ICU_DIR)\source" />
        <Touch
            AlwaysCreate='true'
            Files="$(MSBuildProjectDirectory)\$(ICU_DIR)\icu_patched" />
    </Target>
    <Target Name="BuildICU">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - BuildICU" />
        <MSBuild
            Projects="$(MSBuildProjectDirectory)\$(ICU_DIR)\source\allinone\allinone.sln"
            Properties="Configuration=Release;Platform=Win32;VcpkgEnabled=false"
            ToolsVersion="$(MSBuildTaskToolsVersion)" />
        <MSBuild
            Projects="$(MSBuildProjectDirectory)\$(ICU_DIR)\source\allinone\allinone.sln"
            Properties="Configuration=Release;Platform=x64;VcpkgEnabled=false"
            ToolsVersion="$(MSBuildTaskToolsVersion)" />
    </Target>
    <Target Name="CopyICU">
        <ItemGroup>
            <ICU_BIN_X64_FILES
                Include="$(MSBuildProjectDirectory)\$(ICU_DIR)\bin64\**\*.*" />
            <ICU_BIN_X64UWP_FILES
                Include="$(MSBuildProjectDirectory)\$(ICU_DIR)\bin64UWP\**\*.*" />
            <ICU_BIN_X86_FILES
                Include="$(MSBuildProjectDirectory)\$(ICU_DIR)\bin\**\*.*" />
            <ICU_BIN_X86UWP_FILES
                Include="$(MSBuildProjectDirectory)\$(ICU_DIR)\bin32UWP\**\*.*" />
            <ICU_DOCS_ZIP_FILES
                Include="$(MSBuildProjectDirectory)\$(ICU_DIR)\docs\**\*.*" />
            <ICU_DOCS_ZIP_FILES
                Include="$(MSBuildProjectDirectory)\$(ICU_DIR)\icu4c.css" />
            <ICU_DOCS_ZIP_FILES
                Include="$(MSBuildProjectDirectory)\$(ICU_DIR)\license.html" />
            <ICU_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(ICU_DIR)\include\**\*.*" />
            <ICU_LIB_X64_FILES
                Include="$(MSBuildProjectDirectory)\$(ICU_DIR)\lib64\**\*.*" />
            <ICU_LIB_X64UWP_FILES
                Include="$(MSBuildProjectDirectory)\$(ICU_DIR)\lib64UWP\**\*.*" />
            <ICU_LIB_X86_FILES
                Include="$(MSBuildProjectDirectory)\$(ICU_DIR)\lib\**\*.*" />
            <ICU_LIB_X86UWP_FILES
                Include="$(MSBuildProjectDirectory)\$(ICU_DIR)\lib32UWP\**\*.*" />
        </ItemGroup>
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CopyICU" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\docs\icu')"
            Directories="$(COMMON_SDKS)\docs\icu" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\bin\x64\UWP')"
            Directories="$(COMMON_SDKS)\bin\x64\UWP" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\bin\x86\UWP')"
            Directories="$(COMMON_SDKS)\bin\x86\UWP" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\lib\x64\UWP')"
            Directories="$(COMMON_SDKS)\lib\x64\UWP" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\lib\x86\UWP')"
            Directories="$(COMMON_SDKS)\lib\x86\UWP" />
        <Copy
            SourceFiles="@(ICU_BIN_X64_FILES)"
            DestinationFolder="$(COMMON_SDKS)\bin\x64"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(ICU_BIN_X64UWP_FILES)"
            DestinationFolder="$(COMMON_SDKS)\bin\x64\UWP"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(ICU_BIN_X86_FILES)"
            DestinationFolder="$(COMMON_SDKS)\bin\x86"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(ICU_BIN_X86UWP_FILES)"
            DestinationFolder="$(COMMON_SDKS)\bin\x86\UWP"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(ICU_DOCS_ZIP_FILES)"
            DestinationFolder="$(COMMON_SDKS)\docs\icu\%(RecursiveDir)"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(ICU_INCLUDE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\include\%(RecursiveDir)"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(ICU_LIB_X64_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\x64"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(ICU_LIB_X64UWP_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\x64\UWP"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(ICU_LIB_X86_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\x86"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(ICU_LIB_X86UWP_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\x86\UWP"
            SkipUnchangedFiles="true" />
    </Target>
    <Target Name="CleanICU">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CleanICU" />
        <RemoveDir
            Condition="Exists('$(MSBuildProjectDirectory)\$(ICU_DIR)')"
            Directories="$(MSBuildProjectDirectory)\$(ICU_DIR)" />
    </Target>
    <Target Name="ICU">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - ICU" />
        <CallTarget
            Condition="!Exists('$(MSBuildProjectDirectory)\build_state\ICU_build_successful')"
            Targets="DownloadICU;ExtractICU;PatchICU;BuildICU;CopyICU" />
        <Touch
            AlwaysCreate='true'
            Files="$(MSBuildProjectDirectory)\build_state\ICU_build_successful" />
    </Target>
</Project>
