summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Tools/msi/README.txt20
-rw-r--r--Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp1
-rw-r--r--Tools/msi/bundle/bundle.targets12
-rw-r--r--Tools/msi/msi.props11
4 files changed, 32 insertions, 12 deletions
diff --git a/Tools/msi/README.txt b/Tools/msi/README.txt
index 1e41cc1..25dcf32 100644
--- a/Tools/msi/README.txt
+++ b/Tools/msi/README.txt
@@ -9,7 +9,7 @@ script:
For an official release, the installer should be built with the
Tools/msi/buildrelease.bat script and environment variables:
- set PYTHON=<path to Python 2.7>
+ set PYTHON=<path to Python 2.7 or 3.4>
set SPHINXBUILD=<path to sphinx-build.exe>
set PATH=<path to Mercurial (hg.exe)>;
<path to HTML Help Compiler (hhc.exe)>;%PATH%
@@ -87,7 +87,7 @@ and extracted to the externals/ directory.
For an official release, the installer should be built with the
Tools/msi/buildrelease.bat script:
- set PYTHON=<path to Python 2.7>
+ set PYTHON=<path to Python 2.7 or 3.4>
set SPHINXBUILD=<path to sphinx-build.exe>
set PATH=<path to Mercurial (hg.exe)>;
<path to HTML Help Compiler (hhc.exe)>;%PATH%
@@ -229,6 +229,11 @@ interest:
Every package should reference this property to include upgrade
information.
+ OptionalFeature (Component)
+ Packages that may be enabled or disabled should reference this component
+ and have an OPTIONAL_FEATURES entry in the bootstrap application to
+ properly handle Modify and Upgrade.
+
The .wxl_template file is specially handled by the build system for this
project to perform {{substitutions}} as defined in msi.targets. They
should be included in projects as <WxlTemplate> items, where .wxl files
@@ -326,14 +331,11 @@ install directory.
.\python3x.dll The core interpreter
.\python3.dll The stable ABI reference
-.\appcrt140.dll Microsoft Visual C Runtime
-.\desktopcrt140.dll Microsoft Visual C Runtime
-.\vcruntime140.dll Microsoft Visual C Runtime
When installed for all users, the following files are installed to
"%SystemRoot%" (typically "C:\Windows") to ensure they are always
available on PATH. (See Launching Python below.) For the current user,
-they are installed in the Python install directory.
+they are installed in "%LocalAppData%\Programs\Python\PyLauncher".
.\py[w].exe PEP 397 launcher
@@ -363,8 +365,10 @@ For 32-bit interpreters installed for the current user:
When the core Python executables are installed, a key "InstallPath" is
created within the root key with its default value set to the
-executable's install directory. Within this key, a key "InstallGroup" is
-created with its default value set to the product name "Python 3.X".
+executable's install directory. A value named "ExecutablePath" is added
+with the full path to the main Python interpreter, and a key
+"InstallGroup" is created with its default value set to the product
+name "Python 3.X".
When the Python standard library is installed, a key "PythonPath" is
created within the root key with its default value set to the full path
diff --git a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
index 7283559..2166304 100644
--- a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
+++ b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
@@ -291,6 +291,7 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication {
hr = BalGetStringVariable(L"TargetDir", &targetDir);
if (FAILED(hr) || !targetDir || !targetDir[0]) {
ReleaseStr(targetDir);
+ targetDir = nullptr;
hr = BalGetStringVariable(
installAllUsers ? L"DefaultAllUsersTargetDir" : L"DefaultJustForMeTargetDir",
diff --git a/Tools/msi/bundle/bundle.targets b/Tools/msi/bundle/bundle.targets
index 363c4e3..1ff0001 100644
--- a/Tools/msi/bundle/bundle.targets
+++ b/Tools/msi/bundle/bundle.targets
@@ -72,8 +72,18 @@
<Package Include="..\tools\tools*.wixproj" />
</ItemGroup>
+ <PropertyGroup>
+ <BuildPackagesTargets>Build</BuildPackagesTargets>
+ </PropertyGroup>
+
+ <Target Name="_SetRebuildTarget" BeforeTargets="BeforeRebuild">
+ <PropertyGroup>
+ <BuildPackagesTargets>Rebuild</BuildPackagesTargets>
+ </PropertyGroup>
+ </Target>
+
<Target Name="BuildPackages" BeforeTargets="BeforeBuild" Condition="'$(RebuildAll)' != 'false'">
- <MSBuild Projects="@(Package)" BuildInParallel="true" />
+ <MSBuild Projects="@(Package)" Targets="$(BuildPackagesTargets)" BuildInParallel="true" />
</Target>
<Target Name="BuildLauncher" BeforeTargets="BeforeBuild" Condition="'$(RebuildAll)' != 'false'">
diff --git a/Tools/msi/msi.props b/Tools/msi/msi.props
index 1d9f0f0..2d13aef 100644
--- a/Tools/msi/msi.props
+++ b/Tools/msi/msi.props
@@ -53,8 +53,13 @@
<CRTRedist Condition="!Exists($(CRTRedist))"></CRTRedist>
<DocFilename>python$(MajorVersionNumber)$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm</DocFilename>
- <RevisionNumber>$(ReleaseLevelNumber)</RevisionNumber>
- <RevisionNumber Condition="!$(BuildForRelease)">$([System.Math]::Floor($([System.DateTime]::Now.Subtract($([System.DateTime]::new(2001, 1, 1))).TotalDays)))</RevisionNumber>
+ <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>
@@ -62,7 +67,7 @@
<Bitness Condition="$(Platform) == 'x64'">64-bit</Bitness>
<DefineConstants>
$(DefineConstants);
- Version=$(MajorVersionNumber).$(MinorVersionNumber).$(Field3Value).0;
+ Version=$(InstallerVersion);
ShortVersion=$(MajorVersionNumber).$(MinorVersionNumber);
LongVersion=$(PythonVersion);
MajorVersionNumber=$(MajorVersionNumber);