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

还记得上一篇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 模块

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

时间: 2024-07-30 16:14:48

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

cocos2d-x3.0 编译android出现的问题笔记  cocos2dx3.0 Android.mk

1.编译时出现 No rule to make target 错误,尝试删除XXX/proj.android/obj/local/armeabi/objs这个文件夹. 2.android.mk正确写法 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := cocos2dcpp_shared LOCAL_MODULE_FILENAME := libcocos2dcpp # 遍历目录及子目录的函数 define walk

cocos2dx 自动添加cpp文件到android.mk

将 LOCAL_SRC_FILES := hellocpp/main.cpp ../../Classes/AppDelegate.cpp ../../Classes/HelloWorldScene.cpp 修改成 FILE_LIST := hellocpp/main.cpp FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp) LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%) coc

thinkphp 定时执行php文件 php自动执行php文件

最近开发短信任务和短信发送功能,用到了定时执行php这方面:和大家分享一下: (个人笔记,写的不好,海涵海涵,看不懂的话可以留言,但是我一般都能及时回复,其他网上有很多这样的教程,大家一搜就满地) 我用的是thinkphp开发的程序,程序已经开发好了,程序有个分批定时发送功能,每隔一段时间查找一下数据库,然后把符合条件的短信任务给发送出去, 实现思路如下: 通过win的“任务”功能来定时执行一个bat文件,bat文件会调用php.exe文件,php.exe可以传递参数 指定执行哪个类和方法 方法

ansible批量分发文件含自动备份原文件

目前公司网站前台有16台,每次想更新个文件,手动更新真的很让人抓狂.现在就借助ansible的copy模块轻松实现批量分发,并自动备份,效果还不错,拿来分享给大家. 1.前提要安装好ansible且要与前台16台服务器,做好ssh信任,并归类到一组如v2_51auto_www. # cat /etc/ansible/hosts [v1_51auto_www]172.31.2.68 ansible_ssh_port=22172.31.2.69 ansible_ssh_port=22172.31.2

C++一个项目里有两个CPP文件,想在一个CPP文件里调用另一个CPP文件的计算结果,怎么实现啊?

把1.cpp和2.cpp放到同一目录下,例如:1.cpp 代码如下#include <iostream> int main(){ void ChangeFunction(int* input, int n); void PrintData(int* input, int n); int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; PrintData(a, 10); ChangeFunction(a, 10); PrintData(a, 10); return

在WebStorm里配置watcher实现编辑less文件时自动生成.css文件

1.安装 nodejs     //查看nodejs版本  node -v //查看npm版本  npm -v //全局安装less  npm install -g less 2.配置webStrom 添加external Tools parameters是默认地址的话  直接点insert就行 (Progrem 自己的安装位置   F:\NODE\node.exe) (parameters:C:\Users\Administrator\AppData\Roaming\npm) 添加watche

设置PyCharm创建文件时自动添加头文件

找到该路径并添加以下信息 File->settings->Editor->File and Code Templates->Python Script  #!/usr/bin/env python# -*- coding: utf-8 -*-# @Time    : ${DATE} ${TIME}# @Author  : Aries# @Site    : ${SITE}# @File    : ${NAME}.py# @Software: ${PRODUCT_NAME}

用eclipse做jsp文件,自动创立的文件表头出现红叉,应该怎么处理?tomcat的插件已经安装上了。

JSP页面顶端出现“红色”的报错信息:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path.原来Javaweb工程类中没有添加Tomcat运行时相关类导致.下面是具体的解决方法:1.右击web工程->属性或Build Path->Java Build Path->Libraries-> Add Libray...->Server Runtim

设置pycharm 创建文件时自动生成头文件

找到该路径并添加以下信息 File->settings->Editor->File and Code Templates->Python Script  #!/usr/bin/env python# -*- coding: utf-8 -*-# @Time    : ${DATE} ${TIME}# @Author  : Aries# @Site    : ${SITE}# @File    : ${NAME}.py# @Software: ${PRODUCT_NAME}