forked from envoyproxy/envoy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrules_python.patch
More file actions
72 lines (70 loc) · 2.69 KB
/
Copy pathrules_python.patch
File metadata and controls
72 lines (70 loc) · 2.69 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
--- a/python/private/toolchain_aliases.bzl
+++ b/python/private/toolchain_aliases.bzl
@@ -43,6 +43,16 @@
visibility = ["//visibility:private"],
)
+ # Use a sensible default platform for unsupported target platforms (e.g., WASI).
+ # Prefer x86_64-unknown-linux-gnu as it's the most common CI/exec platform.
+ # This allows builds to proceed when Python is transitively depended on
+ # but not actually used in the target configuration.
+ default_platform = None
+ if "x86_64-unknown-linux-gnu" in platforms:
+ default_platform = "x86_64-unknown-linux-gnu"
+ elif platforms:
+ default_platform = platforms[0]
+
prefix = name
for name in [
"files",
@@ -52,29 +62,39 @@
"python_headers",
"python_runtimes",
]:
+ select_dict = {
+ ":" + platform: "@{}_{}//:{}".format(prefix, platform, name)
+ for platform in platforms
+ }
+ if default_platform:
+ select_dict["//conditions:default"] = "@{}_{}//:{}".format(prefix, default_platform, name)
native.alias(
name = name,
- actual = select({
- ":" + platform: "@{}_{}//:{}".format(prefix, platform, name)
- for platform in platforms
- }),
+ actual = select(select_dict),
visibility = visibility,
)
+ python3_select_dict = {
+ ":" + platform: "@{}_{}//:{}".format(prefix, platform, "python.exe" if "windows" in platform else "bin/python3")
+ for platform in platforms
+ }
+ if default_platform:
+ python3_select_dict["//conditions:default"] = "@{}_{}//:bin/python3".format(prefix, default_platform)
native.alias(
name = "python3",
- actual = select({
- ":" + platform: "@{}_{}//:{}".format(prefix, platform, "python.exe" if "windows" in platform else "bin/python3")
- for platform in platforms
- }),
+ actual = select(python3_select_dict),
visibility = visibility,
)
+
+ pip_select_dict = {
+ ":" + platform: "@{}_{}//:python_runtimes".format(prefix, platform)
+ for platform in platforms
+ if "windows" not in platform
+ }
+ if default_platform and "windows" not in default_platform:
+ pip_select_dict["//conditions:default"] = "@{}_{}//:python_runtimes".format(prefix, default_platform)
native.alias(
name = "pip",
- actual = select({
- ":" + platform: "@{}_{}//:python_runtimes".format(prefix, platform)
- for platform in platforms
- if "windows" not in platform
- }),
+ actual = select(pip_select_dict),
visibility = visibility,
)