我在frameworks/base/cmds/myproject
添加了一个新的C ++子项目,它有自己的Android.mk
文件。当我运行make myproject
时,它会很好地编译,没问题。
但我想将make myproject
添加到主make
。我的意思是,当有人在AOSP的根目录运行make
时,我的项目也会包括在内。我该怎么办?
答案 0 :(得分:4)
您需要调用Android.mk
文件。根据您的需要,有多种方法可以这样做。
如果您希望为myproyect
下的几个设备编译device/
,请查找常用的mk
文件。例如,高通公司就是这样做的,您可以将其复制到AOSP。
device/common/common.mk
device/common/common.mk
。 (这就是QCM的做法:$(call inherit-product, device/qcom/common/common.mk)
如果您只想要特定设备:
mini_emulator_x86-userdebug
编译mk
,device/generic/mini-emulator-x86
文件已mini_emulator_x86.mk
。PRODUCT_PACKAGES
按如下方式编辑或添加PRODUCT_PACKAGES += \
myproyect
:
source build/envsetup.sh
注意正确的缩进。
这样,当您执行lunch mini_emulator_x86-user
和make
然后myproyect.mk
时,您的myproject.mk
就会到达。
为了测试它:
$(warning MyProject MK has been called
文件:lunch mini_emulator_x86-user
make | grep MyProject
。device
并且您不需要等待整个编辑,如果在第一秒内输出内容,那么您就可以了。有关其他参考,您可以查看Qualcomm如何使用common
和base
mk文件组织其.categ
文件夹。看看他们的开源代码here