summaryrefslogtreecommitdiffstats
path: root/.gitlab/ci/download_python3.cmake
blob: 0f5b18b4ff778ea7fb1fb3fca80f0e1af0b278fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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")