首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Bazel平台选择负载

用Bazel平台选择负载
EN

Stack Overflow用户
提问于 2022-04-18 19:34:13
回答 1查看 147关注 0票数 0

我有一个bazel文件,它必须加载两个不同的需求文件:

代码语言:javascript
复制
load("@python_turing_libs//:requirements.bzl", "requirement")

代码语言:javascript
复制
load("@python_ampere_libs//:requirements.bzl", "requirement")

我希望使用bazel平台通过以下方式实现这一点:

代码语言:javascript
复制
# Define GPU constraint values
constraint_setting(name = "gpu")
constraint_value(name = "turing", constraint_setting = "gpu")
constraint_value(name = "ampere", constraint_setting = "gpu")
constraint_value(name = "none", constraint_setting = "gpu")

# Platform
platform(
    name = "gpu_server",
    constraint_values = [
        "@platforms//os:linux",
        "@platforms//cpu:x86_64",
        ":gpu",
    ],
)

select({
        "@platforms//os:linux": 
            load("@python_perception_libs//:requirements.bzl", "requirement")
        ,
        "//conditions:default": [],
    })
代码语言:javascript
复制
syntax error at 'load': expected expression

或者别的什么,但是很明显这个语法不起作用。

EN

回答 1

Stack Overflow用户

发布于 2022-04-18 20:11:32

没有一种机制可以有条件地从其他bzl文件加载,因此,可以加载两个文件,并使用select来选择这些文件中的不同内容。

一个问题是,符号在每个文件中都有相同的名称,要解决这个问题,您可以在文件中使用不同的符号来执行如下所示的加载:

代码语言:javascript
复制
load("@python_turing_libs//:requirements.bzl", turing_requirement = "requirement")
load("@python_ampere_libs//:requirements.bzl", ampere_requirement = "requirement")


your_rule(
  ...
  some_attribute = select({
    ":turing_condition": turing_requirement,
    ":ampere_condition": ampere_requirement,
  })
  ...
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71916276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档