<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="ProcessInstallFiles" AfterTargets="PrepareForBuild" Condition="@(InstallFiles) != ''"> <PropertyGroup> <_FileListTarget>$(IntermediateOutputPath)$(MSBuildProjectName).g.csv</_FileListTarget> <_InstallFilesTarget>$(IntermediateOutputPath)$(MSBuildProjectName).g.wxs</_InstallFilesTarget> </PropertyGroup> <ItemGroup> <InstallFiles> <_Source>%(Source)$([msbuild]::MakeRelative(%(SourceBase), %(FullPath)))</_Source> <_Target>%(Target_)$([msbuild]::MakeRelative(%(TargetBase), %(FullPath)))</_Target> </InstallFiles> <_CatalogFiles Include="@(InstallFiles)" Condition="%(InstallFiles.IncludeInCat) and ''!=$([System.IO.File]::ReadAllText(%(InstallFiles.FullPath)))" /> </ItemGroup> <WriteLinesToFile File="$(_FileListTarget)" Lines="@(InstallFiles->'"%(_Source)","%(_Target)","%(Group)","%(DiskId)","%(Condition)"')" Overwrite="true" /> <Exec Command='"$(PythonExe)" csv_to_wxs.py "$(_FileListTarget)" "$(_InstallFilesTarget)"' WorkingDirectory="$(MSBuildThisFileDirectory)" /> <ItemGroup> <FileWrites Include="$(_FileListTarget);$(_InstallFilesTarget)" /> <Compile Include="$(_InstallFilesTarget)" /> </ItemGroup> </Target> <Target Name="GenerateCatalog" AfterTargets="ProcessInstallFiles" Condition="'@(_CatalogFiles)' != ''"> <PropertyGroup> <_CatFileSourceTarget>$(IntermediateOutputPath)$(MSBuildProjectName).cdf</_CatFileSourceTarget> <_CatFileTarget>$(IntermediateOutputPath)python_$(MSBuildProjectName).cat</_CatFileTarget> <_CatFile>[CatalogHeader] Name=$([System.IO.Path]::GetFileName($(_CatFileTarget))) ResultDir=$([System.IO.Path]::GetDirectoryName($(_CatFileTarget))) PublicVersion=1 CatalogVersion=2 HashAlgorithms=SHA256 PageHashes=false EncodingType= [CatalogFiles] @(_CatalogFiles->'<HASH>%(Filename)%(Extension)=%(FullPath)',' ') </_CatFile> </PropertyGroup> <WriteLinesToFile File="$(_CatFileSourceTarget)" Lines="$(_CatFile)" Overwrite="true" /> <Exec Command='$(_MakeCatCommand) "$(_CatFileSourceTarget)"' WorkingDirectory="$(MSBuildThisFileDirectory)" /> <Exec Command='$(_SignCommand) "$(_CatFileTarget)"' WorkingDirectory="$(MSBuildThisFileDirectory)" Condition="Exists($(_CatFileTarget)) and '$(_SignCommand)' != ''" /> <ItemGroup> <FileWrites Include="$(_CatFileSourceTarget);$(_CatFileTarget)" /> </ItemGroup> </Target> <Target Name="_TransformWxlTemplates" AfterTargets="PrepareForBuild" Inputs="@(WxlTemplate);$(PySourcePath)include\patchlevel.h" Outputs="$(IntermediateOutputPath)%(Filename).wxl"> <PropertyGroup Condition="'@(WxlTemplate)' != ''"> <_Content>$([System.IO.File]::ReadAllText(%(WxlTemplate.FullPath)).Replace(`{{ShortVersion}}`, `$(MajorVersionNumber).$(MinorVersionNumber)$(PyTestExt)`).Replace(`{{LongVersion}}`, `$(PythonVersion)$(PyTestExt)`).Replace(`{{Bitness}}`, `$(Bitness)`))</_Content> <_ExistingContent Condition="Exists('$(IntermediateOutputPath)%(WxlTemplate.Filename).wxl')">$([System.IO.File]::ReadAllText($(IntermediateOutputPath)%(WxlTemplate.Filename).wxl))</_ExistingContent> </PropertyGroup> <WriteLinesToFile File="$(IntermediateOutputPath)%(WxlTemplate.Filename).wxl" Lines="$(_Content)" Overwrite="true" Condition="$(_Content) != $(_ExistingContent)" /> <ItemGroup Condition="'@(WxlTemplate)' != ''"> <EmbeddedResource Include="$(IntermediateOutputPath)%(WxlTemplate.Filename).wxl" /> <FileWrites Include="$(IntermediateOutputPath)%(WxlTemplate.Filename).wxl" /> </ItemGroup> </Target> <Import Project="$(WixTargetsPath)" /> <Target Name="SignCabs"> <Error Text="Unable to locate signtool.exe. Set /p:SignToolPath and rebuild" Condition="'$(_SignCommand)' == ''" /> <Exec Command="$(_SignCommand) @(SignCabs->'"%(FullPath)"',' ')" ContinueOnError="false" /> </Target> <Target Name="SignMsi"> <Error Text="Unable to locate signtool.exe. Set /p:SignToolPath and rebuild" Condition="'$(_SignCommand)' == ''" /> <Exec Command="$(_SignCommand) @(SignMsi->'"%(FullPath)"',' ')" ContinueOnError="false" /> </Target> <Target Name="SignBundleEngine"> <Error Text="Unable to locate signtool.exe. Set /p:SignToolPath and rebuild" Condition="'$(_SignCommand)' == ''" /> <Exec Command="$(_SignCommand) @(SignBundleEngine->'"%(FullPath)"',' ')" ContinueOnError="false" /> </Target> <Target Name="SignBundle"> <Error Text="Unable to locate signtool.exe. Set /p:SignToolPath and rebuild" Condition="'$(_SignCommand)' == ''" /> <Exec Command="$(_SignCommand) @(SignBundle->'"%(FullPath)"',' ')" ContinueOnError="false" /> </Target> </Project>