1load("@rules_python//python:defs.bzl", "py_runtime") 2load("@rules_python//python:py_exec_tools_toolchain.bzl", "py_exec_tools_toolchain") 3load("@rules_python//python:py_runtime_pair.bzl", "py_runtime_pair") 4load(":prebuilt_tool.bzl", "prebuilt_tool") 5 6filegroup( 7 name = "linux-x86", 8 srcs = glob([ 9 "common/**", 10 "linux-x86/bin/*", 11 "path/linux-x86/*", 12 ]) + [":linux-x86-libs"], 13 visibility = ["//visibility:public"], 14) 15 16filegroup( 17 name = "linux-x86-libs", 18 srcs = glob(["linux-x86/lib64/*"]), 19 visibility = ["//visibility:private"], 20) 21 22filegroup( 23 name = "linux_musl-x86-libs", 24 srcs = glob(["linux_musl-x86/lib64/*"]), 25 visibility = ["//visibility:private"], 26) 27 28# Used in prebuilt_tool() 29alias( 30 name = "libs", 31 actual = select({ 32 "//build/kernel/kleaf/platforms/libc:glibc": ":linux-x86-libs", 33 "//build/kernel/kleaf/platforms/libc:musl": ":linux_musl-x86-libs", 34 }), 35 target_compatible_with = select({ 36 "//build/kernel/kleaf/platforms/libc:glibc": [], 37 "//build/kernel/kleaf/platforms/libc:musl": [], 38 "//conditions:default": ["@platforms//:incompatible"], 39 }), 40 visibility = ["//visibility:private"], 41) 42 43py_runtime( 44 name = "python3", 45 files = ["linux-x86/bin/py3-cmd"], 46 interpreter = "linux-x86/bin/py3-cmd", 47 python_version = "PY3", 48 visibility = ["//visibility:public"], 49) 50 51py_runtime_pair( 52 name = "py_runtime_pair", 53 py3_runtime = ":python3", 54 visibility = ["//visibility:public"], 55) 56 57toolchain( 58 name = "py_toolchain", 59 toolchain = ":py_runtime_pair", 60 toolchain_type = "@rules_python//python:toolchain_type", 61 visibility = ["//visibility:public"], 62) 63 64py_runtime( 65 name = "python3_musl", 66 files = [ 67 "linux_musl-x86/bin/py3-cmd", 68 "linux_musl-x86/lib64/libc_musl.so", 69 ], 70 interpreter = "linux_musl-x86/bin/py3-cmd", 71 python_version = "PY3", 72 visibility = ["//visibility:private"], 73) 74 75py_runtime_pair( 76 name = "py_runtime_pair_musl", 77 py3_runtime = ":python3_musl", 78 visibility = ["//visibility:private"], 79) 80 81toolchain( 82 name = "py_toolchain_musl", 83 exec_compatible_with = [ 84 "@platforms//os:linux", 85 "@platforms//cpu:x86_64", 86 "//build/kernel/kleaf/platforms/libc:musl", 87 ], 88 toolchain = ":py_runtime_pair_musl", 89 toolchain_type = "@rules_python//python:toolchain_type", 90 visibility = ["//visibility:private"], 91) 92 93py_exec_tools_toolchain( 94 name = "py_exec_tools_toolchain_impl", 95 # Use the interpreter from //python:toolchain_type 96 exec_interpreter = None, 97 visibility = ["//visibility:private"], 98) 99 100toolchain( 101 name = "py_exec_tools_toolchain", 102 exec_compatible_with = [ 103 "@platforms//os:linux", 104 "@platforms//cpu:x86_64", 105 ], 106 toolchain = ":py_exec_tools_toolchain_impl", 107 toolchain_type = "@rules_python//python:exec_tools_toolchain_type", 108 visibility = ["//visibility:private"], 109) 110 111prebuilt_tool( 112 name = "awk", 113 actual = "one-true-awk", 114 visibility = ["//visibility:public"], 115) 116 117prebuilt_tool( 118 name = "bc", 119 actual = "gavinhoward-bc", 120 visibility = ["//visibility:public"], 121) 122 123prebuilt_tool( 124 name = "bison", 125 visibility = ["//visibility:public"], 126) 127 128prebuilt_tool( 129 name = "bzip2", 130 visibility = ["//visibility:public"], 131) 132 133prebuilt_tool( 134 name = "flex", 135 visibility = ["//visibility:public"], 136) 137 138prebuilt_tool( 139 name = "m4", 140 visibility = ["//visibility:public"], 141) 142 143prebuilt_tool( 144 name = "make", 145 visibility = ["//visibility:public"], 146) 147 148prebuilt_tool( 149 name = "openssl", 150 visibility = ["//visibility:public"], 151) 152 153prebuilt_tool( 154 name = "runextractor", 155 visibility = ["//visibility:public"], 156) 157 158prebuilt_tool( 159 name = "soong_zip", 160 visibility = ["//visibility:public"], 161) 162 163prebuilt_tool( 164 name = "toybox", 165 visibility = ["//visibility:public"], 166) 167 168prebuilt_tool( 169 name = "xz", 170 visibility = ["//visibility:public"], 171) 172 173prebuilt_tool( 174 name = "ziptool", 175 visibility = ["//visibility:public"], 176) 177 178# Additional runfiles required by bison 179filegroup( 180 name = "bison.runfiles", 181 srcs = glob([ 182 "common/bison/**", 183 ]), 184 visibility = ["//visibility:public"], 185) 186 187# Point to the directory so variables can know where to set BISON_PKGDATADIR to 188filegroup( 189 name = "bison.runfiles_dir", 190 srcs = ["common/bison"], 191 visibility = ["//visibility:public"], 192) 193