Добавьте правило make к основной марке AOSP
Я добавил новый подпроект C++ в frameworks/base/cmds/myproject
и у него есть свой Android.mk
файл. Когда я бегу make myproject
Скомпилируется хорошо и без проблем.
Однако я хочу добавить make myproject
На главную make
, Я имею в виду, когда кто-то бежит make
в корне AOSP, мой проект также будет включен. Что я должен делать?
1 ответ
Тебе нужен твой Android.mk
файл для вызова. Существуют различные способы сделать это в зависимости от ваших потребностей.
Если вы хотите, чтобы ваш myproyect
быть скомпилированным для нескольких устройств под device/
, а затем искать общий mk
файл. Например, вот как Qualcomm делает это, вы можете скопировать его для 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
и вам не нужно ждать всей компиляции, если она выдаст что-то в первые секунды, все готово.
Для дополнительной информации вы можете посмотреть, как Qualcomm организует свои device
папка, с common
а также base
МК файлы. Взгляните на их открытый исходный код здесь