Что такое переменная LOCAL_GENERATED_SOURCES в файлах Android.mk? Что означает «генерируемые источники» как таковые? - PullRequest
0 голосов
/ 24 марта 2019

Я отслеживал правила в build/core/Makefile, чтобы понять, как генерируется system.img. Я столкнулся с правилом ниже:

INTERNAL_SYSTEMIMAGE_FILES := $(filter $(TARGET_OUT)/%, \
    $(ALL_GENERATED_SOURCES) \
    $(ALL_DEFAULT_INSTALLED_MODULES) \
    $(PDK_FUSION_SYSIMG_FILES) \
    $(RECOVERY_RESOURCE_ZIP)) \
    $(PDK_FUSION_SYMLINK_STAMP)

Я искал ALL_GENERATED_SOURCES в androidxref / 9.0.0_r3 и обнаружил, что для него установлено значение my_generated_sources в build/core/binary.mk

ALL_GENERATED_SOURCES += $(my_generated_sources)

, который в этом файле дополнительно установлен в LOCAL_GENERATED_SOURCES.

 my_generated_sources := $(LOCAL_GENERATED_SOURCES)

Я не понимаю, что это означает (я знаю, что LOCAL_SRC означает исходные файлы для сборки этого модуля, но я этого не понимаю).

Я пытался найти эту переменную в Android.mk, но результаты далеко не ясны.

Я запустил grep -Hrn LOCAL_GENERATED_SOURCES external/ | less и нашел несколько файлов Android.mk, которые используют LOCAL_GENERATED_SOURCES.

Я проследил несколько файлов, например external/mesa3d/src/mesa/program/Android.mk, и нашел две соответствующие ему строки:

LOCAL_GENERATED_SOURCES := \
    $(addprefix $(intermediates)/program/,$(generated_sources_basenames))

и

LOCAL_GENERATED_SOURCES += $(MESA_GEN_NIR_H) \
        $(MESA_GEN_GLSL_H)

Кто-нибудь раньше отслеживал Makefile-файлы AOSP (чтобы понять, как создаются .img), или есть лучший / правильный способ сделать это?

...