summaryrefslogtreecommitdiff
path: root/Tools/msi/msi.props
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/msi/msi.props')
-rw-r--r--Tools/msi/msi.props172
1 files changed, 172 insertions, 0 deletions
diff --git a/Tools/msi/msi.props b/Tools/msi/msi.props
new file mode 100644
index 0000000000..5b605e95e9
--- /dev/null
+++ b/Tools/msi/msi.props
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" TreatAsLocalProperty="ReleaseUri">
+ <PropertyGroup>
+ <TargetName>$(OutputName)</TargetName>
+ <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>
+ </PropertyGroup>
+
+ <Import Project="wix.props" />
+ <Import Project="..\..\PCBuild\tcltk.props" />
+
+ <PropertyGroup>
+ <!--
+ 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.
+
+ The official releases use "http://www.python.org/$(ArchName)"
+
+ This is not the same as the DownloadUrl property used in the bundle
+ projects.
+ -->
+ <ReleaseUri Condition="'$(ReleaseUri)' == ''">$(ComputerName)/$(ArchName)/</ReleaseUri>
+ <ReleaseUri Condition="!$(ReleaseUri.EndsWith(`/`))">$(ReleaseUri)/</ReleaseUri>
+ </PropertyGroup>
+
+
+ <ItemGroup>
+ <Compile Include="$(MSBuildThisFileDirectory)common.wxs" />
+ <WxlTemplate Include="$(MSBuildThisFileDirectory)\*.wxl_template" />
+ <WixExtension Include="WixUtilExtension">
+ <HintPath>WixUtilExtension</HintPath>
+ <Name>WixUtilExtension</Name>
+ </WixExtension>
+ </ItemGroup>
+
+ <PropertyGroup>
+ <IntermediateOutputPath>$(PySourcePath)PCBuild\obj\$(Configuration)_$(Platform)_Setup\$(OutputName)</IntermediateOutputPath>
+ <IntermediateOutputPath Condition="'$(OutputSuffix)' != ''">$(IntermediateOutputPath)_$(OutputSuffix)</IntermediateOutputPath>
+ <OutputPath Condition="'$(OutputPath)' == ''">$(BuildPath)</OutputPath>
+ <OutputPath Condition="!HasTrailingSlash($(OutputPath))">$(OutputPath)\</OutputPath>
+ <OutDir>$(OutputPath)</OutDir>
+ <ReuseCabinetCache>true</ReuseCabinetCache>
+ <CRTRedist Condition="'$(CRTRedist)' == ''">$(ExternalsDir)\redist</CRTRedist>
+ <CRTRedist Condition="!Exists($(CRTRedist))"></CRTRedist>
+ <DocFilename>python$(MajorVersionNumber)$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm</DocFilename>
+
+ <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>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <Bitness>32-bit</Bitness>
+ <Bitness Condition="$(Platform) == 'x64'">64-bit</Bitness>
+ <DefineConstants>
+ $(DefineConstants);
+ Version=$(InstallerVersion);
+ ShortVersion=$(MajorVersionNumber).$(MinorVersionNumber);
+ LongVersion=$(PythonVersion);
+ MajorVersionNumber=$(MajorVersionNumber);
+ MinorVersionNumber=$(MinorVersionNumber);
+ UpgradeMinimumVersion=$(MajorVersionNumber).$(MinorVersionNumber).0.0;
+ NextMajorVersionNumber=$(MajorVersionNumber).$([msbuild]::Add($(MinorVersionNumber), 1)).0.0;
+ Bitness=$(Bitness);
+ PyDebugExt=$(PyDebugExt);
+ OptionalFeatureName=$(OutputName);
+ </DefineConstants>
+ <DefineConstants Condition="'$(CRTRedist)' != ''">
+ $(DefineConstants);CRTRedist=$(CRTRedist);
+ </DefineConstants>
+ <DefineConstants Condition="$(UseTestMarker) != 'true'">
+ $(DefineConstants);TestPrefix=;FileExtension=py;
+ </DefineConstants>
+ <DefineConstants Condition="$(UseTestMarker) == 'true'">
+ $(DefineConstants);TestPrefix=x;FileExtension=px;
+ </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>
+ <LinkerBindInputPaths Include="$(BuildPath);$(PySourcePath)Doc\build\htmlhelp">
+ <BindName></BindName>
+ </LinkerBindInputPaths>
+ <LinkerBindInputPaths Include="$(PySourcePath)">
+ <BindName>src</BindName>
+ </LinkerBindInputPaths>
+ <LinkerBindInputPaths Include="$(tcltkDir)">
+ <BindName>tcltk</BindName>
+ </LinkerBindInputPaths>
+ <LinkerBindInputPaths Include="$(CRTRedist)" Condition="'$(CRTRedist)' != ''">
+ <BindName>redist</BindName>
+ </LinkerBindInputPaths>
+ <LinkerBindInputPaths Include="$(VS140COMNTOOLS)\..\..\VC\redist\$(Platform)\Microsoft.VC140.CRT">
+ <BindName>redist</BindName>
+ </LinkerBindInputPaths>
+ </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>
+ </ItemGroup>
+ <Target Name="_GenerateGuids" AfterTargets="PrepareForBuild">
+ <PropertyGroup>
+ <_Uuids>@(_Uuid->'("%(Identity)", "$(MajorVersionNumber).$(MinorVersionNumber)/%(Uri)")',',')</_Uuids>
+ <_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>
+ </PropertyGroup>
+
+ <Exec Command='"$(PythonExe)" -c "$(_GenerateCommand)" &gt; "$(IntermediateOutputPath)$(OutputName)guids.txt"'
+ WorkingDirectory="$(MSBuildThisFileDirectory)"
+ IgnoreExitCode="false" />
+
+ <ReadLinesFromFile File="$(IntermediateOutputPath)$(OutputName)guids.txt">
+ <Output TaskParameter="Lines" ItemName="_UuidValue" />
+ </ReadLinesFromFile>
+
+ <PropertyGroup>
+ <DefineConstants>$(DefineConstants);@(_UuidValue,';');</DefineConstants>
+ </PropertyGroup>
+ </Target>
+</Project> \ No newline at end of file