Cocos2dx-Android 之Makefile通用高级写法
不废话,直接贴。节约时间。须要改进的地方请各位指出。共同学习。
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), $(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_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)
Cocos2dx-Android 之Makefile通用高级写法的更多相关文章
- android中ViewHolder通用简洁写法
public class ViewHolder { // I added a generic return type to reduce the casting noise in client ...
- [Cocos2d-x]Android的android.mk文件通用版本
原文地址: http://blog.ready4go.com/blog/2013/10/12/update-android-dot-mk-with-local-src-files-and-local- ...
- Android点滴---ViewHolder通用,优雅写法
近期在做项目时,又要写 ViewHolder. 突然想到网上看看有没什么好的写法! 不知道你是不是也烦透了写那些没有技术含量的ViewHolder 看看这些.也许会有收获! 然后就找到了以下两篇文章( ...
- 3.android下Makefile编写规范
随着移动互联网的发展,移动开发也越来越吃香了,目前最火的莫过于android,android是什么就不用说了,android自从开源以来,就受到很多人的追捧.当然,一部人追捧它是因为它是Google开 ...
- Android开发之TextView高级应用
Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...
- VMWARE + CENTOS在windows下配置cocos2d-x android开发环境
VMWARE + CENTOS在windows配置cocos2d-x android开发环境 之前使用cygwin在windows开发android,后来使用了c++11特性,在cygwin中更新工具 ...
- Winform开发框架之通用高级查询模块
最近一直忙于公司的事情,虽然一直在做一些相关的技术研究,但是很久没能静下心来好好写写博客文章了,想想也有半个月之多了,这半个月来,也一直致力于改善我的WInform开发框架,使得自己及客户使用起来更加 ...
- cocos2dx android版本移植时的Error format not a string literal and no format arguments解决方案
原文地址 : http://www.cnblogs.com/hhuang2012/p/3336911.html cocos2dx android版本移植时的Error format not a str ...
- cocos2d-x Android 环境搭建问题汇总
初次接触Cocos2d-x,准备搭建一个hello world的Android环境,问题遇到很多.在此记录,为自己,也为大家,避免重走弯路! 具体的环境搭建,可以参考官方的文档.在Windows7平台 ...
随机推荐
- Sql语句中使用参数化的Top
在sql中使用参数化的Top,Top后面的参数要用括号括起来. 例如: select top (@ts) ID, [Type], Title, Content, LinkMan, Tel, Check ...
- GridView控件-01-[简单的数据显示]
GridView绑定数据分为两种,一种是多值绑定,另一种是字段绑定. 多值绑定(直接绑定到数据源就行,不需要使用字段): 前台代码: <asp:GridView ID="GridVie ...
- BZOJ 2427: [HAOI2010]软件安装( dp )
软件构成了一些树和一些环, 对于环我们要不不选, 要么选整个环. 跑tarjan缩点后, 新建个root, 往每个入度为0的点(强连通分量) 连边, 然后跑树dp( 01背包 ) ---------- ...
- jsp生命周期和工作原理
jsp的工作原理jsp是一种Servlet,但是与HttpServlet的工作方式不太一样.httpservlet是先由源代码编译为class文件后部署到服务器下的,先编译后部署.而jsp则是先部署后 ...
- Oracle时间戳
查询某一具体时间某张表的数据,可以用时间戳进行查询. 例如: SELECT * FROM sac14 AS OF TIMESTAMP to_date('201508310930','yyyymmddh ...
- 利用xshell密钥管理服务器远程登录+VIM dd命令操作之伤之再伤
1.打开Xshell界面,中文界面方便操作,菜单栏:工具——新建用户密钥生成向导 2.密钥类型选择RSA,密钥长度选择2048位,单击下一步继续: 3.很快生成公钥对,单击下一步继续: 4.密钥名称可 ...
- 09-UIKit(UICollectionViewController、UITabBarController)
目录: 一.UICollectionViewController 二.UITabBarController(标签控制器) 三.视图和试图控制器的生命周期 四.其他控件 回到顶部 一.UICollect ...
- c语言利用指针计算字符串的长度
可以用strlen函数,这里我们自己写一个. 注意:不能用scanf,scanf一遇到空格就认为输入结束.应该用gets(),遇到换行符或EOF结束.说明可以接受空格. #include<cst ...
- RAID级别与规范
1.RAID 0 RAID 0是最早出现的RAID模式,即Data Stripping数据分条技术.RAID 0是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性 ...
- mysql导入sql文件过大或连接超时的解决的方法
前段时间出差在现场开发的时候,导入数据库老是出问题.最后发现了一个奇妙sql语句交给实施,仅仅要导入出错就把例如以下语句运行就能够了.至今屡试不爽. set global max_allowed_pa ...