gpt4 book ai didi

c - Bazel:使用宏从列表生成构建规则

转载 作者:行者123 更新时间:2023-11-30 14:46:11 26 4
gpt4 key购买 nike

我是 Bazel 新手,有一个关于 Bazel 宏的问题。我正在寻找构建我们的构建的最佳方法。

是否可以迭代包含构建规则细节的列表?例如,我有一个包含 srcs、deps、hdrs、name 等的列表。该列表被组合成一个更大的列表,其中包含我想要构建的所有模块(创建一个组件)。

如果可能的话,有人可以给出一个简短的例子吗?这在代码中看起来如何?

感谢您的宝贵时间

最佳答案

好的,我明白了:

Build.bazel 的内容:

load(":macro.bzl","buildmacro")
load(":SrcList.bzl","SrcLists","CommonDependencies")

[buildmacro(
current_module_name = Module[0][0],
current_module_srcs=Module[1],
current_module_hdrs=Module[2],
current_module_deps=Module[3] + CommonDependencies,
)for Module in SrcLists]

macro.bzl的内容:

def buildmacro(current_module_name,current_module_srcs,current_module_hdrs,current_module_deps):         
native.cc_library(
name = current_module_name,
deps = current_module_deps,
srcs = current_module_srcs,
hdrs = current_module_hdrs,

linkstatic = 1,
visibility = ["//visibility:public"],
)

SrcLists 文件示例:

listofcode  = [["nameofrule"]["srcfiles"]["headers"]["deps"]...]
listofcode2 = ...
SrcLists = [listofcode] + [listofcode2] ...

执行 bazel 构建:全部

关于c - Bazel:使用宏从列表生成构建规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52497812/

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