我试图构建一个外部项目,使用Bazel作为它的构建系统,从CMake与忍者。我是通过使用ExternalProject_Add
来做到这一点的。
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的进度报告打印到终端。这可能是有关联的。
发布于 2022-03-14 18: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
目标)。
https://stackoverflow.com/questions/71476058
复制相似问题