forked from vkhorikov/CSharpFunctionalExtensions
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNuGet.msbuild
94 lines (79 loc) · 4.46 KB
/
NuGet.msbuild
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5" InitialTargets="CheckPrerequisites" DefaultTargets="Build">
<PropertyGroup>
<MSBuildCommunityTasksPath>$(MSBuildProjectDirectory)\Tools\MSBuildTasks\tools</MSBuildCommunityTasksPath>
</PropertyGroup>
<Import Project="$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.Targets"
Condition="Exists('$(MSBuildCommunityTasksPath)')"/>
<Target Name="CheckPrerequisites">
<Error Condition="!Exists('$(MSBuildCommunityTasksPath)')"
Text="Execute 'restore.cmd' to obtain required nuget packages" />
<Warning Condition="'$(PackageVersion)' == '' OR '$(PackageVersion)' == '$(DefaultPackageVersion)'"
Text="Specify property PackageVersion to create package for publishing. See semver.org for naming conventions." />
</Target>
<PropertyGroup>
<NuGet>.nuget\nuget.exe</NuGet>
<Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
<OutDir>out\$(Configuration)</OutDir>
<DefaultPackageVersion>1.0.0-internal</DefaultPackageVersion>
<PackageVersion>1.4.0</PackageVersion>
<NuGetPackagesDir>$(OutDir)\NuGet</NuGetPackagesDir>
<PackageOutDir>$(OutDir)\Packages</PackageOutDir>
</PropertyGroup>
<PropertyGroup>
<NuSpecFiles>$(NuGetPackagesDir)/**/*.nuspec</NuSpecFiles>
</PropertyGroup>
<Target Name="Build" DependsOnTargets="Clean;CopyBinaries;CollectNuspecs;UpdateVersion;Pack">
</Target>
<Target Name="CollectNuspecs">
<ItemGroup>
<NuSpecFiles Include="$(NuSpecFiles)" />
</ItemGroup>
<Message Text="Nuspec: %(NuSpecFiles.Identity)" />
</Target>
<Target Name="Pack">
<MakeDir Directories="$(PackageOutDir)" />
<Exec Command='$(NuGet) pack "%(NuSpecFiles.FullPath)" -OutputDirectory "$(PackageOutDir)"'/>
</Target>
<Target Name="UpdateVersion" Inputs="%(NuSpecFiles.Identity)" Outputs="_DO_IT_ANYWAY_">
<Message Text="Updating package %(NuSpecFiles.Identity) to version $(PackageVersion) ..." />
<XmlUpdate XmlFileName="%(NuSpecFiles.FullPath)"
Prefix="d" Namespace="http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd"
XPath="/d:package/d:metadata/d:version"
Value="$(PackageVersion)" />
<XmlUpdate XmlFileName="%(NuSpecFiles.FullPath)"
Prefix="d" Namespace="http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd"
XPath="/d:package/d:metadata/d:dependencies/d:dependency[@version='$version$']/@version"
Value="$(PackageVersion)" />
</Target>
<ItemGroup>
<!-- CSharpFunctionalExtensions -->
<PackageBinaries Include='CSharpFunctionalExtensions\CSharpFunctionalExtensions.nuspec'>
<Package>CSharpFunctionalExtensions</Package>
</PackageBinaries>
<PackageBinaries Include='$(OutDir)\CSharpFunctionalExtensions\4.5\CSharpFunctionalExtensions.dll'>
<Package>CSharpFunctionalExtensions</Package>
<Destination>lib\net45</Destination>
</PackageBinaries>
<PackageBinaries Include='$(OutDir)\CSharpFunctionalExtensions\4.0\CSharpFunctionalExtensions.dll'>
<Package>CSharpFunctionalExtensions</Package>
<Destination>lib\net40</Destination>
</PackageBinaries>
<PackageBinaries Include='$(OutDir)\CSharpFunctionalExtensions\3.5\CSharpFunctionalExtensions.dll'>
<Package>CSharpFunctionalExtensions</Package>
<Destination>lib\net35</Destination>
</PackageBinaries>
</ItemGroup>
<Target Name="CopyBinaries" Inputs="%(PackageBinaries.Identity)" Outputs="_DO_IT_">
<Message Text="Copying binaries for %(PackageBinaries.Package) ..." />
<PropertyGroup>
<PackageDir>$(NuGetPackagesDir)\%(PackageBinaries.Package)</PackageDir>
<BinariesDestinationDir>$(PackageDir)\%(PackageBinaries.Destination)</BinariesDestinationDir>
</PropertyGroup>
<MakeDir Directories="$(BinariesDestinationDir)" />
<Copy SourceFiles="%(PackageBinaries.Identity)" DestinationFolder="$(BinariesDestinationDir)\%(PackageBinaries.RecursiveDir)" />
</Target>
<Target Name="Clean">
<RemoveDir Directories="$(PackageOutDir);$(NuGetPackagesDir)" />
</Target>
</Project>