gpt4 book ai didi

bazel - 如何在bazel中创建目录结构

转载 作者:IT王子 更新时间:2023-10-29 00:37:05 27 4
gpt4 key购买 nike

我想在 bazel 中创建以下结构。

dir1
|_ file1
|_ file2
|_ dir2
|_file3

创建一个特定的结构似乎并不简单。我希望有一个简单且可重复使用的规则。像这样的东西:

makedir(
name = "dir1",
path = "dir1",
)

makedir(
name = "dir2",
path = "dir1/dir2",
deps = [":dir1"],
)

我尝试过的:

  • 我可以用 python 脚本创建一个宏,但想要更简洁的东西。
  • 我尝试使用 mkdir -p path/to/directoy 创建一个 genrule,但没有用

用例是我想创建一个squashfs使用 bazel。

重要的是要注意 Bazel provides some packaging功能。

收件人create a squashfs ,该命令需要一个包含工件的目录结构。

最佳答案

在我的例子中,我想创建一个目录结构并运行 mksquashfs 来生成一个 squashfs 文件。

为此,我最终修改了 bazel's docs on packaging 中的基本示例.

load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")

genrule(
name = "file1",
outs = ["file1.txt"],
cmd = "echo exampleText > $@",
)

pkg_tar(
name = "dir1",
strip_prefix = ".",
package_dir = "/usr/bin",
srcs = [":file1"],
mode = "0755",
)

pkg_tar(
name = "dir2",
strip_prefix = ".",
package_dir = "/usr/share",
srcs = ["//main:file2.txt", "//main:file3.txt"],
mode = "0644",
)

pkg_tar(
name = "pkg",
extension = "tar.gz",
deps = [
":dir1",
":dir2",
],
)

如果有一种更简单的方法来创建 tar 或目录结构而不需要中间 tar,我会做出最佳答案。

关于bazel - 如何在bazel中创建目录结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54681716/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com