我正在使用mm
命令在Android源代码中构建自定义模块。
当我运行mm clean
时,似乎整个项目都已清理。
如何将清洁限制在当前模块中?
答案 0 :(得分:35)
使用mm -B
,它将重建所有,相当于clean,然后make。
答案 1 :(得分:7)
另一种没有mm的方法是从Android源的根目录中提供make clean-<target name>
。
同样,您可以使用make <target name>
答案 2 :(得分:0)
make <lib> 2>&1 | grep -e "install"
这将打印并打印所有重新编译的库。
答案 3 :(得分:0)
在较早的基于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
答案 4 :(得分:0)
在模块名称前面加上“ clean-”将在Android中进行干净构建
例如, m clean-libskia