问题标签 [bazel-rules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
243 浏览

bazel - 从 Bazel 中的目标/提供者列表中提取/收集文件的最有效方法是什么?

随着我的进步,我正在编写一些规则并学习 Starlark。

假设我有自己的提供者:

然后我有一个需要这些的生成器规则:

在我的实现中,我发现我需要做一些解包来获取文件:

有没有更有效的方法来执行收集?

至于我为什么这样做,生成器实际上需要一个特殊的文件列表,如下所示:

FWIW,这是一个如何使用的示例:

a/BUILD

b/BUILD

0 投票
1 回答
175 浏览

bazel - 从配置文件中读取规则参数值

考虑以下写在WORKSPACE文件中的 bazel 规则:

问题是标签值1.8.2是写在yaml配置文件中的,我们要尊重 DRY 原则(从配置文件中读取值,而不是复制 bazel 文件中的值)。有没有办法处理这个?

0 投票
4 回答
4413 浏览

bazel - Bazel 一次构建多个目标

我想要一个能够一次构建多个目标的 Bazel 规则。所以基本上是这样的:

所以我会跑

用一个简单的命令构建我的所有服务(测试也是如此)。但我找不到任何当前的解决方案。

有没有办法做到这一点?

0 投票
1 回答
900 浏览

bazel - Bazel 用于带有“bootstrap->configure->make”构建的软件包?

我正在尝试从 Bazel 构建中使用libhttpserver以及扩展的libmicrohttpd 。这些库的构建过程似乎是这样的:

configure && make在更经典的工作流程上,这是我以前从未见过的轻微变化。

  • 有没有人设法让这样的图书馆在 Bazel 下工作?
  • 有人有我可以借鉴的公开例子吗?

我发现最接近支持这一点的是@rules_foreign_cc//tools/build_defs:configure.bzl#configure_make,但这似乎没有引导步骤的概念。即使破解它似乎也不起作用,因为bootstrap脚本最终失败了:

我即将准备好伸手去拿一个genrule(),但这似乎很容易出错......

0 投票
1 回答
869 浏览

bazel - 用于编译“怪物”示例的最小 Bazel BUILD 和 WORKSPACE 文件,包括 sample_text.cpp

我是 FlatBuffers 和 Bazel 的新手。任何人都可以发布一个最小的例子来编译 flatc 本身,monster_generated.h 文件,然后是 sample_text.cpp?

当我运行时:

  • bazel 构建平面缓冲区:flatc

我收到以下错误:

  • 无法找到 @rules_cc//cc:defs.bzl 的包:无法解析存储库“@rules_cc”。

然后我暂时使用 CMake 构建 flatc,然后继续使用 Bazel 构建 sample_text.cpp。我想我在这里找到了一个最小的例子:

但是,当我运行时:

  • bazel 构建 flatbuffers-bazel:sample_binary

我得到:

  • 致命错误:找不到“monster_generated.h”文件

当我作弊并将monster_generated.h(用flatc手动制作,本身用CMake编译)的副本带入工作区,并将其添加到BUILD的srcs部分时,我得到:

  • cc_flatbuffers_compile 类型的每条规则都隐含地依赖于目标“@flatbuffers//:flatc”,但由于以下原因无法找到该目标:没有这样的包“@flatbuffers//”:无法解析存储库“@flatbuffers”

这可能是一个基本问题,因为它确实支持 Bazel,因此非常欢迎任何建议!

谢谢,

肖恩

0 投票
1 回答
1338 浏览

node.js - Bazel 与 lerna 和 yarn 工作区一起使用

许多人正在使用 lerna 和/或 yarn 工作区。

我想要么从它们迁移到 Bazel,要么只将它们与 Bazel 一起使用,以通过示例项目进行指导。

例如,目前,我有一个这样的目录结构,其中 foo 是快速服务器,bar 是 foo 使用的库,两者都基于 typescript。

我应该如何将它与 Bazel 对齐,就像你知道的那样,WORKSPACE、BUILD 及其内容?

有什么提示或例子吗?

谢谢!

0 投票
1 回答
581 浏览

tensorflow - 使用 bazel-buildfarm 构建 TensorFlow

我正在尝试使用远程执行+缓存和 bazel-buildfarm 从源代码构建 TensorFlow。我已经使用示例配置文件 @ https://github.com/bazelbuild/bazel-buildfarm设置了一个 bazel-buildfarm 服务器和工作程序(参见examples/目录)。

我在 TensorFlow 的源代码库中向 .bazelrc 添加了以下规则(主管负责人):

然后我./configure使用我知道本地非远程构建成功的选项运行。

我开始了 TensorFlow 构建:

此后不久,我收到此错误消息:

谁能帮我解释这个消息?我想弄清楚发生了什么以及如何让 TensorFlow 使用 bazel-buildfarm 进行构建。

0 投票
1 回答
342 浏览

tensorflow - Bazel-buildfarm - 指定工人的并发性

我正在尝试使用 bazel-buildfarm 构建 TensorFlow。我有一个服务器和一个使用https://github.com/bazelbuild/bazel-buildfarm提供的示例配置的单个工作人员设置(请参阅examples/目录)。唯一的工人在一台 72 核的机器上。

我遇到的问题是,一旦我开始构建,虽然构建目标已成功分派给工作人员,但工作人员并没有利用我所有的核心(甚至没有关闭)。当我启动 TensorFlow 构建时,我尝试--jobs=100在客户端上显式设置,但无济于事。

有谁知道如何让我的单个工人充分利用可用的处理能力?这需要在工作配置文件中明确指定吗?

0 投票
2 回答
867 浏览

bazel - 如何通过“ctx.actions.run(...)”调试由 Bazel 规则执行的“java_binary”目标?

我的工作区中有一个java_binary目标,稍后我将其作为可执行文件传递到ctx.actions.run规则内部。到目前为止,一切都很好。

现在我想java_binary在 Bazel 执行规则时调试它。为了附加调试器,我需要java_binary在调试模式下运行。到目前为止,我唯一想到的就是jvm_flagsjava_binary. 我能够让它发挥作用。但我想知道是否有一种方法可以从命令行实现它,而不是将其烘焙到java_binary.

是否可以在没有硬编码的情况下从命令行实现这一点jvm_flags

0 投票
1 回答
455 浏览

bazel - Bazel规范中的“加载”顺序还是仅仅因为实现?

我在使用 Bazel 构建 Go 项目时遇到了一个问题,发现它的根本原因是loadimport的顺序@io_bazel_rules_go

收到答案后,我参考了 Bazel 的官方文档,如果它是在规范中定义的,或者只是对实现的隐式依赖。我还不能检查所有官方文档,但听起来以下文档与这个问题相关,但load影响的顺序如何构建仍然很模糊;在我所经历的情况下,似乎较早的声明胜过后来的声明。

谁能澄清这是否是规范?