2015-02-06 07:08:48 +01:00
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" TreatAsLocalProperty="ReleaseUri">
|
|
|
|
<PropertyGroup>
|
2015-03-01 04:53:50 +01:00
|
|
|
<TargetName>$(OutputName)</TargetName>
|
2015-02-06 07:08:48 +01:00
|
|
|
<DefineSolutionProperties>false</DefineSolutionProperties>
|
|
|
|
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
|
|
|
<SuppressIces>$(SuppressIces);ICE03;ICE57;ICE61</SuppressIces>
|
|
|
|
<CompilerSuppressSpecificWarnings>1026</CompilerSuppressSpecificWarnings>
|
|
|
|
<BuildForRelease Condition="'$(BuildForRelease)' == ''">false</BuildForRelease>
|
|
|
|
<SignOutput Condition="'$(SigningCertificate)' != ''">true</SignOutput>
|
|
|
|
<Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
|
|
|
|
<Platform Condition="'$(Platform)' == ''">x86</Platform>
|
|
|
|
<InstallScope Condition="'$(InstallScope)' != 'perMachine'">perUser</InstallScope>
|
2015-10-02 00:18:53 +02:00
|
|
|
</PropertyGroup>
|
|
|
|
|
|
|
|
<Import Project="wix.props" />
|
|
|
|
<Import Project="..\..\PCBuild\tcltk.props" />
|
|
|
|
|
|
|
|
<PropertyGroup>
|
2015-02-06 07:08:48 +01:00
|
|
|
<!--
|
|
|
|
This URI is used to generate the various GUIDs used by the installer.
|
|
|
|
Installers built with the same URI will upgrade each other or block
|
|
|
|
when attempting to downgrade.
|
|
|
|
|
|
|
|
By default, this is the local computer name, which will produce
|
|
|
|
installers that do not interfere with other installers. Products
|
|
|
|
that intend to bundle Python should rebuild these modules with their
|
|
|
|
own URI to avoid conflicting with the official releases.
|
|
|
|
|
2015-10-02 00:18:53 +02:00
|
|
|
The official releases use "http://www.python.org/$(ArchName)"
|
2015-02-06 07:08:48 +01:00
|
|
|
|
|
|
|
This is not the same as the DownloadUrl property used in the bundle
|
|
|
|
projects.
|
|
|
|
-->
|
2015-10-02 00:18:53 +02:00
|
|
|
<ReleaseUri Condition="'$(ReleaseUri)' == ''">$(ComputerName)/$(ArchName)/</ReleaseUri>
|
2015-02-06 07:08:48 +01:00
|
|
|
<ReleaseUri Condition="!$(ReleaseUri.EndsWith(`/`))">$(ReleaseUri)/</ReleaseUri>
|
|
|
|
</PropertyGroup>
|
|
|
|
|
|
|
|
|
|
|
|
<ItemGroup>
|
|
|
|
<Compile Include="$(MSBuildThisFileDirectory)common.wxs" />
|
2016-05-19 00:54:05 +02:00
|
|
|
<WxlTemplate Include="$(MSBuildThisFileDirectory)\*.wxl_template" Condition="$(IgnoreCommonWxlTemplates) != 'true'" />
|
2015-02-06 07:08:48 +01:00
|
|
|
<WixExtension Include="WixUtilExtension">
|
|
|
|
<HintPath>WixUtilExtension</HintPath>
|
|
|
|
<Name>WixUtilExtension</Name>
|
|
|
|
</WixExtension>
|
|
|
|
</ItemGroup>
|
|
|
|
|
|
|
|
<PropertyGroup>
|
2016-07-17 01:13:19 +02:00
|
|
|
<IntermediateOutputPath>$(Py_IntDir)\$(Configuration)_$(Platform)_Setup\$(OutputName)</IntermediateOutputPath>
|
2015-02-06 07:08:48 +01:00
|
|
|
<IntermediateOutputPath Condition="'$(OutputSuffix)' != ''">$(IntermediateOutputPath)_$(OutputSuffix)</IntermediateOutputPath>
|
|
|
|
<OutputPath Condition="'$(OutputPath)' == ''">$(BuildPath)</OutputPath>
|
|
|
|
<OutputPath Condition="!HasTrailingSlash($(OutputPath))">$(OutputPath)\</OutputPath>
|
|
|
|
<OutDir>$(OutputPath)</OutDir>
|
|
|
|
<ReuseCabinetCache>true</ReuseCabinetCache>
|
2015-10-23 18:50:49 +02:00
|
|
|
<CRTRedist Condition="'$(CRTRedist)' == ''">$(ExternalsDir)\windows-installer\redist</CRTRedist>
|
2015-03-25 05:25:16 +01:00
|
|
|
<CRTRedist Condition="!Exists($(CRTRedist))"></CRTRedist>
|
|
|
|
<DocFilename>python$(MajorVersionNumber)$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm</DocFilename>
|
2015-02-06 07:08:48 +01:00
|
|
|
|
2015-07-09 07:43:48 +02:00
|
|
|
<InstallerVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(Field3Value).0</InstallerVersion>
|
|
|
|
</PropertyGroup>
|
|
|
|
|
|
|
|
<PropertyGroup Condition="!$(BuildForRelease)">
|
|
|
|
<RevisionNumber Condition="'$(RevisionNumber)' == ''">$([System.Math]::Floor($([System.DateTime]::Now.Subtract($([System.DateTime]::new(2001, 1, 1))).TotalDays)))</RevisionNumber>
|
|
|
|
<PythonVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)dev$(RevisionNumber)</PythonVersion>
|
|
|
|
<InstallerVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(RevisionNumber).0</InstallerVersion>
|
2015-02-06 07:08:48 +01:00
|
|
|
</PropertyGroup>
|
|
|
|
|
|
|
|
<PropertyGroup>
|
|
|
|
<Bitness>32-bit</Bitness>
|
|
|
|
<Bitness Condition="$(Platform) == 'x64'">64-bit</Bitness>
|
2016-07-25 03:04:29 +02:00
|
|
|
<PlatformArchitecture>32bit</PlatformArchitecture>
|
|
|
|
<PlatformArchitecture Condition="$(Platform) == 'x64'">64bit</PlatformArchitecture>
|
2015-02-06 07:08:48 +01:00
|
|
|
<DefineConstants>
|
|
|
|
$(DefineConstants);
|
2015-07-09 07:43:48 +02:00
|
|
|
Version=$(InstallerVersion);
|
2015-02-06 07:08:48 +01:00
|
|
|
ShortVersion=$(MajorVersionNumber).$(MinorVersionNumber);
|
|
|
|
LongVersion=$(PythonVersion);
|
|
|
|
MajorVersionNumber=$(MajorVersionNumber);
|
|
|
|
MinorVersionNumber=$(MinorVersionNumber);
|
|
|
|
UpgradeMinimumVersion=$(MajorVersionNumber).$(MinorVersionNumber).0.0;
|
|
|
|
NextMajorVersionNumber=$(MajorVersionNumber).$([msbuild]::Add($(MinorVersionNumber), 1)).0.0;
|
2015-03-25 05:25:16 +01:00
|
|
|
Bitness=$(Bitness);
|
2016-07-25 03:04:29 +02:00
|
|
|
PlatformArchitecture=$(PlatformArchitecture);
|
2015-02-06 07:08:48 +01:00
|
|
|
PyDebugExt=$(PyDebugExt);
|
2015-10-31 20:17:11 +01:00
|
|
|
PyArchExt=$(PyArchExt);
|
|
|
|
PyTestExt=$(PyTestExt);
|
2015-07-09 05:18:44 +02:00
|
|
|
OptionalFeatureName=$(OutputName);
|
2015-02-06 07:08:48 +01:00
|
|
|
</DefineConstants>
|
|
|
|
<DefineConstants Condition="'$(CRTRedist)' != ''">
|
|
|
|
$(DefineConstants);CRTRedist=$(CRTRedist);
|
|
|
|
</DefineConstants>
|
|
|
|
<DefineConstants Condition="$(Platform) != 'x64'">
|
|
|
|
$(DefineConstants);Suffix32=-32;
|
|
|
|
</DefineConstants>
|
|
|
|
<DefineConstants Condition="$(Platform) == 'x64'">
|
|
|
|
$(DefineConstants);Suffix32=;
|
|
|
|
</DefineConstants>
|
|
|
|
</PropertyGroup>
|
|
|
|
|
|
|
|
<ItemDefinitionGroup>
|
|
|
|
<InstallFiles>
|
|
|
|
<Group>generated_filelist</Group>
|
|
|
|
<Condition></Condition>
|
|
|
|
<DiskId></DiskId>
|
|
|
|
</InstallFiles>
|
|
|
|
<LinkerBindInputPaths>
|
|
|
|
<Visible>false</Visible>
|
|
|
|
</LinkerBindInputPaths>
|
|
|
|
</ItemDefinitionGroup>
|
|
|
|
<ItemGroup>
|
2015-10-14 19:40:09 +02:00
|
|
|
<LinkerBindInputPaths Include="$(PGOBuildPath);$(BuildPath)">
|
|
|
|
<BindName></BindName>
|
|
|
|
</LinkerBindInputPaths>
|
|
|
|
<LinkerBindInputPaths Include="$(PySourcePath)Doc\build\htmlhelp">
|
2015-02-06 07:08:48 +01:00
|
|
|
<BindName></BindName>
|
|
|
|
</LinkerBindInputPaths>
|
|
|
|
<LinkerBindInputPaths Include="$(PySourcePath)">
|
|
|
|
<BindName>src</BindName>
|
|
|
|
</LinkerBindInputPaths>
|
|
|
|
<LinkerBindInputPaths Include="$(tcltkDir)">
|
|
|
|
<BindName>tcltk</BindName>
|
|
|
|
</LinkerBindInputPaths>
|
|
|
|
<LinkerBindInputPaths Include="$(CRTRedist)" Condition="'$(CRTRedist)' != ''">
|
2015-03-01 04:53:50 +01:00
|
|
|
<BindName>redist</BindName>
|
|
|
|
</LinkerBindInputPaths>
|
2015-09-09 06:39:01 +02:00
|
|
|
<LinkerBindInputPaths Include="$(VS140COMNTOOLS)\..\..\VC\redist\$(Platform)\Microsoft.VC140.CRT">
|
|
|
|
<BindName>redist</BindName>
|
|
|
|
</LinkerBindInputPaths>
|
2016-07-17 01:13:19 +02:00
|
|
|
<LinkerBindInputPaths Include="$(BuildPath32)">
|
|
|
|
<BindName>build32</BindName>
|
|
|
|
</LinkerBindInputPaths>
|
|
|
|
<LinkerBindInputPaths Include="$(BuildPath64)">
|
|
|
|
<BindName>build64</BindName>
|
|
|
|
</LinkerBindInputPaths>
|
2015-02-06 07:08:48 +01:00
|
|
|
</ItemGroup>
|
|
|
|
|
|
|
|
<Target Name="_ValidateMsiProps" BeforeTargets="PrepareForBuild">
|
|
|
|
<Error Text="Platform '$(Platform)' is not supported. Use 'x86' or 'x64'." Condition="$(Platform) != 'x86' and $(Platform) != 'x64'" />
|
|
|
|
</Target>
|
|
|
|
|
|
|
|
<ItemGroup>
|
|
|
|
<_Uuid Include="CoreUpgradeCode">
|
|
|
|
<Uri>upgradecode</Uri>
|
|
|
|
</_Uuid>
|
|
|
|
<_Uuid Include="UpgradeCode">
|
|
|
|
<Uri>upgradecode/$(OutputName)</Uri>
|
|
|
|
</_Uuid>
|
|
|
|
<_Uuid Include="InstallDirectoryGuidSeed">
|
|
|
|
<Uri>installdirectoryseed</Uri>
|
|
|
|
</_Uuid>
|
|
|
|
<_Uuid Include="PythonExeComponentGuid">
|
|
|
|
<Uri>python.exe</Uri>
|
|
|
|
</_Uuid>
|
|
|
|
<_Uuid Include="PythonwExeComponentGuid">
|
|
|
|
<Uri>pythonw.exe</Uri>
|
|
|
|
</_Uuid>
|
|
|
|
<_Uuid Include="RemoveLib2to3PickleComponentGuid">
|
|
|
|
<Uri>lib2to3/pickles</Uri>
|
|
|
|
</_Uuid>
|
2016-07-25 03:04:29 +02:00
|
|
|
<_Uuid Include="CommonPythonRegComponentGuid">
|
|
|
|
<Uri>registry</Uri>
|
|
|
|
</_Uuid>
|
|
|
|
<_Uuid Include="PythonRegComponentGuid">
|
|
|
|
<Uri>registry/$(OutputName)</Uri>
|
|
|
|
</_Uuid>
|
2015-02-06 07:08:48 +01:00
|
|
|
</ItemGroup>
|
2016-05-19 00:54:05 +02:00
|
|
|
<Target Name="_GenerateGuids" AfterTargets="PrepareForBuild" Condition="$(TargetName) != 'launcher'">
|
2015-02-06 07:08:48 +01:00
|
|
|
<PropertyGroup>
|
2015-03-08 23:29:39 +01:00
|
|
|
<_Uuids>@(_Uuid->'("%(Identity)", "$(MajorVersionNumber).$(MinorVersionNumber)/%(Uri)")',',')</_Uuids>
|
2015-10-02 00:18:53 +02:00
|
|
|
<_GenerateCommand>import uuid; print('\n'.join('{}={}'.format(i, uuid.uuid5(uuid.UUID('c8d9733e-a70c-43ff-ab0c-e26456f11083'), '$(ReleaseUri.Replace(`{arch}`, `$(ArchName)`))' + j)) for i,j in [$(_Uuids.Replace(`"`,`'`))]))</_GenerateCommand>
|
2015-02-06 07:08:48 +01:00
|
|
|
</PropertyGroup>
|
|
|
|
|
2015-05-03 00:23:27 +02:00
|
|
|
<Exec Command='"$(PythonExe)" -c "$(_GenerateCommand)" > "$(IntermediateOutputPath)$(OutputName)guids.txt"'
|
|
|
|
WorkingDirectory="$(MSBuildThisFileDirectory)"
|
|
|
|
IgnoreExitCode="false" />
|
2015-02-06 07:08:48 +01:00
|
|
|
|
|
|
|
<ReadLinesFromFile File="$(IntermediateOutputPath)$(OutputName)guids.txt">
|
|
|
|
<Output TaskParameter="Lines" ItemName="_UuidValue" />
|
|
|
|
</ReadLinesFromFile>
|
|
|
|
|
|
|
|
<PropertyGroup>
|
|
|
|
<DefineConstants>$(DefineConstants);@(_UuidValue,';');</DefineConstants>
|
|
|
|
</PropertyGroup>
|
|
|
|
</Target>
|
|
|
|
</Project>
|