首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当从CMake (ExternalProject_Add)调用Bazel时,Bazel在生成后不会退出

当从CMake (ExternalProject_Add)调用Bazel时,Bazel在生成后不会退出
EN

Stack Overflow用户
提问于 2022-03-15 01:37:59
回答 1查看 112关注 0票数 0

我试图构建一个外部项目,使用Bazel作为它的构建系统,从CMake与忍者。我是通过使用ExternalProject_Add来做到这一点的。

代码语言:javascript
运行
复制
ExternalProject_Add(bazel_proj
  SOURCE_DIR "${bazel_proj_DIR}"
  CONFIGURE_COMMAND :
  CONFIGURE_HANDLED_BY_BUILD ON
  BUILD_COMMAND bazel build //:install
  INSTALL_COMMAND bazel run //:install
  BUILD_IN_SOURCE ON
  BUILD_ALWAYS ON
  USES_TERMINAL_BUILD ON
  USES_TERMINAL_INSTALL ON
  LOG_BUILD ON
  LOG_INSTALL ON
  LOG_OUTPUT_ON_FAILURE ON
  LOG_MERGED_STDOUTERR ON
  INACTIVITY_TIMEOUT 10
)

我试图将--worker_quit_after_build添加到build命令中,但是没有帮助。Bazel默认使用linux-sandbox派生策略。

解决这个问题的唯一方法是停止使用CTRL+C构建并重新开始,所以下次它将转到安装步骤!

我也无法让CMake把Bazel的进度报告打印到终端。这可能是有关联的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-15 02:05:04

Bazel有一个客户机/服务器模型,在该模型中,服务器保留用于后续的增量构建。所以这可能是因为服务器一直在附近。尝试使用--batch启动标志,它告诉bazel不要使用这个客户机/服务器模型:

bazel --batch build //:install

https://bazel.build/docs/user-manual#batch

请注意,bazel run //:install还将启动服务器。您也可以在那里添加--batch,但是它可能会有点慢,因为Bazel将重新分析构建。您可以直接运行install程序,这将类似于bazel-bin/install (取决于实际构建的//:install目标)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71476058

复制
相关文章

相似问题

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