| #!/bin/bash |
| # Download and install MSYS2, needed primarily for the test suite (run-make) but |
| # also used by the MinGW toolchain for assembling things. |
| |
| set -euo pipefail |
| IFS=$'\n\t' |
| |
| source "$(cd "$(dirname "$0")" && pwd)/../shared.sh" |
| |
| if isWindows; then |
| msys2Path="c:/msys64" |
| mkdir -p "${msys2Path}/home/${USERNAME}" |
| ciCommandAddPath "${msys2Path}/usr/bin" |
| |
| echo "switching shell to use our own bash" |
| ciCommandSetEnv CI_OVERRIDE_SHELL "${msys2Path}/usr/bin/bash.exe" |
| |
| # Detect the native Python version installed on the agent. On GitHub |
| # Actions, the C:\hostedtoolcache\windows\Python directory contains a |
| # subdirectory for each installed Python version. |
| # |
| # The -V flag of the sort command sorts the input by version number. |
| native_python_version="$(ls /c/hostedtoolcache/windows/Python | sort -Vr | head -n 1)" |
| |
| # Make sure we use the native python interpreter instead of some msys equivalent |
| # one way or another. The msys interpreters seem to have weird path conversions |
| # baked in which break LLVM's build system one way or another, so let's use the |
| # native version which keeps everything as native as possible. |
| python_home="/c/hostedtoolcache/windows/Python/${native_python_version}/x64" |
| cp "${python_home}/python.exe" "${python_home}/python3.exe" |
| ciCommandAddPath "C:\\hostedtoolcache\\windows\\Python\\${native_python_version}\\x64" |
| ciCommandAddPath "C:\\hostedtoolcache\\windows\\Python\\${native_python_version}\\x64\\Scripts" |
| fi |