blob: 9283a1ed6c3049ea5f5f293cfded89ef9104d4ae [file] [log] [blame]
Steve Dowerbb240872015-02-05 22:08:48 -08001<?xml version="1.0" encoding="utf-8"?>
2<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
4 <Target Name="ProcessInstallFiles" AfterTargets="PrepareForBuild" Condition="@(InstallFiles) != ''">
5 <PropertyGroup>
6 <_FileListTarget>$(IntermediateOutputPath)$(MSBuildProjectName).g.csv</_FileListTarget>
7 <_InstallFilesTarget>$(IntermediateOutputPath)$(MSBuildProjectName).g.wxs</_InstallFilesTarget>
8 </PropertyGroup>
9
10 <ItemGroup>
11 <InstallFiles>
12 <_Source>%(Source)$([msbuild]::MakeRelative(%(SourceBase), %(FullPath)))</_Source>
13 <_Target>%(Target_)$([msbuild]::MakeRelative(%(TargetBase), %(FullPath)))</_Target>
14 </InstallFiles>
Steve Dower425ec152016-10-09 20:18:52 -070015
16 <_CatalogFiles Include="@(InstallFiles)" Condition="%(InstallFiles.IncludeInCat) and ''!=$([System.IO.File]::ReadAllText(%(InstallFiles.FullPath)))" />
Steve Dowerbb240872015-02-05 22:08:48 -080017 </ItemGroup>
Steve Dower425ec152016-10-09 20:18:52 -070018
Steve Dowerbb240872015-02-05 22:08:48 -080019 <WriteLinesToFile File="$(_FileListTarget)" Lines="@(InstallFiles->'&quot;%(_Source)&quot;,&quot;%(_Target)&quot;,&quot;%(Group)&quot;,&quot;%(DiskId)&quot;,&quot;%(Condition)&quot;')" Overwrite="true" />
20 <Exec Command='"$(PythonExe)" csv_to_wxs.py "$(_FileListTarget)" "$(_InstallFilesTarget)"'
21 WorkingDirectory="$(MSBuildThisFileDirectory)" />
22
23 <ItemGroup>
24 <FileWrites Include="$(_FileListTarget);$(_InstallFilesTarget)" />
25 <Compile Include="$(_InstallFilesTarget)" />
26 </ItemGroup>
27 </Target>
28
Steve Dower425ec152016-10-09 20:18:52 -070029 <Target Name="GenerateCatalog" AfterTargets="ProcessInstallFiles" Condition="'@(_CatalogFiles)' != ''">
30 <PropertyGroup>
31 <_CatFileSourceTarget>$(IntermediateOutputPath)$(MSBuildProjectName).cdf</_CatFileSourceTarget>
32 <_CatFileTarget>$(IntermediateOutputPath)python_$(MSBuildProjectName).cat</_CatFileTarget>
33 <_CatFile>[CatalogHeader]
34Name=$([System.IO.Path]::GetFileName($(_CatFileTarget)))
35ResultDir=$([System.IO.Path]::GetDirectoryName($(_CatFileTarget)))
36PublicVersion=1
37CatalogVersion=2
38HashAlgorithms=SHA256
39PageHashes=false
40EncodingType=
41
42[CatalogFiles]
43@(_CatalogFiles->'&lt;HASH&gt;%(Filename)%(Extension)=%(FullPath)','
44')
45</_CatFile>
46 </PropertyGroup>
47
48 <WriteLinesToFile File="$(_CatFileSourceTarget)" Lines="$(_CatFile)" Overwrite="true" />
49 <Exec Command='$(_MakeCatCommand) "$(_CatFileSourceTarget)"' WorkingDirectory="$(MSBuildThisFileDirectory)" />
50 <Exec Command='$(_SignCommand) "$(_CatFileTarget)"' WorkingDirectory="$(MSBuildThisFileDirectory)"
51 Condition="Exists($(_CatFileTarget)) and '$(_SignCommand)' != ''" />
52
53 <ItemGroup>
54 <FileWrites Include="$(_CatFileSourceTarget);$(_CatFileTarget)" />
55 </ItemGroup>
56 </Target>
57
Steve Dowerd4233962015-07-05 07:24:17 -070058 <Target Name="_TransformWxlTemplates" AfterTargets="PrepareForBuild" Inputs="@(WxlTemplate);$(PySourcePath)include\patchlevel.h" Outputs="$(IntermediateOutputPath)%(Filename).wxl">
Steve Dower49621412016-05-18 15:54:05 -070059 <PropertyGroup Condition="'@(WxlTemplate)' != ''">
Steve Dower940f6a82015-10-31 12:17:11 -070060 <_Content>$([System.IO.File]::ReadAllText(%(WxlTemplate.FullPath)).Replace(`{{ShortVersion}}`, `$(MajorVersionNumber).$(MinorVersionNumber)$(PyTestExt)`).Replace(`{{LongVersion}}`, `$(PythonVersion)$(PyTestExt)`).Replace(`{{Bitness}}`, `$(Bitness)`))</_Content>
Steve Dowerbb240872015-02-05 22:08:48 -080061 <_ExistingContent Condition="Exists('$(IntermediateOutputPath)%(WxlTemplate.Filename).wxl')">$([System.IO.File]::ReadAllText($(IntermediateOutputPath)%(WxlTemplate.Filename).wxl))</_ExistingContent>
62 </PropertyGroup>
63
64 <WriteLinesToFile File="$(IntermediateOutputPath)%(WxlTemplate.Filename).wxl"
65 Lines="$(_Content)"
66 Overwrite="true"
67 Condition="$(_Content) != $(_ExistingContent)" />
68
Steve Dower49621412016-05-18 15:54:05 -070069 <ItemGroup Condition="'@(WxlTemplate)' != ''">
Steve Dowerbb240872015-02-05 22:08:48 -080070 <EmbeddedResource Include="$(IntermediateOutputPath)%(WxlTemplate.Filename).wxl" />
71 <FileWrites Include="$(IntermediateOutputPath)%(WxlTemplate.Filename).wxl" />
72 </ItemGroup>
73 </Target>
74
75 <Import Project="$(WixTargetsPath)" />
76
77 <Target Name="SignCabs">
78 <Error Text="Unable to locate signtool.exe. Set /p:SignToolPath and rebuild" Condition="'$(_SignCommand)' == ''" />
79 <Exec Command="$(_SignCommand) @(SignCabs->'&quot;%(FullPath)&quot;',' ')" ContinueOnError="false" />
80 </Target>
81 <Target Name="SignMsi">
82 <Error Text="Unable to locate signtool.exe. Set /p:SignToolPath and rebuild" Condition="'$(_SignCommand)' == ''" />
83 <Exec Command="$(_SignCommand) @(SignMsi->'&quot;%(FullPath)&quot;',' ')" ContinueOnError="false" />
84 </Target>
85 <Target Name="SignBundleEngine">
86 <Error Text="Unable to locate signtool.exe. Set /p:SignToolPath and rebuild" Condition="'$(_SignCommand)' == ''" />
87 <Exec Command="$(_SignCommand) @(SignBundleEngine->'&quot;%(FullPath)&quot;',' ')" ContinueOnError="false" />
88 </Target>
89 <Target Name="SignBundle">
90 <Error Text="Unable to locate signtool.exe. Set /p:SignToolPath and rebuild" Condition="'$(_SignCommand)' == ''" />
91 <Exec Command="$(_SignCommand) @(SignBundle->'&quot;%(FullPath)&quot;',' ')" ContinueOnError="false" />
92 </Target>
93</Project>