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

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

folder1

| --- 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) для папок и подпапок, но это займет слишком много времени, если у меня так много папок, есть ли лучший способ? Как цикл для итерации по папкам? Поэтому у меня будет только одна библиотека для folder1 и другая для folder2 и так далее ...

Ответы [ 2 ]

22 голосов
/ 06 мая 2012
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)/%=%)
7 голосов
/ 02 апреля 2012

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

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