編寫 android.mk 中 LOCAL_C_INCLUDES 的技巧

編寫 android.mk 中 LOCAL_C_INCLUDES 的技巧

已廢棄, 請參考Update: Android.mk 中的 LOCAL_SRC_FILES, LOCAL_C_INCLUDES

在編寫android.mk的過程中,免不了要修改LOCAL_C_INCLUDES來設置頭文件的include目錄, 一般寫成這樣

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \
                     $(LOCAL_PATH)/../../Classes/game \
                     $(LOCAL_PATH)/../../Classes/logic \
                     $(LOCAL_PATH)/../../Classes/view

有一個目錄就要寫一行, 實在繁瑣, 有沒有寫法可以把源碼目錄下的所有子目錄都引入呢, 看下面

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
LOCAL_C_INCLUDES += $(shell ls -FR $(LOCAL_C_INCLUDES) | grep $(LOCAL_PATH)/$ )
LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES:$(LOCAL_PATH)/%:=$(LOCAL_PATH)/%)

即可把$(LOCAL_PATH)/../../Classes目錄和子目錄全部包含進來

還有一種寫法, 就是使用sed命令, 效果是一樣的, 我對sed不是很熟悉, 簡單寫了一下

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes    LOCAL_C_INCLUDES += $(shell ls -FR $(LOCAL_C_INCLUDES) | grep $(LOCAL_PATH)/$ | sed "s/:/ /g" )

這兩行和上面三行的結果是一樣的

如果要方便的引入源文件到android.mk文件裏, 可以參考我的這篇post:編寫Android.mk中的LOCAL_SRC_FILES的終極技巧

以上代碼在 mac + NDK r8e 下測試通過


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章