2 回答
TA贡献1846条经验 获得超7个赞
你已经发现了很多,你是对的链接 from mtosoong_ui.bash然后开始microfactory。
从我对代码的阅读来看, 的目的是使用二进制名称soong_build_go构建包。就像 Yong 在另一个答案中所说的那样,这会在目录下创建二进制文件,并且该二进制文件的源位于.android/soong/cmd/soong_uisoong_uisoong_ui$(getoutdir)build/soong/cmd/soong_ui/main.go
至于您更新的关于Android.bp文件的问题,它是从运行时开始符号链接的,但正如您所看到的,该文件是空的。build/soong/root.bprepo sync
相反,m它告诉 Soong 构建all_modules,最终运行另一个名为kati. 根据https://github.com/google/kati中的描述,Kati 处理 GNU makefile 并将它们转换为Ninja构建文件。
在这一点上,我们可以(大部分)假设常规的 Make 语义,即使底层构建系统实际上是 Kati 和 Ninja 和 Soong 等。由于工作目录是$TOP,因此使用符号Makefile链接的根目录build/make/core/root.mk。其中包括main.mk然后包括build/make/core/Makefile。在该 makefile 中,您可以看到不同.img文件是如何构建的(例如system.img)。
TA贡献1827条经验 获得超8个赞
我们以 make systemimage 为例:
调用顺序为:
prebuilts/build-tools/linux-x86/bin/makeparallel --ninja build/soong/soong_ui.bash --make-mode "systemimage"。$(getoutdir)/soong_ui 是由“build_go soong_ui android/soong/cmd/soong_ui”构建的
构建/soong/cmd/soong_ui/main.go#main()
宋/ui/build/build.go#Build()
- 2 回答
- 0 关注
- 238 浏览
添加回答
举报
