<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Layout" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ArchiveOutputDirectory>$(PackagesDirectory)</ArchiveOutputDirectory>
  </PropertyGroup>

  <Target Name="GenerateArchives"
          DependsOnTargets="Init;
                            Layout;
                            SetupGenerateArchivesInputsOutputs;
                            MakePackagesDir;"
          Inputs="%(GenerateArchivesInputsOutputs.Inputs)"
          Outputs="%(GenerateArchivesInputsOutputs.Outputs)">

    <PropertyGroup>
      <GenerateArchivesDestinationArchive>$(ArchiveOutputDirectory)/%(GenerateArchivesInputsOutputs.OutFileName)$(ArchiveExtension)</GenerateArchivesDestinationArchive>
    </PropertyGroup>

    <ZipFileCreateFromDirectory
        Condition=" '$(OSName)' == 'win' "
        SourceDirectory="%(GenerateArchivesInputsOutputs.InputDirectory)"
        DestinationArchive="$(GenerateArchivesDestinationArchive)"
        OverwriteDestination="true"/>

    <TarGzFileCreateFromDirectory
        Condition=" '$(OSName)' != 'win' "
        SourceDirectory="%(GenerateArchivesInputsOutputs.InputDirectory)"
        DestinationArchive="$(GenerateArchivesDestinationArchive)"
        OverwriteDestination="true"/>

    <ItemGroup>
      <Archives Include="$(GenerateArchivesDestinationArchive)" />
    </ItemGroup>

  </Target>

  <Target Name="SetupGenerateArchivesInputsOutputs"
          DependsOnTargets="Init">
    <ItemGroup>
      <GenerateArchivesInputsOutputs Include="%(LayoutDefinition.Name)">
        <Inputs>%(LayoutDefinition.OutputFiles)</Inputs>
        <Outputs>$(ArchiveOutputDirectory)/%(LayoutDefinition.NameWithVersion)$(ArchiveExtension)</Outputs>
        <InputDirectory>$(LayoutDirectory)/%(LayoutDefinition.Name)</InputDirectory>
        <OutFileName>%(LayoutDefinition.NameWithVersion)</OutFileName>
      </GenerateArchivesInputsOutputs>
    </ItemGroup>
  </Target>

  <Target Name="MakePackagesDir">
    <MakeDir Directories="$(PackagesDirectory)" />
  </Target>

</Project>
