【轉】Update: Android.mk 中的 LOCAL_SRC_FILES, LOCAL_C_INCLUDES

來源:互聯網
上載者:User

標籤:des   android   style   blog   http   color   os   使用   ar   

看原文請移步:Update: Android.mk 中的 LOCAL_SRC_FILES, LOCAL_C_INCLUDES

我在先前的兩篇post 編寫Android.mk中的LOCAL_SRC_FILES的終極技巧

編寫 android.mk 中 LOCAL_C_INCLUDES 的技巧

中提到了一些編譯android.mk檔案的技巧, 由雩都涉及到了shell命令, 導致不能完全在windows下工作, 下面我使用純淨的makefile文法重新編寫了指令碼

# 配置自己的源檔案目錄和源檔案尾碼名MY_FILES_PATH  :=  $(LOCAL_PATH)                    $(LOCAL_PATH)/../../ClassesMY_FILES_SUFFIX := %.cpp %.c# 遞迴遍曆目錄下的所有的檔案rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))# 擷取相應的源檔案MY_ALL_FILES := $(foreach src_path,$(MY_FILES_PATH), $(call rwildcard,$(src_path),*.*) ) MY_ALL_FILES := $(MY_ALL_FILES:$(MY_CPP_PATH)/./%=$(MY_CPP_PATH)%)MY_SRC_LIST  := $(filter $(MY_FILES_SUFFIX),$(MY_ALL_FILES)) MY_SRC_LIST  := $(MY_SRC_LIST:$(LOCAL_PATH)/%=%)# 去除字串的重複單詞define uniq =  $(eval seen :=)  $(foreach _,$1,$(if $(filter $_,${seen}),,$(eval seen += $_)))  ${seen}endef# 遞迴遍曆擷取所有目錄MY_ALL_DIRS := $(dir $(foreach src_path,$(MY_FILES_PATH), $(call rwildcard,$(src_path),*/) ) )MY_ALL_DIRS := $(call uniq,$(MY_ALL_DIRS))# 賦值給NDK編譯系統LOCAL_SRC_FILES  := $(MY_SRC_LIST)LOCAL_C_INCLUDES := $(MY_ALL_DIRS)

完全使用makefile文法編寫, 可以工作在所有平台上

我已經在cocos2d-x中提交了一個pull request https://github.com/cocos2d/cocos2d-x/pull/3921, 希望能被整合到cocos2d-x的程式碼程式庫中, 以後使用就不需要自己修改了

【轉】Update: Android.mk 中的 LOCAL_SRC_FILES, LOCAL_C_INCLUDES

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.