Файл Android.mk - включая все исходные файлы в разных папках и подпапках

При написании файла android.mk есть ли короткий путь для включения многих исходных файлов, которые находятся в разных папках и подпапках? Как цикл или код для итерации папок? Например:

папка1

| --- subfolder1.1

      |---subfolder1.1.1

               |---some cpp files

      |--subfolder1.1.2

           |--some cpp files

folder2

| --- subfolder2.1

      |--subfolder2.1.1

           |--some cpp files

| - (так далее и т.д., другие папки и подпапки и cpp файлы)

Я знаю, что я могу использовать include $(call all-subdir-makefiles) для папок и подпапок, но это займет слишком много времени, если у меня будет так много папок, есть ли лучший способ? Как цикл для итерации через папки? Поэтому у меня будет только одна библиотека для папки1, а другая для папки2 и т.д.

Ответ 1

FILE_LIST := $(wildcard $(LOCAL_PATH)/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/**/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/**/**/*.cpp)
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)

Ответ 2

Вы можете использовать ** подстановочный знак для включения файлов из всех подкаталогов:

LOCAL_SRC_FILES += $(patsubst $(LOCAL_PATH)/%, %, $(wildcard folder/**/*.cpp))