summaryrefslogtreecommitdiffstats
path: root/nuget/nuget.proj
blob: efa884513719b3708a4cda43d0b5c14c78c45211 (plain)
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
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
	<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.props))\EnlistmentInfo.props" Condition=" '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.props))' != '' " />
	<Import Project="$(MSBuildProjectDirectory)\..\tools\DotNetOpenAuth.automated.props"/>

	<Target Name="BuildIntermediates">
		<ItemGroup>
			<ProductTargets Include="BuildUnifiedProduct;ReSignDelaySignedAssemblies" Condition=" '$(SkipNugetDependenciesBuild)' != 'true' " />
			<ProductTargets Include="GetOutputPath" />
		</ItemGroup>

		<!-- We build the entire unified, signed product targeting both CLRs, since NuGet supports packages that contain both,
		     and by building against CLR 4, several assembly references fall away from dotnetopenauth.dll, which makes some folks happy. -->
		<MSBuild
			Projects="$(ProjectRoot)src\DotNetOpenAuth\DotNetOpenAuth.proj"
			Targets="@(ProductTargets)"
			Properties="TargetFrameworkVersion=v3.5"
			BuildInParallel="$(BuildInParallel)">
			<Output TaskParameter="TargetOutputs" ItemName="TargetOutputs35"/>
		</MSBuild>
		<MSBuild
			Projects="$(ProjectRoot)src\DotNetOpenAuth\DotNetOpenAuth.proj"
			Targets="@(ProductTargets)"
			Properties="TargetFrameworkVersion=v4.0"
			BuildInParallel="$(BuildInParallel)">
			<Output TaskParameter="TargetOutputs" ItemName="TargetOutputs40"/>
		</MSBuild>

		<ItemGroup>
			<ResignedAssembliesOutputs Include="@(TargetOutputs35)" Condition=" '%(MSBuildSourceTargetName)' == 'Sign' ">
				<TargetFramework>v3.5</TargetFramework>
			</ResignedAssembliesOutputs>
			<ResignedAssembliesOutputs Include="@(TargetOutputs40)" Condition=" '%(MSBuildSourceTargetName)' == 'Sign' ">
				<TargetFramework>v4.0</TargetFramework>
			</ResignedAssembliesOutputs>
		</ItemGroup>
		<PropertyGroup>
			<OutputPath35 Condition=" '%(MSBuildSourceTargetName)' == 'GetOutputPath' ">@(TargetOutputs35)</OutputPath35>
			<OutputPath40 Condition=" '%(MSBuildSourceTargetName)' == 'GetOutputPath' ">@(TargetOutputs40)</OutputPath40>
		</PropertyGroup>
	</Target>

	<Target Name="Build" DependsOnTargets="BuildIntermediates">
		<ItemGroup>
			<NuGetPackages Include="*.nuspec" Exclude="DotNetOpenAuth.Ultimate.nuspec">
				<Symbols>true</Symbols>
			</NuGetPackages>
			<NuGetPackages Include="DotNetOpenAuth.Ultimate.nuspec" />

			<NuGetProperties Include="version=$(NuGetPackageVersion)" />
			<NuGetProperties Include="oauth2version=0.11.0-draft" />
			<NuGetProperties Include="OutputPath35=$(OutputPath35)" />
			<NuGetProperties Include="OutputPath40=$(OutputPath40)" />
		</ItemGroup>
		<NuGetPack
			NuSpec="%(NuGetPackages.Identity)"
			OutputPackageDirectory="$(DropsRoot)"
			Properties="@(NuGetProperties)"
			Symbols="%(NuGetPackages.Symbols)"
			ToolPath="$(NuGetToolPath)" />
	</Target>

	<Import Project="$(ProjectRoot)tools\DotNetOpenAuth.automated.targets"/>
	<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.targets))\EnlistmentInfo.targets" Condition=" '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.targets))' != '' " />
</Project>