不废话,直接贴。节约时间。须要改进的地方请各位指出。共同学习。

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通用高级写法的更多相关文章

  1. android中ViewHolder通用简洁写法

    public class ViewHolder {     // I added a generic return type to reduce the casting noise in client ...

  2. [Cocos2d-x]Android的android.mk文件通用版本

    原文地址: http://blog.ready4go.com/blog/2013/10/12/update-android-dot-mk-with-local-src-files-and-local- ...

  3. Android点滴---ViewHolder通用,优雅写法

    近期在做项目时,又要写 ViewHolder. 突然想到网上看看有没什么好的写法! 不知道你是不是也烦透了写那些没有技术含量的ViewHolder 看看这些.也许会有收获! 然后就找到了以下两篇文章( ...

  4. 3.android下Makefile编写规范

    随着移动互联网的发展,移动开发也越来越吃香了,目前最火的莫过于android,android是什么就不用说了,android自从开源以来,就受到很多人的追捧.当然,一部人追捧它是因为它是Google开 ...

  5. Android开发之TextView高级应用

    Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...

  6. VMWARE + CENTOS在windows下配置cocos2d-x android开发环境

    VMWARE + CENTOS在windows配置cocos2d-x android开发环境 之前使用cygwin在windows开发android,后来使用了c++11特性,在cygwin中更新工具 ...

  7. Winform开发框架之通用高级查询模块

    最近一直忙于公司的事情,虽然一直在做一些相关的技术研究,但是很久没能静下心来好好写写博客文章了,想想也有半个月之多了,这半个月来,也一直致力于改善我的WInform开发框架,使得自己及客户使用起来更加 ...

  8. 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 ...

  9. cocos2d-x Android 环境搭建问题汇总

    初次接触Cocos2d-x,准备搭建一个hello world的Android环境,问题遇到很多.在此记录,为自己,也为大家,避免重走弯路! 具体的环境搭建,可以参考官方的文档.在Windows7平台 ...

随机推荐

  1. EasyUI - tab动态加载datagrid

    addTab: function() { $("#myTabs").tabs('add', { title: 'my title', closable: true, tools: ...

  2. 解析stm32的时钟

    STM32 时钟系统  http://blog.chinaunix.net/uid-24219701-id-4081961.html STM32的时钟系统 ***   http://www.cnblo ...

  3. android 配置环境变量

    在创建AVD时,在DOS下输入android list targets 会出现android不是内部或外部命令,如图-1.这主要是没有配置好android sdk环境变量所致的. 图-1   andr ...

  4. Android Studio安装教程

    Google在2013 I/O大会上发布Android Studio之后,广大Android开发者欢欣鼓舞,不过很快就有人出现问题,Android Studio无法安装,或者安装后无法启动,这篇文章就 ...

  5. 京东金融集团BD部门招聘 BD经理

    新标签页http://74.55.154.136/ 互联网招聘_cnBeta.COM 北京 / 全职 / 20k-30k / 经验3-5年 / 本科及以上 / 1天前发布 职位诱惑 : 五险一金 职位 ...

  6. C#中对文件的操作

    详细介绍参考:http://blog.csdn.net/wangyue4/article/details/4616801 源码举例: public class FileSystemManager { ...

  7. Oracle数据库top10物理段

    select owner, name, type, mega, tbs   from (select owner,                case                  when ...

  8. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SELECT command denied to user 'xxxx'@''

    这两天项目一直在报这个错误消息: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SELECT command denied to ...

  9. ShareSDK第三方登陆 (IOS)

    1.http://www.mob.com/ 注册申请 2.http://www.mob.com/#/download SDK下载  (简洁版:http://www.mob.com/#/download ...

  10. windows 2003 域控制器(AD)的常规命令行操作以及修复

    查询服务器的角色 Netdom query fsmo 强制升级操作主机角色(如果两台DC都无损,可以直接用图形模式传送,这里指的是一台DC出问题,另一台强制升级占用角色的情况) Ntdsutil Ro ...