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平台 ...
随机推荐
- C#后台代码编写图片地址Properties.Resources._1;
if (i == 0) { pictureBox1.Image = Properties.Resources._1; ...
- SimpleAdapter
1.视图 1)主视图 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x ...
- 双卡双待支持双电池 夏新N808深度评测_夏新手机评测-泡泡网
双卡双待支持双电池 夏新N808深度评测_夏新手机评测-泡泡网 双卡双待支持双电池 夏新N808深度评测
- jQuery 查询 xml
加载xml:(注:这个方法在Chrome是用不了的,Chrome是禁止访问本地的xml文件,在ie11里面用不了,ie11的xmlDom文档没有load方法) function loadXML(fil ...
- Eclipse用法和技巧二十八:Eclipse插件Easy Explore的今世
先说明一下easyexplore插件的功能,easyexplore是一个类似于 Windows Explorer的Eclipse插件,它可以帮助你在不退出Eclipse的环境下迅速浏览本地文件系统. ...
- Linux/Kubuntu/Ubuntu下安装字体
1>获得字体文件*.ttf,免费下载地址:http://www.font5.com.cn/ simfang.ttf 仿宋体 simhei.ttf 黑体 simkai.ttf 楷体 simsun. ...
- WPF 自带Datagrid编辑后无法更新数据源的问题
原文 WPF 自带Datagrid编辑后无法更新数据源的问题 解决办法: 在列的绑定属性里加上UpdateSourceTrigger,示例XAML如下 <DataGrid Grid.Row=& ...
- Java的LockSupport.park()实现分析
LockSupport类是Java6(JSR166-JUC)引入的一个类,提供了主要的线程同步原语.LockSupport实际上是调用了Unsafe类里的函数,归结到Unsafe里,仅仅有两个函数: ...
- 谈论Java原子变量和同步的效率 -- 颠覆你的生活
我们认为,由于思维定式原子变量总是比同步运行的速度更快,我想是这样也已经,直到实现了ID在第一次测试过程生成器不具有在这样一个迷迷糊糊的东西. 测试代码: import java.util.Array ...
- timesetevent与timekillevent的用法
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs ...