通过前面的分析引入soong后编译流程变成,所有的Android.bp文件被扫描(具体的列表在out/.module_paths/Android.bp.list)生成build.ninja和Android-aosp_arm.mk文件,kati扫描main.mk组织所有的makefile文件生成out/build-aosp_arm.ninja文件,最后将两个ninja文件合成一个combined-aosp_arm.ninja
ninja make.png由于soong在运行扫描所有的module,最后建立module之间的依赖关系,因此android.bp之间的先后顺序不影响后续的ninja文件生成。各个makefile之间的引用顺序如下图
main.mk1.png
在我们日常配置的AndroidProduct.mk和Boardconfig.mk文件在build/core/envsetup.mk中顺序引用,还有所有的Andriod.mk文件扫描产生的Android.mk.list在out/.module_paths下,其中这个文件的列表中包含了AndroidBoard.mk
网友评论