﻿<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="DownloadPoco">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - DownloadPoco" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\$(POCO_SRC_ZIP)')"
            FileUri="$(POCO_URL)/$(POCO_SRC_ZIP)"
            FileName="$(MSBuildProjectDirectory)\_archives\$(POCO_SRC_ZIP)"
            UseDefaultCredentials="True" />
    </Target>
    <Target Name="ExtractPoco">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - ExtractPoco" />
        <Unzip
            Condition="!Exists('$(MSBuildProjectDirectory)\$(POCO_DIR)')"
            ZipFileName="$(MSBuildProjectDirectory)\_archives\$(POCO_SRC_ZIP)"
            TargetDirectory="$(MSBuildProjectDirectory)" />
    </Target>
    <Target Name="BuildPoco_X86">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - BuildPoco_X86" />
        <PropertyGroup>
            <ExecCommand><![CDATA[
            call $(MSBuildProjectDirectory)\SetVCVars.bat $(VSVer) x86
            buildwin $(VSVer)0 build shared both Win32 samples
            ]]></ExecCommand>
        </PropertyGroup>
        <Exec
            Command="$(ExecCommand)"
            WorkingDirectory="$(MSBuildProjectDirectory)\$(POCO_DIR)" />
    </Target>
    <Target Name="BuildPoco_X64">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - BuildPoco_X64" />
        <PropertyGroup>
            <ExecCommand><![CDATA[
            call $(MSBuildProjectDirectory)\SetVCVars.bat $(VSVer) x64
            buildwin $(VSVer)0 build shared both x64 samples
            ]]></ExecCommand>
        </PropertyGroup>
        <Exec
            Command="$(ExecCommand)"
            WorkingDirectory="$(MSBuildProjectDirectory)\$(POCO_DIR)" />
    </Target>
    <Target Name="BuildPoco">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - BuildPoco" />
        <CallTarget
            Targets="BuildPoco_X86;BuildPoco_X64" />
    </Target>
    <Target Name="CopyPoco">
        <ItemGroup>
            <POCO_BIN_X64_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\bin64\*.dll" />
            <POCO_BIN_X86_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\bin\*.dll" />
            <POCO_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\CHANGELOG" />
            <POCO_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\CONTRIBUTORS" />
            <POCO_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\doc\*.*" />
            <POCO_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\LICENSE" />
            <POCO_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\NEWS" />
            <POCO_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\CppUnit\include\**\*.*" />
            <POCO_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\Foundation\include\**\*.*" />
            <POCO_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\JSON\include\**\*.*" />
            <POCO_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\Net\include\**\*.*" />
            <POCO_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\Util\include\**\*.*" />
            <POCO_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\XML\include\**\*.*" />
            <POCO_LIB_X64_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\bin64\*.pdb" />
            <POCO_LIB_X64_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\lib64\*.lib" />
            <POCO_LIB_X86_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\bin\*.pdb" />
            <POCO_LIB_X86_FILES
                Include="$(MSBuildProjectDirectory)\$(POCO_DIR)\lib\*.lib" />
        </ItemGroup>
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CopyPoco" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\docs\Poco')"
            Directories="$(COMMON_SDKS)\docs\Poco" />
        <Copy
            SourceFiles="@(POCO_BIN_X64_FILES)"
            DestinationFolder="$(COMMON_SDKS)\bin\x64"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(POCO_BIN_X86_FILES)"
            DestinationFolder="$(COMMON_SDKS)\bin\x86"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(POCO_DOCS_FILES)"
            DestinationFolder="$(COMMON_SDKS)\docs\Poco"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(POCO_INCLUDE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\include\%(RecursiveDir)"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(POCO_LIB_X64_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\x64"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(POCO_LIB_X86_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\x86"
            SkipUnchangedFiles="true" />
    </Target>
    <Target Name="CleanPoco">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CleanPoco" />
        <RemoveDir
            Condition="Exists('$(MSBuildProjectDirectory)\$(POCO_DIR)')"
            Directories="$(MSBuildProjectDirectory)\$(POCO_DIR)" />
    </Target>
    <Target Name="Poco">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - Poco" />
        <CallTarget
            Condition="!Exists('$(MSBuildProjectDirectory)\build_state\Poco_build_successful')"
            Targets="DownloadPoco;ExtractPoco;BuildPoco;CopyPoco" />
        <Touch
            AlwaysCreate='true'
            Files="$(MSBuildProjectDirectory)\build_state\Poco_build_successful" />
    </Target>
</Project>
