如何使用 soong 命名空间来有条件地编译模块



我正在将 Android.mk 文件转换为Android.bp。该文件 Android.mk 动态链接/my/example/dir 中的库,选择是否使用在其他地方设置的环境变量基于条件链接它们。.bp 文件不允许条件,所以我正在尝试使用 soong_namespaces 复制此行为。

当我将 soong 命名空间添加到目录/my/example/dir/A 和/my/example/dir/B 时,A 和 B 现在不再链接,但我不清楚如何有条件地链接它们。宋氏文献指出:

如果模块属于显式命名空间,则只有在将命名空间的名称添加到变量的值后,才能从 makefile 引用PRODUCT_SOONG_NAMESPACES模块。

因此,在 BoardConfig.mk 中,我有条件地将/my/example/dir/A 或/my/example/dir/B 添加到PRODUCT_SOONG_NAMESPACES,但这样做后都没有链接。我这样做不正确还是这不是宋命名空间可以做的事情?

我相信PRODUCT_SOONG_NAMESPACES期望从树根开始的相对路径,而不是您指定的绝对路径。

例如,如果你的树生活在/my,你将设置

PRODUCT_SOONG_NAMESPACES := example/dir/A

最新更新