Provisioning: Install 32 bit python to 64 bit windows

In order to create 32 bit Pyside wheels we have to be able to link
Pyside against 32 bit python. While 32 Qt build is done in 64 bit
Windows Pyside must follow.

Task-number: PYSIDE-646
Change-Id: I30855d4cecd6bc6219021216e9c296d28c56b405
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
This commit is contained in:
Simo Fält
2018-05-15 12:35:39 +03:00
parent 6b243aa278
commit 6c295ac7f0
8 changed files with 43 additions and 20 deletions

View File

@@ -30,13 +30,17 @@
## $QT_END_LICENSE$
##
#############################################################################
. "$PSScriptRoot\helpers.ps1"
# This script installs Python $version.
# Python is required for building Qt 5 from source.
param(
[Int32]$archVer=32,
[string]$targetDir="C:\Python27"
)
. "$PSScriptRoot\helpers.ps1"
$version = "2.7.13"
if (Is64BitWinHost) {
if ( $archVer -eq 64 ) {
$arch = ".amd64"
$sha1 = "d9113142bae8829365c595735e1ad1f9f5e2894c"
} else {
@@ -51,17 +55,25 @@ Write-Host "Fetching from URL..."
Download $externalUrl $internalUrl $package
Verify-Checksum $package $sha1
Write-Host "Installing $package..."
Run-Executable "msiexec" "/passive /i $package ALLUSERS=1"
Run-Executable "msiexec" "/passive /i $package TARGETDIR=$targetDir ALLUSERS=1"
# We need to change allowZip64 from 'False' to 'True' to be able to create ZIP files that use the ZIP64 extensions when the zipfile is larger than 2 GB
Write-Host "Changing allowZip64 value to 'True'..."
(Get-Content C:\Python27\lib\zipfile.py) | ForEach-Object { $_ -replace "allowZip64=False", "allowZip64=True" } | Set-Content C:\Python27\lib\zipfile.py
(Get-Content $targetDir\lib\zipfile.py) | ForEach-Object { $_ -replace "allowZip64=False", "allowZip64=True" } | Set-Content $targetDir\lib\zipfile.py
Write-Host "Remove $package..."
Remove-Item -Path $package
Add-Path "C:\Python27;C:\Python27\Scripts"
# When installing 32 bit python to 64 bit host, we want to keep only default python in path
# For cross-compilation we export some helper env variable
if (($archVer -eq 32) -And (Is64BitWinHost)) {
Set-EnvironmentVariable "PYTHON2_32_PATH" "$targetDir"
Set-EnvironmentVariable "PIP2_32_PATH" "$targetDir\Scripts"
} else {
Add-Path "$targetDir;$targetDir\Scripts"
}
Run-Executable "C:\Python27\python.exe" "-m ensurepip"
Run-Executable "$targetDir\python.exe" "-m ensurepip"
# Install python virtual env
if (IsProxyEnabled) {
@@ -69,6 +81,6 @@ if (IsProxyEnabled) {
Write-Host "Using proxy ($proxy) with pip"
$pip_args = "--proxy=$proxy"
}
Run-Executable "C:\Python27\Scripts\pip.exe" "$pip_args install virtualenv"
Run-Executable "$targetDir\Scripts\pip.exe" "$pip_args install virtualenv"
Write-Output "Python = $version" >> ~/versions.txt
Write-Output "Python-$archVer = $version" >> ~/versions.txt

View File

@@ -32,18 +32,20 @@
##
#############################################################################
. "$PSScriptRoot\helpers.ps1"
# This script installs Python $version.
# Python3 is required for building some qt modules.
param(
[Int32]$archVer=32,
[string]$install_path = "C:\Python36"
)
. "$PSScriptRoot\helpers.ps1"
$version = "3.6.1"
$package = "C:\Windows\temp\python-$version.exe"
$install_path = "C:\Python36"
# check bit version
if (Is64BitWinHost) {
Write-Host "Running in 64 bit system"
if ( $archVer -eq 64 ) {
Write-Host "Installing 64 bit Python"
$externalUrl = "https://www.python.org/ftp/python/$version/python-$version-amd64.exe"
$internalUrl = "http://ci-files01-hki.intra.qt.io/input/windows/python-$version-amd64.exe"
$sha1 = "bf54252c4065b20f4a111cc39cf5215fb1edccff"
@@ -61,8 +63,15 @@ Run-Executable "$package" "/q TargetDir=$install_path"
Write-Host "Remove $package..."
Remove-Item -Path $package
Set-EnvironmentVariable "PYTHON3_PATH" "$install_path"
Set-EnvironmentVariable "PIP3_PATH" "$install_path\Scripts"
# For cross-compilation we export some helper env variable
if (($archVer -eq 32) -And (Is64BitWinHost)) {
Set-EnvironmentVariable "PYTHON3_32_PATH" "$install_path"
Set-EnvironmentVariable "PIP3_32_PATH" "$install_path\Scripts"
} else {
Set-EnvironmentVariable "PYTHON3_PATH" "$install_path"
Set-EnvironmentVariable "PIP3_PATH" "$install_path\Scripts"
}
# Install python virtual env
if (IsProxyEnabled) {
@@ -72,5 +81,5 @@ if (IsProxyEnabled) {
}
Run-Executable "$install_path\Scripts\pip3.exe" "$pip_args install virtualenv"
Write-Output "Python3 = $version" >> ~/versions.txt
Write-Output "Python3-$archVer = $version" >> ~/versions.txt

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\windows\python.ps1" 32 "C:\Python27_32"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\windows\python3.ps1" 32 "C:\Python36_32"

View File

@@ -1 +1 @@
. "$PSScriptRoot\..\common\windows\python3.ps1"
. "$PSScriptRoot\..\common\windows\python3.ps1" 64

View File

@@ -1 +1 @@
. "$PSScriptRoot\..\common\windows\python.ps1"
. "$PSScriptRoot\..\common\windows\python.ps1" 64

View File

@@ -1 +1 @@
. "$PSScriptRoot\..\common\windows\python3.ps1"
. "$PSScriptRoot\..\common\windows\python3.ps1" 64

View File

@@ -1 +1 @@
. "$PSScriptRoot\..\common\windows\python3.ps1"
. "$PSScriptRoot\..\common\windows\python3.ps1" 64