mirror of
https://github.com/python/cpython
synced 2024-09-05 16:38:56 +00:00
96 lines
5.8 KiB
XML
96 lines
5.8 KiB
XML
<?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> |