2012-04-02 46 views
10

Khi viết tệp .mk android, có cách nào ngắn để bao gồm nhiều tệp nguồn nằm trong các thư mục và thư mục con khác nhau không? Giống như một vòng lặp hoặc một mã để lặp lại các thư mục? Ví dụ:Tệp Android.mk - bao gồm tất cả các tệp nguồn trong các thư mục và thư mục khác nhau

folder1

| --- subfolder1.1

 |---subfolder1.1.1 

       |---some cpp files 

     |--subfolder1.1.2 

      |--some cpp files 

folder2

| --- subfolder2.1

 |--subfolder2.1.1 

      |--some cpp files 

| - (v.v., một thư mục và thư mục con khác và cpp files)

Tôi biết tôi có thể sử dụng bao gồm $(call all-subdir-makefiles) cho thư mục và thư mục con nhưng sẽ mất quá nhiều thời gian nếu tôi có nhiều thư mục, có cách nào tốt hơn không? Giống như một vòng lặp để lặp qua các thư mục? Vì vậy, tôi sẽ chỉ có một thư viện cho folder1 và một cho folder2 và vân vân ...

Trả lời

7

Bạn có thể sử dụng ký tự đại diện ** để bao gồm tập tin từ tất cả các thư mục con:

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)/%=%) 
Các vấn đề liên quan