Cocos2dx-Android 之Makefile通用進階寫法

來源:互聯網
上載者:User

標籤:cocos2dx   android   makefile   通用進階寫法   

不廢話,直接貼,節約時間。需要改進的地方請各位指出,共同學習。

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := cocos2dcpp_sharedLOCAL_MODULE_FILENAME := libcocos2dcpp#########################################################################################################手動遍曆檔案夾以及子目錄########################################################這是第一種很麻煩的寫法#################################XLOCAL_C_INCLUDES := #                    $(LOCAL_PATH)/hellocpp #                    $(LOCAL_PATH)/../../Classes##XLOCAL_CPPS       := #                    $(wildcard $(LOCAL_PATH)/hellocpp/*.cpp) #                    $(wildcard $(LOCAL_PATH)/../../Classes/*.c) #                    $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)##XLOCAL_SRC_FILES := $(XLOCAL_CPPS:$(LOCAL_PATH)/%=%)##LOCAL_C_INCLUDES       += $(XLOCAL_C_INCLUDES)#LOCAL_SRC_FILES        := $(XLOCAL_SRC_FILES)########################################################################################################################################################################################自動遍曆檔案夾以及子目錄########################################################這是第二種比較方便的寫法############################### 遍曆目錄及子目錄的函數  #define walk  #    $(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))  #endef  ### 遍曆Classes目錄  #ALLFILES = $(call walk, $(LOCAL_PATH)/../../Classes)  #                     #FILE_LIST := hellocpp/main.cpp  ## 從所有檔案中提取出所有.cpp檔案  #FILE_LIST += $(filter %.cpp, $(ALLFILES))  #  #LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)  #LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes #                    $(LOCAL_PATH)/../../Classes/LogClass########################################################################################################################################################################################自動遍曆檔案夾以及子目錄(源檔案和標頭檔)##########################################這是第三種之相對最方便的寫法############################ 配置自己的源檔案目錄和源檔案尾碼名APP_FILES_PATH  :=  $(LOCAL_PATH)                     $(LOCAL_PATH)/../../ClassesAPP_FILES_SUFFIX := %.cpp %.c# 遞迴遍曆目錄下的所有的檔案rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))# 擷取相應的源檔案APP_ALL_FILES := $(foreach src_path,$(APP_FILES_PATH), $(call rwildcard,$(src_path),*.*) ) APP_ALL_FILES := $(APP_ALL_FILES:$(APP_CPP_PATH)/./%=$(APP_CPP_PATH)%)APP_SRC_LIST  := $(filter $(APP_FILES_SUFFIX),$(APP_ALL_FILES)) APP_SRC_LIST  := $(APP_SRC_LIST:$(LOCAL_PATH)/%=%)# 去除字串的重複單詞define uniq =  $(eval seen :=)  $(foreach _,$1,$(if $(filter $_,${seen}),,$(eval seen += $_)))  ${seen}endef# 遞迴遍曆擷取所有目錄APP_ALL_DIRS := $(dir $(foreach src_path,$(APP_FILES_PATH), $(call rwildcard,$(src_path),*/) ) )APP_ALL_DIRS := $(call uniq,$(APP_ALL_DIRS))# 賦值給NDK編譯系統LOCAL_SRC_FILES  := $(APP_SRC_LIST)LOCAL_C_INCLUDES := $(APP_ALL_DIRS)###############################################################################LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_staticLOCAL_WHOLE_STATIC_LIBRARIES += box2d_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocosbuilder_staticLOCAL_WHOLE_STATIC_LIBRARIES += spine_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_staticinclude $(BUILD_SHARED_LIBRARY)$(call import-module,.)$(call import-module,audio/android)$(call import-module,Box2D)$(call import-module,editor-support/cocosbuilder)$(call import-module,editor-support/spine)$(call import-module,editor-support/cocostudio)$(call import-module,network)$(call import-module,extensions)


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.