您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x 3.0 android mk文件 之 自动遍历*.cpp文件

2014-12-23 23:26 477 查看


时间 2014-05-13 16:16:34  CSDN博客

原文  http://blog.csdn.net/shun_fzll/article/details/25718893

还记得上一篇android mk 文件的写法吗? 传送门,

我们需要手动去添加 cpp文件,如果cpp一多,那不是要累死?
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/ClipingNodeLayer.cpp\
../../Classes/MainScene.cpp\
../../Classes/MenuTab.cpp

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes

LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static          # 添加 cocos_extension 静态库
LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static		# 添加 cocostudio 静态库

include $(BUILD_SHARED_LIBRARY)

$(call import-module,2d)
$(call import-module,audio/android)
$(call import-module,Box2D)
$(call import-module,extensions)				# 导入 extensions 模块
$(call import-module,editor-support/cocostudio)			# 导入 cocostudio 模块


  看了网上许多大神的博客,才发现还可以这样子自动遍历cpp,比如上面这个mk文件,只需要把
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/ClipingNodeLayer.cpp\
../../Classes/MainScene.cpp\
../../Classes/MenuTab.cpp

改为
# 遍历目录及子目录的函数
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)/%=%)


其他部分不变。恩然后就行了。。

改完之后完整android mk 文件如下:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

# 遍历目录及子目录的函数 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_WHOLE_STATIC_LIBRARIES := cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static # 添加 cocos_extension 静态库
LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static # 添加 cocostudio 静态库

include $(BUILD_SHARED_LIBRARY)

$(call import-module,2d)
$(call import-module,audio/android)
$(call import-module,Box2D)
$(call import-module,extensions) # 导入 extensions 模块
$(call import-module,editor-support/cocostudio) # 导入 cocostudio 模块
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: