blob: b665f43811b7ddd255dc12717e7ca1f9e9d03de3 (
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
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
<!--
build.xml
This file is part of the HandBrake source code.
Homepage: <http://handbrake.fr>.
It may be used under the terms of the GNU General Public License
HandBrake Build Script for usage with Jenkins.
Usage:
msbuild build.xml /t:Nightly
msbuild build.xml /t:Release
Example with code signing:
msbuild build.xml /t:Release /p:SignThumbprint=XYZ /p:SignTimestampServer=http://time.certum.pl/
msbuild build.xml /t:Release /p:PfxFile=file.pfx /p:PfxPwd=XYZ /p:SignTimestampServer=http://time.certum.pl/
Requires: libhb.dll to be in the release folder.
-->
<Project DefaultTargets="Nightly" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Setup -->
<PropertyGroup>
<Platform>AnyCPU</Platform>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<!-- Build all the main cproj files.-->
<ItemGroup>
<ProjectsToBuild Include="HandBrake.Interop\*proj" Exclude="$(MSBuildProjectFile)"/>
<ProjectsToBuild Include="HandBrakeWPF\*proj" Exclude="$(MSBuildProjectFile)"/>
</ItemGroup>
<!-- Build the installer.-->
<ItemGroup>
<InstallerToBuild Include="HandBrake.Installer\*wixproj" Exclude="$(MSBuildProjectFile)"/>
</ItemGroup>
<!-- Builds /t: -->
<Target Name="Nightly" DependsOnTargets="$(NightlyDependsOn)"/>
<Target Name="Release" DependsOnTargets="$(InstallDependsOn)"/>
<!-- Dependencies -->
<PropertyGroup>
<NightlyDependsOn>SetupForNightly;BuildRelease;NightlyPostBuild;BuildInstaller;Cleanup;CodeSign</NightlyDependsOn>
<InstallDependsOn>SetupForRelease;BuildRelease;ReleasePostBuild;BuildInstaller;Cleanup;CodeSign</InstallDependsOn>
</PropertyGroup>
<!-- Setup -->
<Target Name="SetupForNightly">
<PropertyGroup>
<Configuration>Debug</Configuration>
</PropertyGroup>
</Target>
<Target Name="SetupForRelease">
<PropertyGroup>
<Configuration>Release</Configuration>
</PropertyGroup>
</Target>
<!-- Build All Components (WPF, Worker, Interop) -->
<Target Name="BuildRelease">
<Message Text="Project File Name = $(Platform)" />
<MSBuild Projects ="@(ProjectsToBuild)"
ContinueOnError ="false"
Properties="Configuration=$(Configuration);Platform=$(Platform)" >
<Output ItemName="OutputFiles" TaskParameter="TargetOutputs"/>
</MSBuild>
</Target>
<!-- Build the installers -->
<Target Name="BuildInstaller">
<!-- The installer doesn't support AnyCPU -->
<MSBuild Projects ="@(InstallerToBuild)"
ContinueOnError ="false"
Properties="Configuration=$(Configuration);Platform=x64" >
<Output ItemName="OutputFiles" TaskParameter="TargetOutputs"/>
</MSBuild>
<Exec Command="makensis $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration)\MakeNightly64.nsi" Condition="'$(Configuration)'=='Debug'" />
<Exec Command="makensis $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration)\Installer64.nsi" Condition="'$(Configuration)'=='Release'" />
</Target>
<!-- Post Build Events -->
<Target Name="NightlyPostBuild">
<Exec Command="copy $(MSBuildProjectDirectory)\HandBrakeWPF\Installer\MakeNightly64.nsi $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration) /Y" />
<Exec Command="copy $(MSBuildProjectDirectory)\HandBrakeWPF\Installer\InstallerBackground.bmp $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration) /Y" />
<Exec Command="copy $(MSBuildProjectDirectory)\HandBrakeWPF\handbrakepineapple.ico $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration) /Y" />
<Exec Command="copy $(MSBuildProjectDirectory)\HandBrake.Worker\bin\$(Configuration)\*.json $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration) /Y" />
<Exec Command="xcopy $(MSBuildProjectDirectory)\doc $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration)\doc /I /Y" />
</Target>
<Target Name="ReleasePostBuild">
<Exec Command="copy $(MSBuildProjectDirectory)\HandBrakeWPF\Installer\Installer64.nsi $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration) /Y" />
<Exec Command="copy $(MSBuildProjectDirectory)\HandBrakeWPF\Installer\InstallerBackground.bmp $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration) /Y" />
<Exec Command="copy $(MSBuildProjectDirectory)\HandBrakeWPF\handbrakepineapple.ico $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration) /Y" />
<Exec Command="copy $(MSBuildProjectDirectory)\HandBrake.Worker\bin\$(Configuration)\*.json $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration) /Y" />
<Exec Command="xcopy $(MSBuildProjectDirectory)\doc $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration)\doc /I /Y" />
</Target>
<Target Name="Cleanup">
<Exec Command="copy $(MSBuildProjectDirectory)\HandBrake.Installer\bin\$(Configuration)\HandBrake.msi $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration)\HandBrake-Nightly-x86_64-Win_GUI.msi /Y" Condition="'$(Configuration)'=='Debug'" />
<Exec Command="copy $(MSBuildProjectDirectory)\HandBrake.Installer\bin\x64\$(Configuration)\HandBrake.msi $(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration)\HandBrake-Version-x86_64-Win_GUI.msi /Y" Condition="'$(Configuration)'=='Release'" />
</Target>
<!-- Code Signing -->
<PropertyGroup Condition="'$(SignToolLocation)'==''">
<SignToolLocation>C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64\SignTool.exe</SignToolLocation>
</PropertyGroup>
<PropertyGroup Condition="'$(SignTimestampServer)'!=''">
<SignTimestamp Condition="'$(SignTimestampServer)'!=''" >/t</SignTimestamp>
</PropertyGroup>
<PropertyGroup Condition="'$(SignThumbprint)'!=''">
<SignType>/sha1</SignType>
<SignEnabled>true</SignEnabled>
</PropertyGroup>
<PropertyGroup Condition="'$(PfxFile)'!=''">
<SignType>/f</SignType>
<SignPwd Condition="'$(PfxPwd)'!=''">/p</SignPwd>
<SignEnabled>true</SignEnabled>
</PropertyGroup>
<Target Name="CodeSign" Condition="'$(SignEnabled)' == 'true'">
<Exec Command=""$(SignToolLocation)" sign $(SignType) $(SignThumbprint)$(PfxFile) $(SignPwd) $(PfxPwd) $(SignTimestamp) $(SignTimestampServer) /v "$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration)\*Win_GUI.exe"" />
<Exec Command=""$(SignToolLocation)" sign $(SignType) $(SignThumbprint)$(PfxFile) $(SignPwd) $(PfxPwd) $(SignTimestamp) $(SignTimestampServer) /v "$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Configuration)\*Win_GUI.msi"" />
</Target>
</Project>
|