加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Cocos2dx-Android 之Makefile通用高级写法

发布时间:2020-12-14 16:25:24 所属栏目:百科 来源:网络整理
导读:LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := cocos2dcpp_shared LOCAL_MODULE_FILENAME := libcocos2dcpp ############################################################################### ##########################手动遍历

LOCAL_PATH := $(call my-dir)


include $(CLEAR_VARS)


LOCAL_MODULE := cocos2dcpp_shared


LOCAL_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)/../../Classes

APP_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),$(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_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_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static


LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocosbuilder_static

LOCAL_WHOLE_STATIC_LIBRARIES += spine_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static



include $(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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读