我添加了一个新的 C++ 子项目,frameworks/base/cmds/myproject
它有自己的Android.mk
文件。当我运行时make myproject
,它会编译得很好,没有问题。
但是我想添加make myproject
到 main make
. 我的意思是,当有人make
在 AOSP 的根目录下运行时,我的项目也将被包括在内。我应该怎么办?
我添加了一个新的 C++ 子项目,frameworks/base/cmds/myproject
它有自己的Android.mk
文件。当我运行时make myproject
,它会编译得很好,没有问题。
但是我想添加make myproject
到 main make
. 我的意思是,当有人make
在 AOSP 的根目录下运行时,我的项目也将被包括在内。我应该怎么办?
您需要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
and lunch mini_emulator_x86-user
then时make
,您的myproyect.mk
意愿就会被达成。
为了测试它:
myproject.mk
文件:$(warning MyProject MK has been called
lunch mini_emulator_x86-user
。make | grep MyProject
而且你不需要等待整个编译,如果它在第一秒输出了一些东西,你就可以开始了。如需更多参考,您可以查看 Qualcomm 如何组织他们的device
文件夹,withcommon
和base
mk 文件。在这里查看他们的开源代码