gpt4 book ai didi

Bazel 获取外部依赖的位置作为 py_binary 的命令行参数

转载 作者:行者123 更新时间:2023-12-05 05:04:22 26 4
gpt4 key购买 nike

我需要外部(或内部)依赖项的路径,以将其作为参数传递给内部函数。我们需要文件夹的位置,而不是特定文件。此外,有时,我们需要由 cc_library 生成的共享库所在文件夹的路径。

Python文件

import cppyy
cppyy.add_include_path('path/to/external/dependency/1')
cppyy.add_library_path('path/to/another/external/dependency/2')
cppyy.add_include_path('path/to/another/internal/dependency')
cppyy.include('file/in/external/dependency')

构建文件

py_binary(
name = "sample",
srcs = ["sample.py"],
deps = [
"@cppyy_archive//:cppyy",
],
data = [
"@external-dependency//location:target",
"//internal-dependency/location:target2"
]
)

最佳答案

来自 https://docs.bazel.build/versions/master/external.html#layout :

You can see the external directory by running:

ls $(bazel info output_base)/external

external 中的路径实际上看起来如何取决于用于存档的规则。例如,如果它是在 WORKSPACE 文件中使用 http_file 声明的:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
http_file(
name = "fenix",
urls = ["https://github.com/mozilla-mobile/fenix/archive/v76.0.0-beta.2.tar.gz"],
sha256 = "94050c664e5ec5b66cd2ca9f6a8b898987ab63d9602090533217df1a3f2dc5a9"
)

您会发现 v76.0.0-beta.2.tar.gz 文件为 external/fenix/file/downloaded:

user@host:~$ file $(bazel info output_base)/external/fenix/file/downloaded                 
/home/user/.cache/bazel/_bazel_user/761044447e04744e746cd54d0b4b5056/external/fenix/file/downloaded: gzip compressed data, from Unix, original size modulo 2^32 15759360

关于Bazel 获取外部依赖的位置作为 py_binary 的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61126817/

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