AOSP 现在有了新的构建系统,文件在很多地方都Android.bp被替换了Android.mk。
现在我想根据平台有条件地列出源文件。
说这样的话:
if(atom)
{
src: [
.......list of files.......
],
exclude_srcs: [
.......list of files.......
]
} else
{
src: [
.......list of files.......
],
exclude_srcs: [
.......list of files.......
]
}
Run Code Online (Sandbox Code Playgroud)
有什么建议如何实现这一目标?另外,如何在条件中实现诸如 等逻辑NOT运算OR?
提前致谢。
我试图找到一种在 .bp 文件中写入条件的方法。
我在这里找到了一个文档:https : //android.googlesource.com/platform/build/soong/+/HEAD/README.md
它有一个“我如何编写条件?” 部分,它指向 art.go:https ://android.googlesource.com/platform/art/+/master/build/art.go
这几乎不是上述问题的答案。它需要比简单的链接更多的说明。
我的 Android.bp 中有 cc_binary 用于我开发的模块 (HAL)。
cc_binary {
name: "name",
init_rc: ["script.rc"],
vintf_fragments: ["fragments.xml"],
relative_install_path: "path",
srcs: ["src1.cpp", "src2.cpp", ...],
shared_libs: ["sh_lib1", "sh_lib2", ...],
tstic_libs: ["lib1", "lib2", ...],
}
Run Code Online (Sandbox Code Playgroud)
我想添加一个条件 cflag (-DCONDITIONAL),如果环境变量 SOME_ENV_VAR 等于“some_value”,它将被设置为 1。
我在 AOSP 中发现了很多类似 *.go 文件的示例,但结果证明它们对我没有用,因为我不能简单地将那里描述的实践应用到我的案例中。我也没有找到任何关于 *.go 文件的文档,其中描述了如何使用它们做事。我什至找不到“最简单的用法示例”之类的东西。
有谁知道我在这里尝试做的事情有可能吗?