2012-04-02 13 views
10

Nella scrittura di un file .mk di Android, c'è un modo breve per includere molti file sorgente che si trovano in cartelle e sottocartelle diverse? Come un loop o un codice per iterare le cartelle? Per esempio:File Android.mk - inclusi tutti i file sorgente in diverse cartelle e sottocartelle

cartella1

| --- subfolder1.1

 |---subfolder1.1.1 

       |---some cpp files 

     |--subfolder1.1.2 

      |--some cpp files 

cartella2

| --- subfolder2.1

 |--subfolder2.1.1 

      |--some cpp files 

| - (e così via, altre cartelle e sottocartelle e cpp file)

So che posso utilizzare includono $(call all-subdir-makefiles) per cartelle e sottocartelle, ma ci vorrà troppo tempo se ho tante cartelle, c'è un modo migliore? Come un ciclo per iterare attraverso le cartelle? Così avrò una sola libreria per Folder1 e un altro per folder2 e così via ...

risposta

7

È possibile utilizzare ** jolly per includere i file da tutte le sottodirectory:

LOCAL_SRC_FILES += $(patsubst $(LOCAL_PATH)/%, %, $(wildcard folder/**/*.cpp)) 
22
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)/%=%) 
Problemi correlati