<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildThisFileDirectory)\GetGlobalProperties.task" Condition="'$(_ZVcpkgGetGlobalPropertiesImported)' != 'true'" />

  <!-- The VcpkgBootstrap target runs before VcpkgInstallManifestDependencies target and - if $(_ZVcpkgExecutable) is
  out-of-date with respect to $(_ZVcpkgRoot)\scripts\vcpkg-tool-metadata.txt - it invokes the
  VcpkgBootstrapImplementation target.

  MSBuild will ensure that MSBuild tasks with a given project path and set of global properties will run only once.
  -->
  <Target Name="VcpkgBootstrap"
          BeforeTargets="VcpkgInstallManifestDependencies"
          Inputs="$(_ZVcpkgRoot)\scripts\vcpkg-tool-metadata.txt"
          Outputs="$(_ZVcpkgExecutable)"
          >
    <GetGlobalProperties>
      <Output TaskParameter="GlobalPropertyNames" PropertyName="_ZVcpkgGlobalPropertyNames" />
    </GetGlobalProperties>
    <MSBuild BuildInParallel="true"
             Projects="$(MSBuildThisFileDirectory)\BootstrapImplementation.targets"
             Targets="VcpkgBootstrapImplementation"
             RemoveProperties="$(_ZVcpkgGlobalPropertyNames)"
             Properties="_ZVcpkgRoot=$(_ZVcpkgRoot)"
             />
  </Target>
</Project>
