Ответ 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)/%=%)
При написании файла 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 и т.д.
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)/%=%)
Вы можете использовать ** подстановочный знак для включения файлов из всех подкаталогов:
LOCAL_SRC_FILES += $(patsubst $(LOCAL_PATH)/%, %, $(wildcard folder/**/*.cpp))