| <?xml version="1.0" encoding="utf-8"?> | |
| <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
| <Target Name="ProcessInstallFiles" | |
| AfterTargets="PrepareForBuild" | |
| DependsOnTargets="FindPythonForBuild" | |
| 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='$(PythonForBuild) 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)" || $(_SignCommand) "$(_CatFileTarget)" || $(_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)"',' ') || $(_SignCommand) @(SignCabs->'"%(FullPath)"',' ') || $(_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)"',' ') || $(_SignCommand) @(SignMsi->'"%(FullPath)"',' ') || $(_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)"',' ') || $(_SignCommand) @(SignBundleEngine->'"%(FullPath)"',' ') || $(_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)"',' ') || $(_SignCommand) @(SignBundle->'"%(FullPath)"',' ') || $(_SignCommand) @(SignBundle->'"%(FullPath)"',' ')" ContinueOnError="false" /> | |
| </Target> | |
| </Project> |