【问题标题】:How to use soong namespaces in order to conditionally compile modules如何使用 soong 命名空间来有条件地编译模块
【发布时间】:2020-07-01 16:35:29
【问题描述】:

我正在将 Android.mk 文件转换为 Android.bp。 Android.mk 文件动态链接 /my/example/dir 中的库,使用在别处设置的环境变量根据条件选择是否链接它们。 .bp 文件不允许使用条件,因此我尝试使用 soong_namespaces 复制此行为。

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

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

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

【问题讨论】:

  • 你有任何代码示例吗?另请查看How to Ask

标签: c++ makefile android-soong


【解决方案1】:

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

例如如果你的树住在/my,你会设置

PRODUCT_SOONG_NAMESPACES := example/dir/A

【讨论】:

  • 也许将推荐的更新添加为您的答案的一部分,以说明并使其不仅仅是评论。
猜你喜欢
  • 2011-02-05
  • 1970-01-01
  • 2020-07-14
  • 1970-01-01
  • 2013-06-22
  • 2011-12-03
  • 1970-01-01
  • 1970-01-01
  • 2017-06-11
相关资源
最近更新 更多