, 당신은 출력을 가리키는 심볼릭 링크를 생성, 명령을 실행, 사용자 정의 저장소 규칙을 작성하고 저장소에 대한 빌드 파일을 만들 수 있습니다
작업 영역 파일 :
workspace(name = "io_bazel")
load("//foo:repo.bzl", "llvm_configure")
llvm_configure(name = "local_config_llvm")
을
foo는/repo.bzl 다음의 repo에서
def _impl(repository_ctx):
result = repository_ctx.execute(["echo", "/tmp/dummy/path"])
llvm_path = result.stdout.splitlines()[0]
repository_ctx.symlink(llvm_path, "llvm-4.0")
repository_ctx.file("BUILD", """
filegroup(
name = "llvm_files",
srcs = glob(["llvm-4.0/**"]),
visibility = ["//visibility:public"],
)
""")
llvm_configure = repository_rule(
implementation=_impl,
local = True,
environ = [])
대상 :
,443,967,개
생성 된 파일 :
$ ls -la $(bazel info output_base)/external/local_config_llvm
total 16
drwxr-x--- 2 laszlocsomor eng 4096 May 12 13:06 .
drwxr-x--- 6 laszlocsomor eng 4096 May 12 13:06 ..
-rwxr-x--x 1 laszlocsomor eng 115 May 12 13:06 BUILD
lrwxrwxrwx 1 laszlocsomor eng 15 May 12 13:06 llvm-4.0 -> /tmp/dummy/path
-rw-r----- 1 laszlocsomor eng 116 May 12 13:06 WORKSPACE
$ cat $(bazel info output_base)/external/local_config_llvm/BUILD
filegroup(
name = "llvm_files",
srcs = glob(["llvm-4.0/**"]),
visibility = ["//visibility:public"],
)
$ cat $(bazel info output_base)/external/local_config_llvm/WORKSPACE
# DO NOT EDIT: automatically generated WORKSPACE file for llvm_configure rule
workspace(name = "local_config_llvm")
고마워, 나는 그것을 밖으로 시도합니다. – gruszczy