﻿<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="DownloadJPEG">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - DownloadJPEG" />
        <WebDownload
            Condition="!Exists('$(MSBuildProjectDirectory)\_archives\$(JPEG_SRC_TAR_GZ)')"
            FileUri="$(JPEG_URL)/$(JPEG_SRC_TAR_GZ)"
            FileName="$(MSBuildProjectDirectory)\_archives\$(JPEG_SRC_TAR_GZ)"
            UseDefaultCredentials="True" />
    </Target>
    <Target Name="ExtractJPEG">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - ExtractJPEG" />
        <ExtractWith7za
            Condition="!Exists('$(MSBuildProjectDirectory)\$(JPEG_DIR)')"
            FileToExtract="$(MSBuildProjectDirectory)\_archives\$(JPEG_SRC_TAR_GZ)" />
        <Copy
            SourceFiles="$(MSBuildProjectDirectory)\$(JPEG_DIR)\jconfig.vc"
            DestinationFiles="$(MSBuildProjectDirectory)\$(JPEG_DIR)\jconfig.h"
            SkipUnchangedFiles="true" />
    </Target>
    <Target Name="PatchJPEG">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - PatchJPEG" />
        <Exec
            Condition="!Exists('$(MSBuildProjectDirectory)\$(JPEG_DIR)\jpeg_patched')"
            Command="&quot;$(PATCH_EXE)&quot; -p1 -i &quot;$(MSBuildProjectDirectory)\patches\$(JPEG_PATCH_FILE)&quot;"
            WorkingDirectory="$(MSBuildProjectDirectory)\$(JPEG_DIR)" />
        <Touch
            AlwaysCreate='true'
            Files="$(MSBuildProjectDirectory)\$(JPEG_DIR)\jpeg_patched" />
    </Target>
    <Target Name="BuildJPEG">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - BuildJPEG" />
        <MSBuild
            Projects="$(MSBuildProjectDirectory)\$(JPEG_DIR)\jpeg.sln"
            Properties="Configuration=Release;Platform=Win32;VcpkgEnabled=false"/>
        <MSBuild
            Projects="$(MSBuildProjectDirectory)\$(JPEG_DIR)\jpeg.sln"
            Properties="Configuration=Release;Platform=x64;VcpkgEnabled=false"/>
        <MSBuild
            Projects="$(MSBuildProjectDirectory)\$(JPEG_DIR)\jpeg.sln"
            Properties="Configuration=Debug;Platform=Win32;VcpkgEnabled=false"/>
        <MSBuild
            Projects="$(MSBuildProjectDirectory)\$(JPEG_DIR)\jpeg.sln"
            Properties="Configuration=Debug;Platform=x64;VcpkgEnabled=false"/>
    </Target>
    <Target Name="CopyJPEG">
        <ItemGroup>
            <JPEG_BIN_X64_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Debug\cjpeg.*" />
            <JPEG_BIN_X64_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Debug\djpeg.*" />
            <JPEG_BIN_X64_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Debug\jpegtran.*" />
            <JPEG_BIN_X64_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Debug\libjpeg-9.dll" />
            <JPEG_BIN_X64_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Debug\libjpeg-9.pdb" />
            <JPEG_BIN_X64_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Debug\rdjpgcom.*" />
            <JPEG_BIN_X64_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Debug\wrjpgcom.*" />
            <JPEG_BIN_X64_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Release\cjpeg.*" />
            <JPEG_BIN_X64_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Release\djpeg.*" />
            <JPEG_BIN_X64_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Release\jpegtran.*" />
            <JPEG_BIN_X64_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Release\libjpeg-9.dll" />
            <JPEG_BIN_X64_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Release\libjpeg-9.pdb" />
            <JPEG_BIN_X64_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Release\rdjpgcom.*" />
            <JPEG_BIN_X64_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Release\wrjpgcom.*" />
            <JPEG_BIN_X86_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Debug\cjpeg.*" />
            <JPEG_BIN_X86_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Debug\djpeg.*" />
            <JPEG_BIN_X86_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Debug\jpegtran.*" />
            <JPEG_BIN_X86_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Debug\libjpeg-9.dll" />
            <JPEG_BIN_X86_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Debug\libjpeg-9.pdb" />
            <JPEG_BIN_X86_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Debug\rdjpgcom.*" />
            <JPEG_BIN_X86_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Debug\wrjpgcom.*" />
            <JPEG_BIN_X86_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Release\cjpeg.*" />
            <JPEG_BIN_X86_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Release\djpeg.*" />
            <JPEG_BIN_X86_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Release\jpegtran.*" />
            <JPEG_BIN_X86_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Release\libjpeg-9.dll" />
            <JPEG_BIN_X86_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Release\libjpeg-9.pdb" />
            <JPEG_BIN_X86_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Release\rdjpgcom.*" />
            <JPEG_BIN_X86_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Release\wrjpgcom.*" />
            <JPEG_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\*.1" />
            <JPEG_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\coderules.txt" />
            <JPEG_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\libjpeg.txt" />
            <JPEG_DOCS_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\structure.txt" />
            <JPEG_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\jconfig.h" />
            <JPEG_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\jerror.h" />
            <JPEG_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\jmorecfg.h" />
            <JPEG_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\jpeglib.h" />
            <JPEG_INCLUDE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\jversion.h" />
            <JPEG_LIB_X64_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Debug\libjpeg-9.lib" />
            <JPEG_LIB_X64_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x64\Release\libjpeg-9.lib" />
            <JPEG_LIB_X86_DEBUG_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Debug\libjpeg-9.lib" />
            <JPEG_LIB_X86_RELEASE_FILES
                Include="$(MSBuildProjectDirectory)\$(JPEG_DIR)\bin\x86\Release\libjpeg-9.lib" />
        </ItemGroup>
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CopyJPEG" />
        <MakeDir
            Condition="!Exists('$(COMMON_SDKS)\docs\jpeg')"
            Directories="$(COMMON_SDKS)\docs\jpeg" />
        <Copy
            SourceFiles="@(JPEG_BIN_X64_DEBUG_FILES)"
            DestinationFolder="$(COMMON_SDKS)\bin\x64\Debug"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(JPEG_BIN_X64_RELEASE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\bin\x64\Release"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(JPEG_BIN_X86_DEBUG_FILES)"
            DestinationFolder="$(COMMON_SDKS)\bin\x86\Debug"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(JPEG_BIN_X86_RELEASE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\bin\x86\Release"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(JPEG_DOCS_FILES)"
            DestinationFolder="$(COMMON_SDKS)\docs\jpeg"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(JPEG_INCLUDE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\include"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(JPEG_LIB_X64_DEBUG_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\x64\Debug"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(JPEG_LIB_X64_RELEASE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\x64\Release"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(JPEG_LIB_X86_DEBUG_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\x86\Debug"
            SkipUnchangedFiles="true" />
        <Copy
            SourceFiles="@(JPEG_LIB_X86_RELEASE_FILES)"
            DestinationFolder="$(COMMON_SDKS)\lib\x86\Release"
            SkipUnchangedFiles="true" />
    </Target>
    <Target Name="CleanJPEG">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - CleanJPEG" />
        <RemoveDir
            Condition="Exists('$(MSBuildProjectDirectory)\$(JPEG_DIR)')"
            Directories="$(MSBuildProjectDirectory)\$(JPEG_DIR)" />
    </Target>
    <Target Name="JPEG">
        <SetConsoleTitle
            Title="$(CONSOLE_TITLE) - JPEG" />
        <CallTarget
            Condition="!Exists('$(MSBuildProjectDirectory)\build_state\JPEG_build_successful')"
            Targets="DownloadJPEG;ExtractJPEG;PatchJPEG;BuildJPEG;CopyJPEG" />
        <Touch
            AlwaysCreate='true'
            Files="$(MSBuildProjectDirectory)\build_state\JPEG_build_successful" />
    </Target>
</Project>
