﻿<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="DownloadWXWidgets">
        <PropertyGroup>
            <WXMSW_DEV_7Z_X86>
                <![CDATA[wxMSW-$(WX_WIDGETS_VERSION)_$(WXWidgetsVCVer)_Dev.7z]]>
            </WXMSW_DEV_7Z_X86>
            <WXMSW_RELEASEDLL_7Z_X86>
                <![CDATA[wxMSW-$(WX_WIDGETS_VERSION)_$(WXWidgetsVCVer)_ReleaseDLL.7z]]>
            </WXMSW_RELEASEDLL_7Z_X86>
            <WXMSW_RELEASEPDB_7Z_X86>
                <![CDATA[wxMSW-$(WX_WIDGETS_VERSION)_$(WXWidgetsVCVer)_ReleasePDB.7z]]>
            </WXMSW_RELEASEPDB_7Z_X86>
            <WXMSW_DEV_7Z_X64>
                <![CDATA[wxMSW-$(WX_WIDGETS_VERSION)_$(WXWidgetsVCVer)_x64_Dev.7z]]>
            </WXMSW_DEV_7Z_X64>
            <WXMSW_RELEASEDLL_7Z_X64>
                <![CDATA[wxMSW-$(WX_WIDGETS_VERSION)_$(WXWidgetsVCVer)_x64_ReleaseDLL.7z]]>
            </WXMSW_RELEASEDLL_7Z_X64>
            <WXMSW_RELEASEPDB_7Z_X64>
                <![CDATA[wxMSW-$(WX_WIDGETS_VERSION)_$(WXWidgetsVCVer)_x64_ReleasePDB.7z]]>
            </WXMSW_RELEASEPDB_7Z_X64>
            <WXWIDGETS_DOCS_CHM>
                <![CDATA[wxWidgets-$(WX_WIDGETS_VERSION)-docs-chm.zip]]>
            </WXWIDGETS_DOCS_CHM>
            <WXWIDGETS_DOCS_HTML>
                <![CDATA[wxWidgets-$(WX_WIDGETS_VERSION)-docs-html.zip]]>
            </WXWIDGETS_DOCS_HTML>
            <WXWIDGETS_HEADERS>
                <![CDATA[wxWidgets-$(WX_WIDGETS_VERSION)-headers.7z]]>
            </WXWIDGETS_HEADERS>
        </PropertyGroup>
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - DownloadWXWidgets" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\$(WXMSW_DEV_7Z_X86)')"
            FileUri="$(WX_WIDGETS_URL)/$(WXMSW_DEV_7Z_X86)"
            FileName="$(MSBuildProjectDirectory)\_archives\$(WXMSW_DEV_7Z_X86)"
            UseDefaultCredentials="True" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\$(WXMSW_RELEASEDLL_7Z_X86)')"
            FileUri="$(WX_WIDGETS_URL)/$(WXMSW_RELEASEDLL_7Z_X86)"
            FileName="$(MSBuildProjectDirectory)\_archives\$(WXMSW_RELEASEDLL_7Z_X86)"
            UseDefaultCredentials="True" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\$(WXMSW_RELEASEPDB_7Z_X86)')"
            FileUri="$(WX_WIDGETS_URL)/$(WXMSW_RELEASEPDB_7Z_X86)"
            FileName="$(MSBuildProjectDirectory)\_archives\$(WXMSW_RELEASEPDB_7Z_X86)"
            UseDefaultCredentials="True" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\$(WXMSW_DEV_7Z_X64)')"
            FileUri="$(WX_WIDGETS_URL)/$(WXMSW_DEV_7Z_X64)"
            FileName="$(MSBuildProjectDirectory)\_archives\$(WXMSW_DEV_7Z_X64)"
            UseDefaultCredentials="True" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\$(WXMSW_RELEASEDLL_7Z_X64)')"
            FileUri="$(WX_WIDGETS_URL)/$(WXMSW_RELEASEDLL_7Z_X64)"
            FileName="$(MSBuildProjectDirectory)\_archives\$(WXMSW_RELEASEDLL_7Z_X64)"
            UseDefaultCredentials="True" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\$(WXMSW_RELEASEPDB_7Z_X64)')"
            FileUri="$(WX_WIDGETS_URL)/$(WXMSW_RELEASEPDB_7Z_X64)"
            FileName="$(MSBuildProjectDirectory)\_archives\$(WXMSW_RELEASEPDB_7Z_X64)"
            UseDefaultCredentials="True" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\$(WXWIDGETS_DOCS_CHM)')"
            FileUri="$(WX_WIDGETS_URL)/$(WXWIDGETS_DOCS_CHM)"
            FileName="$(MSBuildProjectDirectory)\_archives\$(WXWIDGETS_DOCS_CHM)"
            UseDefaultCredentials="True" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\$(WXWIDGETS_DOCS_HTML)')"
            FileUri="$(WX_WIDGETS_URL)/$(WXWIDGETS_DOCS_HTML)"
            FileName="$(MSBuildProjectDirectory)\_archives\$(WXWIDGETS_DOCS_HTML)"
            UseDefaultCredentials="True" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\$(WXWIDGETS_HEADERS)')"
            FileUri="$(WX_WIDGETS_URL)/$(WXWIDGETS_HEADERS)"
            FileName="$(MSBuildProjectDirectory)\_archives\$(WXWIDGETS_HEADERS)"
            UseDefaultCredentials="True" />
    </Target>
    <Target Name="ExtractWXWidgets">
        <ItemGroup>
            <WX_WIDGETS_BASE_FILE_SET
                Include="$(MSBuildProjectDirectory)\_archives\wxMSW-$(WX_WIDGETS_VERSION)_$(WXWidgetsVCVer)*.7z" />
            <WX_WIDGETS_DOCS_FILE_SET
                Include="$(MSBuildProjectDirectory)\_archives\wxWidgets-$(WX_WIDGETS_VERSION)-docs-*.zip" />
        </ItemGroup>
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - ExtractWXWidgets" />
        <MakeDir
            Condition="!Exists('$(MSBuildProjectDirectory)\wxWidgets')"
            Directories="$(MSBuildProjectDirectory)\wxWidgets" />
        <MakeDir
            Condition="!Exists('$(MSBuildProjectDirectory)\wxWidgets\docs')"
            Directories="$(MSBuildProjectDirectory)\wxWidgets\docs" />
        <ExtractWith7za
            FileToExtract="%(WX_WIDGETS_BASE_FILE_SET.Identity)"
            OutputDirectory="$(MSBuildProjectDirectory)\wxWidgets" />
        <ExtractWith7za
            FileToExtract="%(WX_WIDGETS_DOCS_FILE_SET.Identity)"
            OutputDirectory="$(MSBuildProjectDirectory)\wxWidgets" />
        <ExtractWith7za
            FileToExtract="$(MSBuildProjectDirectory)\_archives\$(WXWIDGETS_HEADERS)"
            OutputDirectory="$(MSBuildProjectDirectory)\wxWidgets" />
    </Target>
    <Target Name="BuildWXWidgets">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - BuildWXWidgets" />
    </Target>
    <Target Name="CopyWXWidgets">
        <ItemGroup>
            <WXWIDGETS_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\wxWidgets\docs\**\*.*" />
            <WXWIDGETS_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\wxWidgets\include\**\*.*" />
            <WXWIDGETS_LIB_FILES
                Include="$(MSBuildProjectDirectory)\wxWidgets\lib\**\*.*" />
        </ItemGroup>
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CopyWXWidgets" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\docs\wxWidgets')"
            Directories="$(COMMON_SDKS)\docs\wxWidgets" />
        <Copy
            SourceFiles="@(WXWIDGETS_DOCS_FILES)"
            DestinationFolder="$(COMMON_SDKS)\docs\wxWidgets\%(RecursiveDir)"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(WXWIDGETS_INCLUDE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\include\%(RecursiveDir)"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(WXWIDGETS_LIB_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\%(RecursiveDir)"
            SkipUnchangedFiles="true" />
    </Target>
    <Target Name="CleanWXWidgets">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CleanWXWidgets" />
        <RemoveDir
            Condition="Exists('$(MSBuildProjectDirectory)\wxWidgets')"
            Directories="$(MSBuildProjectDirectory)\wxWidgets" />
    </Target>
    <Target Name="WXWidgets">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - WXWidgets" />
        <CallTarget
            Condition="!Exists('$(MSBuildProjectDirectory)\build_state\WXWidgets_build_successful')"
            Targets="DownloadWXWidgets;ExtractWXWidgets;BuildWXWidgets;CopyWXWidgets" />
        <Touch
            AlwaysCreate='true'
            Files="$(MSBuildProjectDirectory)\build_state\WXWidgets_build_successful" />
    </Target>
</Project>
