summaryrefslogtreecommitdiffstats
path: root/samples/tools.proj
blob: 60786e9e4606b0c0d2f249fe1860ee06e2db3d41 (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
66
67
<?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="Layout">
		<PropertyGroup>
			<ToolsDirectoryNoSlash>$(DropsRoot)$(ProductName)-Tools-$(BuildVersion)</ToolsDirectoryNoSlash>
			<ToolsDirectory>$(ToolsDirectoryNoSlash)\</ToolsDirectory>
		</PropertyGroup>

		<ItemGroup>
			<ToolProjects Include="$(ProjectRoot)Samples\OpenIdOfflineProvider\OpenIdOfflineProvider.csproj">
				<Targets>Build</Targets>
			</ToolProjects>
		</ItemGroup>

		<MSBuild Projects="@(ToolProjects)" Targets="%(ToolProjects.Targets);BuiltProjectOutputGroupDependencies" BuildInParallel="$(BuildInParallel)">
			<Output TaskParameter="TargetOutputs" ItemName="ToolProjectsOutputs"/>
		</MSBuild>

		<ItemGroup>
			<!-- Exclude the un-unified assemblies. -->
			<OfflineProvider Include="@(ToolProjectsOutputs)" 
											 Condition=" '%(ToolProjectsOutputs.CopyLocal)' != 'false' "
											 Exclude="
											 $(OutputPath)$(ProductName).dll;
											 $(OutputPath)System.Web.Mvc.dll;
											 " />
			
			<!-- add the PDBs -->
			<OfflineProvider Include="@(OfflineProvider->'%(SymbolPath)')" />
			<OfflineProviderTargets Include="
											 @(OfflineProvider->'$(ToolsDirectory)%(CultureDir)%(FileName)%(Extension)')"/>

			<AllToolSources Include="@(OfflineProvider)" />
			<AllToolTargets Include="@(OfflineProviderTargets)" />
		</ItemGroup>

		<MakeDir Directories="@(ToolsDirectory)" />
		<Copy SourceFiles="@(AllToolSources)" DestinationFiles="@(AllToolTargets)" SkipUnchangedFiles="true" />

		<!-- remove files that shouldn't be in the directory (perhaps from a previous version). -->
		<Purge Directories="$(ToolsDirectory)" IntendedFiles="@(AllToolTargets)" />
	</Target>

	<Target Name="Build" DependsOnTargets="Layout" Returns="@(RedistributableFiles)">
		<ItemGroup>
			<ToolsZip Include="$(ToolsDirectoryNoSlash).zip" />
			<ToolsZip Include="$(ToolsDirectoryNoSlash).7z" />
			<RedistributableFiles Include="@(ToolsZip)">
				<Package>DotNetOpenAuth-Tools</Package>
				<Platform>.NET $(TargetFrameworkVersion)</Platform>
			</RedistributableFiles>
		</ItemGroup>

		<Delete Files="@(ToolsZip)" />
		<AddFilesTo7Zip
			ZipFileName="%(ToolsZip.Identity)"
			Files="@(AllToolTargets)"
			WorkingDirectory="$(ToolsDirectory)"
			ToolPath="$(Zip7ToolPath)" />
	</Target>

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