diff options
-rw-r--r-- | build_scripts/utils.py | 34 | ||||
-rw-r--r-- | coin_build_instructions.py | 5 | ||||
-rw-r--r-- | coin_test_instructions.py | 5 |
3 files changed, 44 insertions, 0 deletions
diff --git a/build_scripts/utils.py b/build_scripts/utils.py index 6c3b5d0fc..c0d189d2d 100644 --- a/build_scripts/utils.py +++ b/build_scripts/utils.py @@ -1131,3 +1131,37 @@ def acceptCITestConfiguration(hostOS, hostOSVer, targetArch, compiler): print("Disabled " + compiler + " to " + targetArch + " from Coin configuration") return False return True + +def runCIProvisioning(): + # we need to make sure that we have 32 bit python + if os.environ.get('PYTHON3_32_PATH') is not None: + return + targetDir = os.path.join(os.environ.get('USERPROFILE'), "downloads") + python3_32Path = "C:\\Python36_32" + python2_32Path = "C:\\Python27_32" + provP3Script = ("http://code.qt.io/cgit/qt/qt5.git/plain/coin/provisioning/common/windows/" + "python3.ps1?id=6c295ac7f00f3352a3242b21c90bf3ad1a9fc86a") + provP2Script = ("http://code.qt.io/cgit/qt/qt5.git/plain/coin/provisioning/common/windows/" + "python.ps1?id=6c295ac7f00f3352a3242b21c90bf3ad1a9fc86a") + helperScript = ("http://code.qt.io/cgit/qt/qt5.git/plain/coin/provisioning/common/windows/" + "helpers.ps1?id=6c295ac7f00f3352a3242b21c90bf3ad1a9fc86a") + ps = ["powershell.exe", "Invoke-WebRequest", "-UseBasicParsing", provP3Script, "-OutFile", + os.path.join(targetDir, "python3.ps1")] + run_instruction(ps, "Unable to download python provisioning script") + ps = ["powershell.exe", "Invoke-WebRequest", "-UseBasicParsing", provP2Script, "-OutFile", + os.path.join(targetDir, "python2.ps1")] + run_instruction(ps, "Unable to download python provisioning script") + ps = ["powershell.exe", "Invoke-WebRequest", "-UseBasicParsing", helperScript, "-OutFile", + os.path.join(targetDir, "helpers.ps1")] + run_instruction(ps, "Unable to download helpers provisioning script") + ps = ["powershell.exe", "-ExecutionPolicy", "RemoteSigned", "-NonInteractive", "-File", + os.path.join(targetDir, "python3.ps1"), "32", python3_32Path] + run_instruction(ps, "Unable to install python3 32 bit") + ps = ["powershell.exe", "-ExecutionPolicy", "RemoteSigned", "-NonInteractive", "-File", + os.path.join(targetDir, "python2.ps1"), "32", python2_32Path] + run_instruction(ps, "Unable to install python2 32 bit") + # The env was set by powershell, so we are missing the env variables + os.environ["PYTHON3_32_PATH"] = python3_32Path + os.environ["PYTHON2_32_PATH"] = python2_32Path + os.environ["PIP3_32_PATH"] = python3_32Path + "\\Scripts" + os.environ["PIP2_32_PATH"] = python2_32Path + "\\Scripts" diff --git a/coin_build_instructions.py b/coin_build_instructions.py index 65e198be4..df4bc9b67 100644 --- a/coin_build_instructions.py +++ b/coin_build_instructions.py @@ -44,6 +44,7 @@ from build_scripts.utils import run_instruction from build_scripts.utils import rmtree from build_scripts.utils import get_python_dict from build_scripts.utils import acceptCITestConfiguration +from build_scripts.utils import runCIProvisioning import os # Values must match COIN thrift @@ -125,6 +126,10 @@ def run_build_instructions(): if not acceptCITestConfiguration(CI_HOST_OS, CI_HOST_OS_VER, CI_TARGET_ARCH, CI_COMPILER): exit() + # Make sure we have 32 bit python on 64 bit host + # FIXME this is hack for 5.11.0 + if CI_HOST_OS == "Windows" and CI_HOST_ARCH == "X86_64" and CI_TARGET_ARCH == "X86": + runCIProvisioning() # Uses default python, hopefully we have python2 installed on all hosts # Skip building using Python 2 on Windows, because of different MSVC C runtimes (VS2008 vs VS2015+) if CI_HOST_OS != "Windows": diff --git a/coin_test_instructions.py b/coin_test_instructions.py index bd65b5b7e..28b812622 100644 --- a/coin_test_instructions.py +++ b/coin_test_instructions.py @@ -43,6 +43,7 @@ from build_scripts.utils import get_qtci_virtualEnv from build_scripts.utils import run_instruction from build_scripts.utils import rmtree from build_scripts.utils import acceptCITestConfiguration +from build_scripts.utils import runCIProvisioning import os # Values must match COIN thrift @@ -76,6 +77,10 @@ def run_test_instructions(): if not acceptCITestConfiguration(CI_HOST_OS, CI_HOST_OS_VER, CI_TARGET_ARCH, CI_COMPILER): exit() + # Make sure we have 32 bit python on 64 bit host + # FIXME this is hack for 5.11.0 + if CI_HOST_OS == "Windows" and CI_HOST_ARCH == "X86_64" and CI_TARGET_ARCH == "X86": + runCIProvisioning() os.chdir(CI_ENV_AGENT_DIR) testRun = 0 # We didn't build for Python 2 in win |