我是Bazel的新手,并且对Bazel宏有疑问。我正在寻找构建我们构建的最佳方法。
是否可以遍历包含构建规则细节的列表? 例如,我有一个包含srcs,deps,hdrs,name等的列表。此列表组合成一个较大的列表,其中包含我要创建的创建一个组件的所有模块。
如果可能的话,有人可以举一个简短的示例,说明代码中的外观吗?
感谢您的时间
答案 0 :(得分:1)
好吧,我明白了
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构建:all