-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDirectory.Build.targets
69 lines (61 loc) · 3.66 KB
/
Directory.Build.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
<Project>
<PropertyGroup>
<CustomModuleOutputFileName Condition="'$(CustomModuleOutputFileName)'==''">$(MSBuildProjectName).cab</CustomModuleOutputFileName>
<CustomModuleOutputFilePath Condition="'$(CustomModuleOutputFilePath)'==''">$(OutputPath)\$(CustomModuleOutputFileName)</CustomModuleOutputFilePath>
<SignScriptRelativeFilePath Condition="'$(SignScriptRelativeFilePath)'==''">..\..\.tools\sign.ps1</SignScriptRelativeFilePath>
<MakeCabScriptRelativeFilePath Condition="'$(MakeCabScriptRelativeFilePath)'==''">..\..\.tools\makecab.ps1</MakeCabScriptRelativeFilePath>
</PropertyGroup>
<!-- ========== Get absolute output paths for Pack ========== -->
<Target Name="_GetAbsoluteOutputPathsForCustomModulePack">
<ConvertToAbsolutePath Paths="$(CustomModuleOutputFilePath)">
<Output TaskParameter="AbsolutePaths" PropertyName="CustomModuleOutputAbsoluteFilePath" />
</ConvertToAbsolutePath>
<ConvertToAbsolutePath Paths="$(OutputPath)">
<Output TaskParameter="AbsolutePaths" PropertyName="OutputAbsolutePath" />
</ConvertToAbsolutePath>
<ConvertToAbsolutePath Paths="$(SignScriptRelativeFilePath)">
<Output TaskParameter="AbsolutePaths" PropertyName="SignScriptAbsoluteFilePath" />
</ConvertToAbsolutePath>
<ConvertToAbsolutePath Paths="$(SignScriptRelativeFilePath)">
<Output TaskParameter="AbsolutePaths" PropertyName="SignScriptAbsoluteFilePath" />
</ConvertToAbsolutePath>
</Target>
<!-- ========== Get the output '.cab' absolute file paths ========== -->
<Target Name="_GetOutputItemsFromCustomModulePack"
DependsOnTargets="_GetAbsoluteOutputPathsForCustomModulePack"
Returns="@(_OutputCustomModulePackItems)">
<PropertyGroup>
<_OutputCustomModulePackItems>$(CustomModuleOutputAbsoluteFilePath)</_OutputCustomModulePackItems>
</PropertyGroup>
</Target>
<!-- ========== Post event targets ========== -->
<Target Name="_CleanCustomModuleFiles"
DependsOnTargets="_GetOutputItemsFromCustomModulePack"
AfterTargets="Clean">
<ItemGroup>
<_CustomModuleFilesToDelete Include="$(_OutputCustomModulePackItems)" />
</ItemGroup>
<Delete Files="@(_CustomModuleFilesToDelete)" />
</Target>
<!-- ========== Sign build output ========== -->
<Target Name="SignCustomModuleBuildOutput"
AfterTargets="Build"
DependsOnTargets="$(SignCustomModuleBuildOutputDependsOn);_GetOutputItemsFromCustomModulePack"
Condition=" '$(PackCustomModule)' == 'true' ">
<Exec Command="powershell -ExecutionPolicy Bypass -File $(SignScriptAbsoluteFilePath) -Filter **\*.dll" />
</Target>
<!-- ========== Pack ========== -->
<Target Name="PackCustomModule"
AfterTargets="SignCustomModuleBuildOutput"
DependsOnTargets="$(PackCustomModuleDependsOn);SignCustomModuleBuildOutput"
Condition=" '$(PackCustomModule)' == 'true' ">
<Exec Command="powershell -ExecutionPolicy Bypass -File $(MakeCabScriptRelativeFilePath) -SourceDirectory $(OutputAbsolutePath) -OutputDirectory $(OutputAbsolutePath) -OutputFileName $(CustomModuleOutputFileName)" />
</Target>
<!-- ========== Sign package ========== -->
<Target Name="SignCustomModulePackage"
AfterTargets="PackCustomModule"
DependsOnTargets="$(SignCustomModulePackageDependsOn);PackCustomModule"
Condition=" '$(PackCustomModule)' == 'true' ">
<Exec Command="powershell -ExecutionPolicy Bypass -File $(SignScriptAbsoluteFilePath) -Filter **\*.cab" />
</Target>
</Project>