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

标签 c build macros bazel

我是 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/

相关文章:

c - 从其他源文件访问结构

linux - 当我使用 Makefile 构建简单内核时出现 '__aeabi_STH' 错误

c++ - 从可变宏参数创建成员

macros - 试图重写一个丑陋的宏

C++定义可变宏

html - libxml2 HTML解析

c - 当结构定义具有指针时分配结构

c - 打印指向结构成员的指针的内容给出了意想不到的结果

c++ - 我的 C++ DLL 无法编译,除非我第一次打开项目(在 Netbeans 中)

qt - Qt 是否会在构建时使其自己的库的数字签名失效?