22

我正在使用该mm命令在 Android 源代码中构建自定义模块。

当我运行mm clean时,似乎整个项目都被清理了。

如何将清理限制为仅当前模块?

4

5 回答 5

36

使用mm -B,它将全部重建,相当于clean然后make。

于 2013-10-23T05:25:40.500 回答
8

没有 mm 的另一种方法是make clean-<target name>从 Android 源的根目录中提供。

同样,您可以单独构建所需的模块make <target name>

于 2013-12-17T12:06:21.257 回答
5

在旧的基于 make 的 AOSP 构建系统上,使用

mm -B

重建模块。

在较新的基于 Ninja+Soong 的 AOSP 构建系统上,似乎-B不再有效。它给出了错误Unknown option: -B

一种可能的替代方法是使用NINJA_ARGS环境变量将额外的 Ninja 参数传递给底层构建引擎。

例如,以下命令删除所有输出和中间文件:

NINJA_ARGS="-t clean" mm

在这种情况下, clean是 Ninja 构建系统的一个额外工具。有关其他工具,请参阅https://ninja-build.org/manual.html#_extra_tools

需要注意的一件事是clean工具似乎清除了模块的所有依赖项,而不是模块本身。我还没有找到一种方法来分配规则以将清理范围仅限于模块。

参考:https ://android.googlesource.com/platform/build/soong/+/HEAD/docs/best_practices.md

于 2019-08-08T01:35:11.533 回答
0

make <lib> 2>&1 | grep -e "install"

这将生成并打印所有重新编译的库。

于 2014-09-23T21:12:07.570 回答
0

在模块名称前加上“clean-”前缀将在 Android 中进行干净构建

例如,m clean-libskia

于 2020-03-20T11:36:33.097 回答