Vendor dependencies
Let's see how I like this workflow.
This commit is contained in:
parent
34d1830413
commit
9c435dc440
7500 changed files with 1665121 additions and 99 deletions
80
vendor/cxx/tools/buck/prelude/toolchains/python.bzl
vendored
Normal file
80
vendor/cxx/tools/buck/prelude/toolchains/python.bzl
vendored
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
#
|
||||
# This source code is licensed under both the MIT license found in the
|
||||
# LICENSE-MIT file in the root directory of this source tree and the Apache
|
||||
# License, Version 2.0 found in the LICENSE-APACHE file in the root directory
|
||||
# of this source tree.
|
||||
|
||||
load(
|
||||
"@prelude//python:toolchain.bzl",
|
||||
"PythonPlatformInfo",
|
||||
"PythonToolchainInfo",
|
||||
)
|
||||
load(
|
||||
"@prelude//python_bootstrap:python_bootstrap.bzl",
|
||||
"PythonBootstrapToolchainInfo",
|
||||
)
|
||||
|
||||
_INTERPRETER = select({
|
||||
"ovr_config//os:linux": "python3",
|
||||
"ovr_config//os:macos": "python3",
|
||||
"ovr_config//os:windows": "python",
|
||||
})
|
||||
|
||||
def _system_python_bootstrap_toolchain_impl(ctx):
|
||||
return [
|
||||
DefaultInfo(),
|
||||
PythonBootstrapToolchainInfo(interpreter = ctx.attrs.interpreter),
|
||||
]
|
||||
|
||||
# Creates a new bootstrap toolchain using Python that is installed on your system.
|
||||
# You may use it in your toolchain cell as follows:
|
||||
#
|
||||
# ```bzl
|
||||
# load("@prelude//toolchains:python.bzl", "system_python_bootstrap_toolchain")
|
||||
#
|
||||
# system_python_bootstrap_toolchain(
|
||||
# name = "python_bootstrap", # the default name rules look for
|
||||
# visibility = ["PUBLIC"],
|
||||
# )
|
||||
# ```
|
||||
system_python_bootstrap_toolchain = rule(
|
||||
impl = _system_python_bootstrap_toolchain_impl,
|
||||
attrs = {
|
||||
"interpreter": attrs.string(default = _INTERPRETER),
|
||||
},
|
||||
is_toolchain_rule = True,
|
||||
)
|
||||
|
||||
def _system_python_toolchain_impl(ctx):
|
||||
"""
|
||||
A very simple toolchain that is hardcoded to the current environment.
|
||||
"""
|
||||
|
||||
return [
|
||||
DefaultInfo(),
|
||||
PythonToolchainInfo(
|
||||
make_source_db = ctx.attrs.make_source_db[RunInfo],
|
||||
make_source_db_no_deps = ctx.attrs.make_source_db_no_deps[RunInfo],
|
||||
host_interpreter = RunInfo(args = [ctx.attrs.interpreter]),
|
||||
interpreter = RunInfo(args = [ctx.attrs.interpreter]),
|
||||
make_pex_modules = ctx.attrs.make_pex_modules[RunInfo],
|
||||
make_pex_inplace = ctx.attrs.make_pex_inplace[RunInfo],
|
||||
compile = RunInfo(args = ["echo", "COMPILEINFO"]),
|
||||
package_style = "inplace",
|
||||
native_link_strategy = "merged",
|
||||
),
|
||||
PythonPlatformInfo(name = "x86_64"),
|
||||
]
|
||||
|
||||
system_python_toolchain = rule(
|
||||
impl = _system_python_toolchain_impl,
|
||||
attrs = {
|
||||
"interpreter": attrs.string(default = _INTERPRETER),
|
||||
"make_pex_inplace": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//python/tools:make_pex_inplace")),
|
||||
"make_pex_modules": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//python/tools:make_pex_modules")),
|
||||
"make_source_db": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//python/tools:make_source_db")),
|
||||
"make_source_db_no_deps": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//python/tools:make_source_db_no_deps")),
|
||||
},
|
||||
is_toolchain_rule = True,
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue