-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathPackage.build.xml
More file actions
103 lines (91 loc) · 3.49 KB
/
Package.build.xml
File metadata and controls
103 lines (91 loc) · 3.49 KB
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
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Package">
<!--
****************************************
* IMPORTS
****************************************
-->
<PropertyGroup>
<MSBuildCommunityTasksPath>$(MSBuildProjectDirectory)\Packages\MSBuildCommunityTasks</MSBuildCommunityTasksPath>
<MSBuildNuGetTasksPath>$(MSBuildProjectDirectory)\Packages\MSBuildNuGetTasks</MSBuildNuGetTasksPath>
</PropertyGroup>
<Import Project="$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.Targets" />
<Import Project="$(MSBuildNuGetTasksPath)\MSBuild.NuGet.Tasks.Targets" />
<!--
****************************************
* PROPERTIES
****************************************
-->
<PropertyGroup>
<PackageVersion>1.0</PackageVersion>
<BuildConfig>Release</BuildConfig>
</PropertyGroup>
<PropertyGroup>
<RootDir>$(MSBuildProjectDirectory)</RootDir>
<BuildDir>$(RootDir)\Build</BuildDir>
<PackageDir>$(RootDir)\Package</PackageDir>
</PropertyGroup>
<!--
****************************************
* TARGETS
****************************************
-->
<!-- CLEAN -->
<Target Name="Clean">
<RemoveDir Directories="$(BuildDir)" Condition="Exists('$(BuildDir)')" />
<RemoveDir Directories="$(PackageDir)" Condition="Exists('$(PackageDir)')" />
<MakeDir Directories="$(BuildDir)" />
<MakeDir Directories="$(PackageDir)" />
</Target>
<!-- UPDATE ASSEMBLEY VERSION -->
<Target Name="UpdateAssemblyInfo" DependsOnTargets="Clean">
<ItemGroup>
<AssemblyInfoFiles Include="$(RootDir)\Src\LaunchKey\Properties\AssemblyInfo.cs" />
</ItemGroup>
<FileUpdate
Encoding="ASCII"
Files="@(AssemblyInfoFiles)"
Regex="AssemblyVersion\(".*"\)\]"
ReplacementText="AssemblyVersion("$(PackageVersion)")]" />
<FileUpdate
Encoding="ASCII"
Files="@(AssemblyInfoFiles)"
Regex="AssemblyFileVersion\(".*"\)\]"
ReplacementText="AssemblyFileVersion("$(PackageVersion)")]" />
</Target>
<!-- COMPILE -->
<Target Name="Compile" DependsOnTargets="UpdateAssemblyInfo">
<ItemGroup>
<ProjectFiles Include="$(RootDir)\Src\LaunchKey\LaunchKey.csproj" />
</ItemGroup>
<MSBuild Projects="@(ProjectFiles)" Properties="Configuration=$(BuildConfig);" />
</Target>
<!-- PREPAIRE FILES -->
<Target Name="PrepairFiles" DependsOnTargets="Compile">
<ItemGroup>
<LibFiles Include="$(RootDir)\Src\LaunchKey\Bin\$(BuildConfig)\LaunchKey.dll" />
<PackageFiles Include="$(RootDir)\Package.nuspec" />
</ItemGroup>
<Copy SourceFiles="@(LibFiles)" DestinationFolder="$(BuildDir)\lib\" />
<Copy SourceFiles="@(PackageFiles)" DestinationFolder="$(BuildDir)\%(RecursiveDir)" />
</Target>
<!-- MANIFEST -->
<Target Name="Manifest" DependsOnTargets="PrepairFiles">
<ItemGroup>
<ManifestFiles Include="$(BuildDir)\**\*" Exclude="$(BuildDir)\Package.nuspec" />
</ItemGroup>
<ManifestUpdate
ManifestFile="$(BuildDir)\Package.nuspec"
WorkingDirectory="$(BuildDir)"
Version="$(PackageVersion)"
Files="@(ManifestFiles)" />
</Target>
<!-- PACKAGE -->
<Target Name="Package" DependsOnTargets="Manifest">
<Pack NuGetExePath="$(RootDir)\Packages\NuGet\NuGet.exe"
ManifestFile="$(BuildDir)\Package.nuspec"
BasePath="$(BuildDir)"
OutputDirectory="$(PackageDir)"
Verbose="true" />
</Target>
</Project>