-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPack.targets
122 lines (105 loc) · 5.84 KB
/
Pack.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
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<!--
By default '.xml' and '.manifest' files are excluded from bin.
To keep them add the following code in the project.pack.msbuildproj:
<Target Name="PackFilter">
<ItemGroup>
<ProdBinExclude Remove="$(PackSourceDir)**\*.xml" />
<ProdBinExclude Remove="$(PackSourceDir)**\*.manifest" />
</ItemGroup>
</Target>
-->
<Project DefaultTargets="PackBuild">
<PropertyGroup>
<ForwardOutDir Condition="'$(ForwardOutDir)' == ''">$(OutDir)</ForwardOutDir>
</PropertyGroup>
<Import Project="Import.targets" />
<Target Name="PackCreateDefault">
<Message Condition="'$(ZouDebug)' == 'true'" Importance="high" Text="### [$(MSBuildProjectFile)] PackCreateDefault($(OutDir))" />
<!-- Default includes and excludes -->
<ItemGroup>
<ProdBinInclude Include="$(PackSourceDir)**\*" />
<ProdBinExclude Include="$(PackSourceDir)**\*.pdb" />
<ProdBinExclude Include="$(PackSourceDir)**\*.map" Exclude="$(PackSourceDir)**\node_modules\**\*.map"/>
<ProdBinExclude Include="$(PackSourceDir)**\*.lib" />
<ProdBinExclude Include="$(PackSourceDir)**\*.exp" />
<ProdBinExclude Include="$(PackSourceDir)**\*.bsc" />
<ProdBinExclude Include="$(PackSourceDir)**\*.ilk" />
<ProdBinExclude Include="$(PackSourceDir)**\*.cod" />
<ProdBinExclude Include="$(PackSourceDir)**\*.xml" />
<ProdBinExclude Include="$(PackSourceDir)**\*.manifest" />
<ProdBinExclude Include="$(PackSourceDir)**\launchSettings.json" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Release'">
<!-- Exclude Visual Leak Detector in release mode -->
<ProdBinExclude Include="$(PackSourceDir)**\vld_x86.dll" />
<ProdBinExclude Include="$(PackSourceDir)**\vld.ini" />
</ItemGroup>
</Target>
<Target Name="PackCreate" DependsOnTargets="PackCreateDefault;PackFilter">
<Message Condition="'$(ZouDebug)' == 'true'" Importance="high" Text="### [$(MSBuildProjectFile)] PackCreate" />
<!-- Dispatch package content to respective folders -->
<ItemGroup>
<PackCopyFile Include="@(ProdBinInclude)" Exclude="@(ProdBinExclude)" Condition="!$(PkgBinDir.StartsWith('$(PackSourceDir)'))">
<ImportDir>$(PkgBinDir)</ImportDir>
</PackCopyFile>
<PackCopyFile Include="@(ProdBinExclude)" Condition="!$(PkgDbgDir.StartsWith('$(PackSourceDir)'))">
<ImportDir>$(PkgDbgDir)</ImportDir>
</PackCopyFile>
<PackDeleteFile Include="@(ProdBinExclude)" Condition="'$(PackSourceDir)' == '$(PkgBinDir)' And !$(PkgDbgDir.StartsWith('$(PackSourceDir)'))" />
</ItemGroup>
<ItemGroup>
<PackCopyFile>
<BundleRelativeSrcDir>$([MSBuild]::MakeRelative('$(BundleDir)', '%(RootDir)%(Directory)'))</BundleRelativeSrcDir>
<BundleRelativeDstDir>$([MSBuild]::MakeRelative('$(BundleDir)', '%(ImportDir)'))</BundleRelativeDstDir>
</PackCopyFile>
</ItemGroup>
<!--<LogItems Items="@(ProdBinExclude)" Title="PackCreate.ProdBinExclude" />
<Message Importance="high" Text=" " />-->
</Target>
<Target Name="PackDeleteAll" DependsOnTargets="PackCreate">
<Message Condition="'$(ZouDebug)' == 'true'" Importance="high" Text="### [$(MSBuildProjectFile)] PackDeleteAll(@(PackCopyFile->Count()))" />
<!-- Display deleted files by extension -->
<ItemGroup>
<_Message Include="$(T3)%(PackCopyFile.ImportDir)%(RecursiveDir)%2A%(Extension)" Condition="Exists('%(PackCopyFile.ImportDir)%(RecursiveDir)%(FileName)%(Extension)')" />
</ItemGroup>
<RemoveDuplicates Inputs="@(_Message)">
<Output TaskParameter="Filtered" ItemName="_Message"/>
</RemoveDuplicates>
<Message Condition="@(_Message->Count()) > 0" Importance="high" Text="$(L2m)[-] %(_Message.Identity)$(XC)" />
<ItemGroup>
<_Message Remove="@(_Message)" />
</ItemGroup>
<Delete Files="@(PackCopyFile->'%(ImportDir)%(RecursiveDir)%(FileName)%(Extension)')" />
</Target>
<Target Name="PackCopy" DependsOnTargets="PackCreate" Inputs="@(PackCopyFile)" Outputs="@(PackCopyFile->'%(ImportDir)%(RecursiveDir)%(FileName)%(Extension)')">
<Message Condition="'$(ZouDebug)' == 'true'" Importance="high" Text="### [$(MSBuildProjectFile)] PackCopy" />
<CallTarget Targets="_DeleteLastBuildState" Condition="'$(BuildingInsideVisualStudio)'=='true'" />
<Copy SourceFiles="@(PackCopyFile)" DestinationFiles="@(PackCopyFile->'%(ImportDir)%(RecursiveDir)%(FileName)%(Extension)')" />
<!-- Display file transfer by extension -->
<ItemGroup>
<_Message Include="@(PackCopyFile->'$(T3)%(BundleRelativeSrcDir)%2A%(Extension) -> %(BundleRelativeDstDir)%(RecursiveDir)%2A%(Extension)')" />
</ItemGroup>
<RemoveDuplicates Inputs="@(_Message)">
<Output TaskParameter="Filtered" ItemName="_Message"/>
</RemoveDuplicates>
<Message Importance="high" Text="$(L2p)[Pack] %(_Message.Identity)$(XC)" />
<ItemGroup>
<_Message Remove="@(_Message')" />
</ItemGroup>
</Target>
<Target Name="PackBuild" AfterTargets="Build" DependsOnTargets="ImportProject;PackCopy">
<Message Condition="'$(ZouDebug)' == 'true'" Importance="high" Text="### [$(MSBuildProjectFile)] PackBuild(RuntimePlatform=$(RuntimePlatform), PkgBinDir=$(PkgBinDir))" />
<Delete Files="@(PackDeleteFile)" />
<!-- Enable signing of Windows packaging folder if 'Sign' property is true -->
<ItemGroup Condition="Exists('$(PkgBinDir)')">
<PkgBinWinDir Include="$([System.IO.Directory]::GetDirectories('$(PkgBinDir)', 'win*'))" />
<PkgBinWinDir Condition="@(PkgBinWinDir->Count()) == 0" Include="$(PkgBinDir)" />
</ItemGroup>
<ItemGroup Condition="$(Sign)">
<SignFolder Include="@(PkgBinWinDir)" />
</ItemGroup>
</Target>
<Target Name="PackClean" BeforeTargets="Clean" DependsOnTargets="PackDeleteAll;ImportProjectClean">
<Message Condition="'$(ZouDebug)' == 'true'" Importance="high" Text="### [$(MSBuildProjectFile)] PackClean" />
</Target>
</Project>