首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在` `bazel query`命令中传递自定义标志?

bazel query命令中,可以通过--define标志来传递自定义标志。该标志用于定义一个布尔类型的标志,可以在BUILD文件中使用。具体的语法如下:

代码语言:txt
复制
bazel query --define=<flag_name>=<flag_value> <query_expression>

其中,<flag_name>是自定义标志的名称,<flag_value>是自定义标志的值,<query_expression>是查询表达式。

通过传递自定义标志,可以在BUILD文件中根据标志的值来进行条件判断,从而实现不同的构建逻辑。例如,可以根据自定义标志的值来选择不同的依赖库、启用或禁用某些功能等。

以下是一个示例:

代码语言:txt
复制
bazel query --define=enable_feature=true //path/to/package:target

在上述示例中,enable_feature是自定义标志的名称,true是自定义标志的值,//path/to/package:target是查询表达式。

在BUILD文件中,可以使用select函数来根据自定义标志的值进行条件判断。示例如下:

代码语言:txt
复制
select({
    "//conditions:default": [
        "//path/to/default:library",
    ],
    "//conditions:enable_feature": [
        "//path/to/feature:library",
    ],
})

在上述示例中,根据自定义标志enable_feature的值选择不同的依赖库。当enable_featuretrue时,选择//path/to/feature:library作为依赖库;否则,选择//path/to/default:library作为依赖库。

推荐的腾讯云相关产品:腾讯云容器服务(Tencent Kubernetes Engine,TKE)。TKE是一种高度可扩展的容器管理服务,可帮助用户轻松运行和管理Docker容器化应用程序。TKE提供了强大的容器编排和调度能力,支持自动化扩缩容、服务发现和负载均衡等功能,适用于各种规模的应用场景。

产品介绍链接地址:腾讯云容器服务(TKE)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

自定义命令行编译标志

build flag 构建标志,设置配置的命令标志,比如 --cpu,它好比 key-value 的 key。根据定义,用户可以直接在任何构建上进行设置。...=(-c) 等方式,是 Bazel 版本内置,而用户自定义的编译设置可以在 .bzl 文件实现,不需要重新编译 Bazel 源码就可以实现 我们最终实现: $ bazel build //my:binary...4 自定义构建设置的实现和实例化 同我们之前文章介绍的自定义规则一样,自定义构建设置规则也需要有实现,即 implementation = _string_impl _string_impl 函数。...当然,如果你定义 week 目标(构建设置)的时候,不设置 values 属性,则对命令行传入的值没有限制。 注意:传递自定义命令行参数时 -- 是紧跟构建设置目标的。...5 自定义规则绑定自定义构建设置 比如我们定义了一个 date 规则,我们在构建 date 的目标时,希望能够在命令行获取 week 参数,则我们需要在 date 的规则实现能够获取 week 的配置值

2.5K40
  • 自定义工具链

    为了简化 $ bazel build 命令,可以将默认配置项写入 .bazelrc 文件: build:compiler_config --crosstool_top=//toolchains/cpp...第一章所述,平台是这些约束的指定选择集合,表示在某些环境可用的特定资源。 将环境建模为平台有助于 Bazel 为构建操作自动选择适当的工具链。...当然你也可以自己自定义Bazel 附带以下特殊的平台定义 :@local_config_platform//:host。会自动检测主机平台的值:表示 Bazel 运行的系统的平台。...3.1.4 指定平台构建 你可以使用以下命令标志为构建指定主机和目标平台: --host_platform:默认为 @bazel_tools//platforms:host_platform --platforms...用户通过在 WORKSPACE 文件调用 `register_toolchains`[3] 函数或者在命令传递 --extra_toolchains 标志来注册他们想要使用的工具链。

    4.6K31

    0490-如何为GPU环境编译CUDA9.2的TensorFlow1.8与1.12

    作者:李继武 1 文档编写目的 从CDSW1.1.0开始支持GPU,具体可以参考Fayson之前的文章《如何在CDSW中使用GPU运行深度学习》,从最新的CDSW支持GPU的网站上我们可以查到相应的Nvidia...2 安装编译过程需要的包及环境 此部分两个版本的操作都相同 1.配置JDK1.8到环境变量 ?...在该目录下执行下面命令将cudnn添加到cuda的库: sudo cp cuda/include/cudnn.h /usr/local/cuda/include sudo cp cuda/lib64/.../bazel-0.19.2-installer-linux-x86_64.sh --user 该--user标志Bazel安装到$HOME/bin系统上的目录并设置.bazelrc路径$HOME/.bazelrc...使用该--help 命令可以查看其他安装选项。 ? 显示下面的提示表示安装成功: ? 如果使用--user上面的标志运行Bazel安装程序,则Bazel可执行文件将安装在$HOME/bin目录

    3.5K30

    扩展 Bazel 的构建语言

    BUILD 的三个阶段 了解如何在两个 BUILD 文件之间共享变量。...它可以访问 Bazel 内部信息,并完全掌控将要处理的内容。例如,它可以将信息传递给其他规则。 如果您想重复使用简单的逻辑,请从宏开始。如果宏变得复杂,通常最好使其成为规则。...规则实例化,将其添加到图表。 分析阶段。执行规则的代码(其 implementation 函数),并将操作实例化。...一个操作描述了如何从一组输入生成一组输出,“在 hello.c 上运行 gcc 和获取 hello.o”。分析阶段接受由加载阶段生成的图并生成操作图。 执行阶段。...如果文件缺失,或者某个命令无法生成一条输出,则构建会失败。在此阶段可选运行测试。

    1.7K10

    自定义规则实现将多个静态库合并为一个动态库或静态库

    1 前言 2 自定义规则实现 2.1 规则功能 2.2 实现规则的理论基础 2.3 规则代码实现 3 总结 4 参考资料 1 前言 为了实现标题所述的将多个静态库合并为一个动态库,内置的 Bazel...ld 命令。...:将一个字符串写入文件 ctx.actions.expand_template :从模板文件创建一个文件 因此我们可以通过创建一个运行脚本命令的 Action 来运行上面所述的打包命令,即使用 ctx.actions.run_shell...通常用于从 rules 和 aspects 的传递依赖积累数据。depset 的成员必须是可散列的(hashable),并且所有元素都是相同类型。...最后在实现自定义规则中将多个静态库合并为一个动态库示例,这里有几个点我们需要注意下: 在实现我们中间文件的拷贝过程,如果最后没有实现输出 output Action,那么中间文件也不会产生,这在我调试过程带给了我一阵疑惑

    5.2K20

    Jetson TX1上安装Tensorflow Serving遇到的问题总结

    (2) 执行bazel clean --expunge && export TF_NEED_CUDA=1 (3) 再执行bazel query 'kind(rule, @local_config_cuda...的libevent目标;这个目标里会执行多条shell命令,大致是先将libevent工程拷到/tmp/libevent.xxx目录,然后再在/tmp/libevent.xxx目录里编译,并将结果install...,Makefile等文件是动态生成的,这也是修改Makefile等文件不生效的原因;bazel在执行每个目标(libevent)前,会先把此目标的输出(libevent.a)都删除,然后在执行后,再检测输出的文件是否存在...(libevent.a),如果不存在是会报错的。...(4) 然后再次修改third_party/libevent.BUILD的libevent目标,将cmd全删掉,再加一条cp -r命令将暂存的libevent内容拷回原输出目录(注意用绝对路径),再重新编译就成功了

    2.7K40

    Bazel 7 发布:全新模块化依赖管理、无字节构建与多目标构建性能提升

    作者 | Sergio De Simone 译者 | Sambodhi 策划 | 丁晓昀 最近在 BazelCon 23 上宣布,Bazel 7 推出了多年来一直在开发的一系列新功能,其中包括全新的模块化外部依赖管理系统...Bzlmod 现在默认启用,这意味着如果一个项目没有 MODULE.bazel 文件,Bazel 将创建一个空文件。...虽然 Bazel 7 仍然与之前的系统兼容,但开发者应在 Bazel 8 发布之前进行 迁移 到 Bzlmod。...这一变化旨在简化所有规则集中的工具链解析 API,从而省去语言特定标志 --android_cpu 和 --crosstool_top。...Android 项目需要停止使用传统标志 --fat_apk_cpu,而改用使用以 @platforms//os:android 约束定义的平台的 --android_platforms。

    16710

    Bazel 7 发布:全新模块化依赖管理、无字节构建与多目标构建性能提升

    作者 | Sergio De Simone 译者 | Sambodhi 策划 | 丁晓昀 最近在 BazelCon 23 上宣布,Bazel 7 推出了多年来一直在开发的一系列新功能,其中包括全新的模块化外部依赖管理系统...Bzlmod 现在默认启用,这意味着如果一个项目没有 MODULE.bazel 文件,Bazel 将创建一个空文件。...虽然 Bazel 7 仍然与之前的系统兼容,但开发者应在 Bazel 8 发布之前进行 迁移 到 Bzlmod。...这一变化旨在简化所有规则集中的工具链解析 API,从而省去语言特定标志 --android_cpu 和 --crosstool_top。...Android 项目需要停止使用传统标志 --fat_apk_cpu,而改用使用以 @platforms//os:android 约束定义的平台的 --android_platforms。

    30510

    图像识别

    这是计算机视觉的一项标准任务,其中模型尝试将整个图像分为1000个类,“斑马”,“达尔马提亚”和“洗碗机”。例如,以下是AlexNet对一些图像进行分类的结果: ?...如果您按照 说明下载适用 于您的平台的TensorFlow的源代码安装,您应该能够通过从您的shell终端运行此命令来构建该示例: bazel build tensorflow/examples/label_image...我们希望这段代码可以帮助您将TensorFlow集成到您自己的应用程序,因此我们将逐步介绍主要功能: 命令标志控制文件的加载位置以及输入图像的属性。...您可能会注意到我们b.opts()作为最后一个参数传递给所有op创建函数。该参数确保将节点添加到模型定义GraphDefBuilder。我们也打电话给ReadFile 运营商。...这是一个在C ++动态创建小TensorFlow图的简单示例,但是对于预先训练的Inception模型,我们要从文件中加载更大的定义。你可以看到我们如何在LoadGraph()函数这样做。

    19.4K80

    Keras正式从TensorFlow分离:效率大幅提升

    Keras 官网地址:https://keras.io/ 为了训练自定义神经网络,Keras 需要一个后端,在 v1.1.0 版本之前,Keras 的默认后端都是 Theano。...因此现在在本地运行 Keras Bazel 测试只需要几分钟,而不是几小时。 变更之后,当前 TensorFlow 代码库的 Keras 部分将很快被删除。这意味着: 1....任何在先前代码库未解决的 Keras 相关活跃问题将在现有的 ticket 线程处理,并将通过提交到新代码库进行修复; 4. 与原代码库相关的陈旧问题将被关闭。...如果更改很小,文档修复简单的 bug 修复,则只需打开 PR 无需讨论。 与个人用户不同,企业用户提交的贡献需要遵守《谷歌软件授权与企业贡献者许可协议》。...设置和检查本地工作区 以苹果 Mac 电脑(Linux 系统的配置非常相似)为例,使用如下命令设置并检查本地工作区的配置: ?

    1.3K20

    手把手:我的深度学习模型训练好了,然后要做啥?

    =host liubowei/simple-ml-serving:latest /bin/bash >>> cat test.sh && bash test.sh 这将进入容器内部的交互式shell并运行上述命令...现在,tensorflow已经将模型信息保存到/tmp/output_graph.pb和/tmp/output_labels.txt,这些作为命令行参数传递给label_image.py脚本。...解决方法是把with命令去掉,传递一个sess变量到run_graph: def run_graph(image_data, labels, input_layer_name, output_layer_name...但是,设置自定义的DNS服务器已经超出了本文的范围。...o 一旦你在生产中得到了一些不同的ML模型,你可能会开始想要混合和匹配不同的用例——只有在模型B不确定的情况下才运行模型A,在Caffe运行模型C并将结果传递给模型D在Tensorflow 等等。

    1.6K20
    领券