Browse Source

Merge topic 'ci-win-python' into release-3.19

8f7fef629b ci: add Python to PATH on Windows

Acked-by: Kitware Robot <[email protected]>
Acked-by: Kyle Edwards <[email protected]>
Merge-request: !5403
Brad King 5 years ago
parent
commit
e59c8f548d
2 changed files with 44 additions and 0 deletions
  1. 41 0
      .gitlab/ci/download_python3.cmake
  2. 3 0
      .gitlab/os-windows.yml

+ 41 - 0
.gitlab/ci/download_python3.cmake

@@ -0,0 +1,41 @@
+cmake_minimum_required(VERSION 3.17)
+
+set(version "3.8.6")
+set(sha256sum "376e18eef7e3ea467f0e3af041b01fc7e2f12855506c2ab2653ceb5e0951212e")
+set(dirname "python-${version}-embed-win-x86_64")
+set(tarball "${dirname}.tar.xz")
+
+# Download the file.
+file(DOWNLOAD
+  "https://cmake.org/files/dependencies/${tarball}"
+  ".gitlab/${tarball}"
+  STATUS download_status
+  EXPECTED_HASH "SHA256=${sha256sum}")
+
+# Check the download status.
+list(GET download_status 0 res)
+if (res)
+  list(GET download_status 1 err)
+  message(FATAL_ERROR
+    "Failed to download ${tarball}: ${err}")
+endif ()
+
+# Extract the file.
+execute_process(
+  COMMAND
+    "${CMAKE_COMMAND}"
+    -E tar
+    xzf "${tarball}"
+  WORKING_DIRECTORY ".gitlab"
+  RESULT_VARIABLE res
+  ERROR_VARIABLE err
+  ERROR_STRIP_TRAILING_WHITESPACE)
+if (res)
+  message(FATAL_ERROR
+    "Failed to extract ${tarball}: ${err}")
+endif ()
+
+# Move to a predictable directory.
+file(RENAME
+  ".gitlab/${dirname}"
+  ".gitlab/python3")

+ 3 - 0
.gitlab/os-windows.yml

@@ -82,6 +82,9 @@
     - ninja --version
     - ninja --version
     - cmake -P .gitlab/ci/download_qt.cmake
     - cmake -P .gitlab/ci/download_qt.cmake
     - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\qt\bin;$env:PATH"
     - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\qt\bin;$env:PATH"
+    - cmake -P .gitlab/ci/download_python3.cmake
+    - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\python3;$env:PATH"
+    - python --version
 
 
 .cmake_build_windows:
 .cmake_build_windows:
     stage: build
     stage: build