1
1
# Download Windows executable
2
2
3
- cmake_minimum_required (VERSION 3.19 )
3
+ cmake_minimum_required (VERSION 3.24 )
4
4
5
5
include (FetchContent)
6
6
7
7
option (CMAKE_TLS_VERIFY "verify TLS certificates" on )
8
8
9
- if (NOT WIN32 )
10
- message (FATAL_ERROR "Embedded Python downloader is Windows-only" )
11
- endif ()
12
-
13
9
if (NOT python_version)
14
- file (READ ${CMAKE_CURRENT_LIST_DIR} /../cmake/ libraries.json json_meta)
10
+ file (READ ${CMAKE_CURRENT_LIST_DIR} /../libraries.json json_meta)
15
11
string (JSON python_version GET ${json_meta} "python" "version" )
16
12
endif ()
17
13
18
14
if (NOT prefix )
19
- get_filename_component ( prefix ~/python-${python_version} ABSOLUTE )
15
+ file (REAL_PATH " ~/python-${python_version} " prefix EXPAND_TILDE )
20
16
endif ()
21
17
18
+ if (NOT DEFINED ENV{PROCESSOR_ARCHITECTURE})
19
+ message (FATAL_ERROR "PROCESSOR_ARCHITECTURE not set, could not determine CPU arch" )
20
+ endif ()
22
21
set (arch $ENV{PROCESSOR_ARCHITECTURE} )
23
22
24
23
if (arch STREQUAL "ARM64" )
@@ -42,12 +41,7 @@ message(STATUS "Python ${python_version} ${prefix}")
42
41
43
42
set (FETCHCONTENT_QUIET false )
44
43
45
- FetchContent_Populate(cmake
46
- URL ${python_url}
47
- TLS_VERIFY ${CMAKE_TLS_VERIFY}
48
- UPDATE_DISCONNECTED true
49
- INACTIVITY_TIMEOUT 60
50
- )
44
+ FetchContent_Populate(cmake URL ${python_url} SOURCE_DIR ${prefix} )
51
45
52
46
file (MAKE_DIRECTORY ${prefix} )
53
47
file (COPY ${cmake_SOURCE_DIR} / DESTINATION ${prefix} )
@@ -60,7 +54,8 @@ find_file(pth
60
54
NAMES python${python_version_short} ._pth
61
55
HINTS ${prefix}
62
56
NO_DEFAULT_PATH
63
- REQUIRED)
57
+ REQUIRE
58
+ )
64
59
65
60
file (RENAME ${pth} ${prefix} /python${python_version_short} .pth)
66
61
@@ -71,10 +66,8 @@ find_program(python_exe
71
66
NAMES python3 python
72
67
HINTS ${prefix}
73
68
NO_DEFAULT_PATH
69
+ REQUIRED
74
70
)
75
- if (NOT python_exe)
76
- message (FATAL_ERROR "failed to install Python ${python_version} to ${prefix} " )
77
- endif ()
78
71
79
72
# --- add paths to Python
80
73
file (APPEND "${pth} " "${prefix} /Lib\n " )
@@ -84,6 +77,5 @@ file(DOWNLOAD https://bootstrap.pypa.io/get-pip.py ${prefix}/get-pip.py)
84
77
85
78
execute_process (COMMAND ${python_exe} ${prefix} /get -pip.py)
86
79
87
-
88
- get_filename_component (bindir ${python_exe} DIRECTORY )
80
+ cmake_path(GET python_exe PARENT_PATH bindir)
89
81
message (STATUS "installed Python ${python_version} to ${bindir} " )
0 commit comments