-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.proj
104 lines (85 loc) · 3.89 KB
/
build.proj
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
95
96
97
98
99
100
101
102
103
104
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="BuildAll" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BuildTarget Condition="'$(BuildTarget)' == ''">Build</BuildTarget>
<BuildConfig Condition="'$(BuildConfig)' == ''">Release</BuildConfig>
</PropertyGroup>
<!-- Directories -->
<PropertyGroup>
<SolutionName>Alphacloud.MSBuild.Xslt</SolutionName>
</PropertyGroup>
<!-- calculated properties -->
<PropertyGroup>
<RootDir>$(MSBuildProjectDirectory)</RootDir>
<SrcDir>$(RootDir)\src</SrcDir>
<TestsDir>$(SrcDir}\tests</TestsDir>
<BuildToolsDir>$(SrcDir)\.build</BuildToolsDir>
<NuGetExe>$(BuildToolsDir)\NuGet.exe</NuGetExe>
<OutputDir>$(RootDir)\out</OutputDir>
<PackagesOutDir>$(OutputDir)\packages</PackagesOutDir>
<PackagesSrcDir>$(OutputDir)\nuget</PackagesSrcDir>
<MainSolution>$(SrcDir)\$(SolutionName).sln</MainSolution>
</PropertyGroup>
<!-- imports -->
<PropertyGroup>
<MSBuildCommunityTasksPath>$(BuildToolsDir)</MSBuildCommunityTasksPath>
</PropertyGroup>
<Import Project="$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.targets" />
<Import Project="$(RootDir)\PackageDefinitions.xml" />
<Target Name="RestorePackages">
<Exec WorkingDirectory="$(SrcDir)"
Command="$(NuGetExe) restore $(SolutionName).sln" />
</Target>
<Target Name="CleanAll">
<Message Text="Performing full clean-up..." />
<MSBuild Projects="$(MainSolution)" Properties="Configuration=Debug" Targets="Clean" BuildInParallel="true" />
<MSBuild Projects="$(MainSolution)" Properties="Configuration=Release" Targets="Clean" BuildInParallel="true" />
<DeleteTree Directories="$(SrcDir)\**\bin\**;$(SrcDir)\**\obj\**;$(OutputDir);$(RootDir)\packages\**" />
</Target>
<Target Name="CreateFolders">
<MakeDir Directories="$(PackagesOutDir);$(PackagesSrcDir)" />
</Target>
<Target Name="Pack">
<RemoveDir Directories="$(PackagesSrcDir);$(PackagesOutDir)" ContinueOnError="true" />
<MakeDir Directories="$(PackagesSrcDir);$(PackagesOutDir)" ContinueOnError="true" />
<Copy
SourceFiles="%(PackageDefinition.RootFolder)\%(PackageDefinition.NuspecFile)"
DestinationFiles="$(PackagesSrcDir)\%(PackageDefinition.Identity)\%(PackageDefinition.NuspecFile)"
UseHardlinksIfPossible="false" OverwriteReadOnlyFiles="true" Retries="5"
/>
<ItemGroup>
<PackageFiles Include="$(SrcDir)\solution\bin\Release\**\*.*"
Exclude="
$(SrcDir)\solution\bin\Release\**\*.xml;
$(SrcDir)\solution\bin\Release\**\Jetbrains*.*;
$(SrcDir)\solution\bin\Release\**\Microsoft*.*;
$(SrcDir)\solution\bin\Release\**\System*.*;
"
>
<NuspecDir>%(PackageDefinition.Identity)\tools\</NuspecDir>
</PackageFiles>
<PackageFiles Include="$(SrcDir)\solution\bin\Release\**\Alphacloud*.pdb">
</PackageFiles>
</ItemGroup>
<!-- set dependency version in NuSpec files -->
<ItemGroup>
<NuSpecFiles Include="$(PackagesSrcDir)\**\*.nuspec">
</NuSpecFiles>
</ItemGroup>
<Copy
SourceFiles="@(PackageFiles)"
DestinationFolder="$(PackagesSrcDir)\%(PackageFiles.NuspecDir)\"
UseHardlinksIfPossible="true" OverwriteReadOnlyFiles="true" Retries="5"
/>
<Copy
SourceFiles="$(RootDir)\LICENSE"
DestinationFiles="$(SrcDir)\solution\LICENSE.txt"
UseHardlinksIfPossible="true" OverwriteReadOnlyFiles="true" Retries="5"
/>
<NuGetPack File="$(PackagesSrcDir)\%(PackageDefinition.Identity)\%(PackageDefinition.NuspecFile)" OutputDirectory="$(PackagesOutDir)" Version="$(PackageVersion)" />
</Target>
<Target Name="BuildAll">
<MSBuild Projects="$(MainSolution)" Properties="Configuration=$(BuildConfig);CreateHardLinksForCopyLocalIfPossible=true" Targets="$(BuildTarget)"
BuildInParallel="true" />
</Target>
</Project>