-
-
Notifications
You must be signed in to change notification settings - Fork 205
Expand file tree
/
Copy path_cross_target.py.tmpl
More file actions
77 lines (56 loc) · 2.26 KB
/
_cross_target.py.tmpl
File metadata and controls
77 lines (56 loc) · 2.26 KB
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# A site package that turns a macOS virtual environment
# into an {{arch}} {{sdk}} cross-platform virtual environment
import platform
import subprocess
import sys
import sysconfig
###########################################################################
# sys module patches
###########################################################################
sys.cross_compiling = True
sys.platform = "{{platform}}"
sys.implementation._multiarch = "{{arch}}-{{sdk}}"
sys.base_prefix = sysconfig.get_config_var("prefix")
sys.base_exec_prefix = sysconfig.get_config_var("prefix")
###########################################################################
# subprocess module patches
###########################################################################
subprocess._can_fork_exec = True
###########################################################################
# platform module patches
###########################################################################
def cross_system():
return "{{os}}"
def cross_uname():
return platform.uname_result(
system="{{os}}",
node="build",
release="{{version_min}}",
version="",
machine="{{arch}}",
)
def cross_ios_ver(system="", release="", model="", is_simulator=False):
if system == "":
system = "{{os}}"
if release == "":
release = "{{version_min}}"
if model == "":
model = "{{sdk}}"
return platform.IOSVersionInfo(system, release, model, {{is_simulator}})
platform.system = cross_system
platform.uname = cross_uname
platform.ios_ver = cross_ios_ver
###########################################################################
# sysconfig module patches
###########################################################################
def cross_get_platform():
return "{{platform}}-{{version_min}}-{{arch}}-{{sdk}}"
def cross_get_sysconfigdata_name():
return "_sysconfigdata__{{platform}}_{{arch}}-{{sdk}}"
sysconfig.get_platform = cross_get_platform
sysconfig._get_sysconfigdata_name = cross_get_sysconfigdata_name
# Ensure module-level values cached at time of import are updated.
sysconfig._BASE_PREFIX = sys.base_prefix
sysconfig._BASE_EXEC_PREFIX = sys.base_exec_prefix
# Force sysconfig data to be loaded (and cached).
sysconfig._init_config_vars()