<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets">
    <Import Project="signalwire-client-c-version.props" Condition=" '$(signalwire-client-cVersionImported)' == ''"/>
  </ImportGroup>

  <PropertyGroup>
    <signalwire-client-cPropsImported>true</signalwire-client-cPropsImported>
  </PropertyGroup>

  <PropertyGroup Label="UserMacros">
    <signalwire-client-cDir>$(BaseDir)libs\signalwire-client-c-$(signalwire-client-cVersion)</signalwire-client-cDir>
  </PropertyGroup>

  <!-- 
       Download Target.
       Name must be unique. 
       By design, targets are executed only once per project.
       
       Usage:
       
       package: URI

       expectfileordirectory: Skips the download and extraction if exists

       outputfolder: Folder to store a downloaded file. 
                     By default "$(BaseDir)libs", if empty

       outputfilename: If not empty, overrides filename from URI.
                       .exe files don't get extracted

       extractto: Folder to extract an archive to
   -->

  <Target Name="signalwire-client-cBinariesDownloadTarget" BeforeTargets="CustomBuild" DependsOnTargets="7za">  
      <DownloadPackageTask 
           package="http://files.freeswitch.org/windows/packages/signalwire-client-c/$(signalwire-client-cVersion)_$(signalwire-client-cBuildNumber)/signalwire-client-c-$(signalwire-client-cVersion)_$(signalwire-client-cBuildNumber)-binaries-$(Platform.ToLower())-$(Configuration.ToLower()).zip"
           expectfileordirectory="$(signalwire-client-cDir)\binaries\$(Platform)\$(Configuration)\signalwire_client2.dll" 
           outputfolder=""
           outputfilename="" 
           extractto="$(BaseDir)libs\"
      />
  </Target> 
  <Target Name="signalwire-client-cHeadersDownloadTarget" BeforeTargets="CustomBuild" DependsOnTargets="7za">  
      <DownloadPackageTask 
           package="http://files.freeswitch.org/windows/packages/signalwire-client-c/$(signalwire-client-cVersion)_$(signalwire-client-cBuildNumber)/signalwire-client-c-$(signalwire-client-cVersion)_$(signalwire-client-cBuildNumber)-headers.zip"
           expectfileordirectory="$(signalwire-client-cDir)\include\signalwire-client-c\client.h" 
           outputfolder=""
           outputfilename="" 
           extractto="$(BaseDir)libs\"
      />
  </Target> 

  <Target Name="signalwire-client-ccopyTarget" BeforeTargets="CustomBuild" DependsOnTargets="signalwire-client-cBinariesDownloadTarget">  
        <Message Text="Copying signalwire-client-c libraries to the freeswitch output folder." Importance="High" />
        <ItemGroup>  
             <signalwire-client-cFiles Include="$(signalwire-client-cDir)\binaries\$(Platform)\$(Configuration)\*.dll"/>  
        </ItemGroup>  
        <Copy Condition="!exists('$(BaseDir)\$(Platform)\$(Configuration)\signalwire_client2.dll')"
            SourceFiles="@(signalwire-client-cFiles)"  
            DestinationFiles="@(signalwire-client-cFiles->'$(BaseDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension)')"  
        />  
  </Target>   


  <ItemDefinitionGroup>
    <ClCompile>
      <AdditionalIncludeDirectories>$(signalwire-client-cDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalLibraryDirectories>$(signalwire-client-cDir)\binaries\$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>signalwire_client2.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
</Project>