-
Notifications
You must be signed in to change notification settings - Fork 1
/
BuildPackage.targets
69 lines (69 loc) · 5.63 KB
/
BuildPackage.targets
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
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PrepareForRunDependsOn>$(PrepareForRunDependsOn);BuildPackage</PrepareForRunDependsOn>
</PropertyGroup>
<Target Name="BuildPackage" DependsOnTargets="$(BuildPackageDependsOn)" Condition=" '$(BuildPackage)' == 'True' " />
<Target Name="CoreBuildPackage">
<ItemGroup Condition=" '$(NuGetToolPath)' == '' ">
<_exe Include="$(MSBuildThisFileDirectory)..\..\NuGet.CommandLine*\tools\NuGet.exe" />
</ItemGroup>
<PropertyGroup Condition=" '$(BuildPackageTool)' == '' ">
<BuildPackageTool Condition=" '$(OutputType)' == 'Exe' " >True</BuildPackageTool>
<BuildPackageTool Condition=" '$(OutputType)' == 'Winexe' " >True</BuildPackageTool>
</PropertyGroup>
<PropertyGroup Condition=" '$(NuGetToolPath)' == '' ">
<NuGetToolPath>%(_exe.FullPath)</NuGetToolPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(BuildPackageOutputDirectory)' == '' ">
<BuildPackageOutputDirectory>$(OutDir)</BuildPackageOutputDirectory>
</PropertyGroup>
<PropertyGroup Condition=" '$(BuildPackageBasePath)' == '' ">
<BuildPackageBasePath>$(OutDir)</BuildPackageBasePath>
</PropertyGroup>
<PropertyGroup Condition=" '$(BuildPackageProperties)' == '' ">
<BuildPackageProperties>Configuration=$(Configuration)</BuildPackageProperties>
<BuildPackageProperties>$(BuildPackageProperties);Platform=$(Platform)</BuildPackageProperties>
<BuildPackageProperties Condition="HasTrailingSlash('$(OutDir)')">$(BuildPackageProperties);OutDir="$(OutDir)\"</BuildPackageProperties>
<BuildPackageProperties Condition="!HasTrailingSlash('$(OutDir)')">$(BuildPackageProperties);OutDir="$(OutDir)\\"</BuildPackageProperties>
<BuildPackageProperties Condition=" '$(BuildPackageAdditionalProperties)' != '' ">$(BuildPackageProperties);$(BuildPackageAdditionalProperties)</BuildPackageProperties>
</PropertyGroup>
<PropertyGroup>
<NugetPackCommand>"$(NuGetToolPath)"</NugetPackCommand>
<NugetPackCommand>$(NugetPackCommand) pack "$(MSBuildProjectFile)"</NugetPackCommand>
<NugetPackCommand Condition=" '$(OsEnvironment)' == 'Unix' ">mono $(NugetPackCommand)</NugetPackCommand>
<!-- Escape the OutDir's trailing slash -->
<NugetPackCommand Condition="HasTrailingSlash('$(BuildPackageOutputDirectory)')">$(NugetPackCommand) -OutputDirectory "$(BuildPackageOutputDirectory)\"</NugetPackCommand>
<NugetPackCommand Condition="!HasTrailingSlash('$(BuildPackageOutputDirectory)')">$(NugetPackCommand) -OutputDirectory "$(BuildPackageOutputDirectory)\\"</NugetPackCommand>
<NugetPackCommand Condition="HasTrailingSlash('$(BuildPackageBasePath)')">$(NugetPackCommand) -BasePath "$(BuildPackageBasePath)\"</NugetPackCommand>
<NugetPackCommand Condition="!HasTrailingSlash('$(BuildPackageBasePath)')">$(NugetPackCommand) -BasePath "$(BuildPackageBasePath)\\"</NugetPackCommand>
<NugetPackCommand Condition=" '$(BuildPackageVersion)' != '' ">$(NugetPackCommand) -Version $(BuildPackageVersion)</NugetPackCommand>
<NugetPackCommand Condition=" '$(BuildPackageExclude)' != '' ">$(NugetPackCommand) -Exclude $(BuildPackageExclude)</NugetPackCommand>
<NugetPackCommand Condition=" '$(BuildPackageSymbols)' == 'True' ">$(NugetPackCommand) -Symbols</NugetPackCommand>
<NugetPackCommand Condition=" '$(BuildPackageTool)' == 'True' ">$(NugetPackCommand) -Tool</NugetPackCommand>
<NugetPackCommand Condition=" '$(BuildPackageNoDefaultExcludes)' == 'True' ">$(NugetPackCommand) -NoDefaultExcludes</NugetPackCommand>
<NugetPackCommand Condition=" '$(BuildPackageNoPackageAnalysis)' == 'True' ">$(NugetPackCommand) -NoPackageAnalysis</NugetPackCommand>
<NugetPackCommand Condition=" '$(BuildPackageIncludeReferencedProjects)' == 'True' ">$(NugetPackCommand) -IncludeReferencedProjects</NugetPackCommand>
<NugetPackCommand Condition=" '$(BuildPackageExcludeEmptyDirectories)' == 'True' ">$(NugetPackCommand) -ExcludeEmptyDirectories</NugetPackCommand>
<NugetPackCommand Condition=" '$(BuildPackageProperties)' != '' ">$(NugetPackCommand) -Properties $(BuildPackageProperties)</NugetPackCommand>
<NugetPackCommand Condition=" '$(BuildPackageDetailed)' == 'True' ">$(NugetPackCommand) -Verbosity detailed</NugetPackCommand>
<NugetPackCommand>$(NugetPackCommand) -NonInteractive</NugetPackCommand>
<NugetPackCommand Condition=" '$(BuildPackageMinClientVersion)' == 'True' ">$(NugetPackCommand) -MinClientVersion $(BuildPackageMinClientVersion)</NugetPackCommand>
<NugetPackCommand Condition=" '$(BuildPackageMSBuildVersion)' == 'True' ">$(NugetPackCommand) -MSBuildVersion $(BuildPackageMSBuildVersion)</NugetPackCommand>
</PropertyGroup>
<Exec ContinueOnError="ErrorAndContinue" ConsoleToMSBuild="True" Command="$(NugetPackCommand)">
<Output TaskParameter="ConsoleOutput" ItemName="_out" />
</Exec>
<PropertyGroup>
<_Pattern><![CDATA[Successfully created package '(?<package>.+)'.]]></_Pattern>
</PropertyGroup>
<ItemGroup>
<BuildPackageOutputs Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('%(_out.Identity)', '$(_Pattern)'))" Include="$([System.Text.RegularExpressions.Regex]::Match('%(_out.Identity)', '$(_Pattern)').Groups['package'].Value)">
<Symbols>False</Symbols>
<Symbols Condition="$([System.String]::Copy('%(FileName)').Contains('.symbols.nupkg'))">True</Symbols>
</BuildPackageOutputs>
</ItemGroup>
<ItemGroup>
<FileWrites Include="@(BuildPackageOutputs)" />
</ItemGroup>
</Target>
</Project>