<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <SolutionDir Condition= "'$(SolutionDir)' == '' Or '$(SolutionDir)' == '*Undefined*'">.\</SolutionDir>
    <SolutionFile>SharpMap.sln</SolutionFile>
    <!--- pass version in command line: MSBuild /t:NuGetPack SharpMap.proj /p:NuGetVersion=1.0.0  -->
    <NuGetVersion>1.2.0</NuGetVersion>
  </PropertyGroup>

  
  <Target Name="CleanDebug">
    <MSBuild Projects="$(SolutionFile)" Targets="Clean" Properties="Configuration=Debug" />
  </Target>

  <Target Name="CleanRelease">
    <MSBuild Projects="$(SolutionFile)" Targets="Clean" Properties="Configuration=Release" />
  </Target>

  <Target Name="BuildDebug">
    <MSBuild Projects="$(SolutionFile)" 
             Targets="SharpMap;SharpMap_UI;SharpMap_Extensions;SharpMap_Extensions_x86;SharpMap_Web;SharpMap_Layers_HeatLayer;SharpMap_Layers_BruTile;SharpMap_Data_Providers_OracleSpatial;SharpMap_Data_Providers_GeoPackage;SharpMap_Data_Providers_Kml" 
             Properties="Configuration=Debug" 
             ContinueOnError="true"/>
  </Target>

  <Target Name="BuildRelease">
    <MSBuild Projects="$(SolutionFile)" 
             Targets="SharpMap;SharpMap_UI;SharpMap_Extensions;SharpMap_Extensions_x86;SharpMap_Web;SharpMap_Layers_HeatLayer;SharpMap_Layers_BruTile;SharpMap_Data_Providers_OracleSpatial;SharpMap_Data_Providers_GeoPackage;SharpMap_Data_Providers_Kml" 
             Properties="Configuration=Release" 
             ContinueOnError="true"/>
  </Target>

  <!-- build only for now, test on build server -->
  <Target Name="UnitTests">
    <MSBuild Projects="$(SolutionFile)" Targets="UnitTests" Properties="Configuration=Release" />
  </Target>

   <Target Name="JustNugetPack">
    <!--<Exec Command="IF NOT EXIST (""$(SolutionDir)\Release"") MKDIR ""$(SolutionDir)\Release""" />-->
    <Exec Command="$(SolutionDir).nuget\NuGet pack SharpMap.nuspec -version $(NuGetVersion) -outputdirectory $(SolutionDir)Release"/>
    <Exec Command="$(SolutionDir).nuget\NuGet pack SharpMap.Extensions.nuspec -version $(NuGetVersion) -outputdirectory $(SolutionDir)Release"/>
    <Exec Command="$(SolutionDir).nuget\NuGet pack SharpMap.UI.nuspec -version $(NuGetVersion) -outputdirectory $(SolutionDir)Release"/>
    <Exec Command="$(SolutionDir).nuget\NuGet pack SharpMap.Web.nuspec -version $(NuGetVersion) -outputdirectory $(SolutionDir)Release"/>
    <Exec Command="$(SolutionDir).nuget\NuGet pack SharpMap.Layers.HeatLayer.nuspec -version $(NuGetVersion) -outputdirectory $(SolutionDir)Release"/>
    <Exec Command="$(SolutionDir).nuget\NuGet pack SharpMap.Data.Providers.OracleSpatial.nuspec -version $(NuGetVersion) -outputdirectory $(SolutionDir)Release"/>
  </Target>

  <Target Name="NugetPack" DependsOnTargets="BuildRelease">
    <!--<Exec Command="IF NOT EXIST (""$(SolutionDir)\Release"") MKDIR ""$(SolutionDir)\Release""" />-->
    <Exec Command="$(SolutionDir).nuget\NuGet pack SharpMap.nuspec -version $(NuGetVersion) -outputdirectory $(SolutionDir)Release"/>
    <Exec Command="$(SolutionDir).nuget\NuGet pack SharpMap.Extensions.nuspec -version $(NuGetVersion) -outputdirectory $(SolutionDir)Release"/>
    <Exec Command="$(SolutionDir).nuget\NuGet pack SharpMap.UI.nuspec -version $(NuGetVersion) -outputdirectory $(SolutionDir)Release"/>
    <Exec Command="$(SolutionDir).nuget\NuGet pack SharpMap.Web.nuspec -version $(NuGetVersion) -outputdirectory $(SolutionDir)Release"/>
    <Exec Command="$(SolutionDir).nuget\NuGet pack SharpMap.Layers.HeatLayer.nuspec -version $(NuGetVersion) -outputdirectory $(SolutionDir)Release"/>
    <Exec Command="$(SolutionDir).nuget\NuGet pack SharpMap.Data.Providers.OracleSpatial.nuspec -version $(NuGetVersion) -outputdirectory $(SolutionDir)Release"/>
  </Target>

  <Target Name="ZipSharpMap" DependsOnTargets="NugetPack">
    <ItemGroup>
      <SharpMapCore Include="SharpMap.dll;SharpMap.pdb;SharpMap.xml;SharpMap.UI.dll;SharpMap.UI.pdb;SharpMap.UI.xml;BruTile.dll;BruTile.Desktop.dll;BruTile.Serialization.dll;BruTile.MbTiles.dll;Common.Logging.dll;GeoAPI.dll;NewtonSoft.Json.dll;NewtonSoft.Json.xml;PowerCollections.dll;ProjNet.dll;NetTopologySuite.dll" />
	    <SharpMapFiles Include="$(SolutionDir)\SharpMap.UI\bin\Release\**\*.*" />
      <!--
      <SharpMapExtensionsFiles Include="$(SolutionDir)\SharpMap.Extensions\bin\Release\**\*.*" Exclude="@(SharpMapCoreFiles)"/>
      <SharpMapExtensionsX86Files Include="$(SolutionDir)\SharpMap.Extensions.x86\bin\Release\**\*.*" Exclude="@(SharpMapCoreFiles)"/>
	  <SharpMapWebFiles Include="$(SolutionDir)\SharpMap.Web\bin\Release\**\*.*" Exclude="@(SharpMapCoreFiles)"/>
	  -->
    </ItemGroup>
    <Delete Files="SharpMap.zip;SharpMap.Extensions.zip;SharpMap.Extensions.x86.zip;SharpMap.Layers.HeatLayer.zip;SharpMap.Data.Providers.OracleSpatial.zip"/>
    <Zip Files="@(SharpMapFiles)"
         WorkingDirectory="$(SolutionDir)\SharpMap.UI\bin\Release"
         ZipFileName="release\SharpMap.zip"
         ZipLevel="9"/>

	<CreateItem Include="$(SolutionDir)\SharpMap.Extensions\bin\Release\**\*.*"
	            Exclude="@(SharpMapCore->'$(SolutionDir)\SharpMap.Extensions\bin\Release\%(identity)')">
		<Output TaskParameter="Include" ItemName="SharpMapExtensionsFiles"/>
	</CreateItem>
	
	<Zip Files="@(SharpMapExtensionsFiles)"
         WorkingDirectory="$(SolutionDir)\SharpMap.Extensions\bin\Release"
         ZipFileName="release\SharpMap.Extensions.zip"
         ZipLevel="9"/>

	<CreateItem Include="$(SolutionDir)\SharpMap.Extensions.x86\bin\Release\**\*.*"
	            Exclude="@(SharpMapCore->'$(SolutionDir)\SharpMap.Extensions.x86\bin\Release\%(identity)')">
		<Output TaskParameter="Include" ItemName="SMEX86Files"/>
	</CreateItem>
	
	<Zip Files="@(SMEX86Files)"
         WorkingDirectory="$(SolutionDir)\SharpMap.Extensions.x86\bin\Release"
         ZipFileName="release\SharpMap.Extensions.x86.zip"
         ZipLevel="9"/>

	<CreateItem Include="$(SolutionDir)\SharpMap.Web\bin\Release\**\*.*"
	            Exclude="@(SharpMapCore->'$(SolutionDir)\SharpMap.Web\bin\Release\%(identity)')">
		<Output TaskParameter="Include" ItemName="SharpMapWebFiles"/>
	</CreateItem>

    <Zip Files="@(SharpMapWebFiles)"
         WorkingDirectory="$(SolutionDir)\SharpMap.Web\bin\Release"
         ZipFileName="release\SharpMap.Web.zip"
         ZipLevel="9"/>

  <!--
    HeatLayer
    -->
	<CreateItem Include="$(SolutionDir)\SharpMap.Layers.HeatLayer\bin\Release\**\*.*"
	            Exclude="@(SharpMapCore->'$(SolutionDir)\SharpMap.Layers.HeatLayer\bin\Release\%(identity)')">
		<Output TaskParameter="Include" ItemName="SharpMapHeatLayer"/>
	</CreateItem>

    <Zip Files="@(SharpMapHeatLayer)"
         WorkingDirectory="$(SolutionDir)\SharpMap.Layers.HeatLayer\bin\Release"
         ZipFileName="release\SharpMap.Layers.HeatLayer.zip"
         ZipLevel="9"/>
    <!--
    OracleSpatial
    -->
    <CreateItem Include="$(SolutionDir)\SharpMap.Data.Providers.OracleSpatial\bin\Release\**\*.*"
                Exclude="@(SharpMapCore->'$(SolutionDir)\SharpMap.Data.Providers.OracleSpatial\bin\Release\%(identity)')">
      <Output TaskParameter="Include" ItemName="SharpMapOracleSpatial"/>
    </CreateItem>

    <Zip Files="@(SharpMapOracleSpatial)"
         WorkingDirectory="$(SolutionDir)\SharpMap.Data.Providers.OracleSpatial\bin\Release"
         ZipFileName="release\SharpMap.Data.Providers.OracleSpatial.zip"
		     Flatten="True"
         ZipLevel="9"/>
  </Target>

  
  <!-- TODO: add targets here to build zip, NuGet, ... -->
  <!--<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />-->
  <Import Project="$(SolutionDir)BuildTools\MSBuild.Community.Tasks.targets"/>
  
</Project>