cocos2d-xandroid 写makefile 技巧
来源:互联网 发布:ubuntu ttf字体安装 编辑:程序博客网 时间:2024/04/28 22:28
http://blog.ready4go.com/blog/2013/10/12/update-android-dot-mk-with-local-src-files-and-local-c-includes/
Update: Android.mk 中的 LOCAL_SRC_FILES, LOCAL_C_INCLUDES
我在先前的两篇post
编写Android.mk中的LOCAL_SRC_FILES的终极技巧
编写 android.mk 中 LOCAL_C_INCLUDES 的技巧
中提到了一些编译android.mk文件的技巧, 由于都涉及到了shell命令, 导致不能完全在windows下工作, 下面我使用纯净的makefile语法重新编写了脚本
# 配置自己的源文件目录和源文件后缀名MY_FILES_PATH := $(LOCAL_PATH) \ $(LOCAL_PATH)/../../ClassesMY_FILES_SUFFIX := %.cpp %.c# 递归遍历目录下的所有的文件rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))# 获取相应的源文件MY_ALL_FILES := $(foreach src_path,$(MY_FILES_PATH), $(call rwildcard,$(src_path),*.*) ) MY_ALL_FILES := $(MY_ALL_FILES:$(MY_CPP_PATH)/./%=$(MY_CPP_PATH)%)MY_SRC_LIST := $(filter $(MY_FILES_SUFFIX),$(MY_ALL_FILES)) MY_SRC_LIST := $(MY_SRC_LIST:$(LOCAL_PATH)/%=%)# 去除字串的重复单词define uniq = $(eval seen :=) $(foreach _,$1,$(if $(filter $_,${seen}),,$(eval seen += $_))) ${seen}endef# 递归遍历获取所有目录MY_ALL_DIRS := $(dir $(foreach src_path,$(MY_FILES_PATH), $(call rwildcard,$(src_path),*/) ) )MY_ALL_DIRS := $(call uniq,$(MY_ALL_DIRS))# 赋值给NDK编译系统LOCAL_SRC_FILES := $(MY_SRC_LIST)LOCAL_C_INCLUDES := $(MY_ALL_DIRS)
完全使用makefile语法编写, 可以工作在所有平台上
我已经在cocos2d-x中提交了一个pull request https://github.com/cocos2d/cocos2d-x/pull/3921, 希望能被集成到cocos2d-x的代码库中, 以后使用就不需要自己修改了
- cocos2d-xandroid 写makefile 技巧
- 写内核模块Makefile的技巧
- 写内核模块Makefile的技巧
- 写 Makefile!
- 写Makefile
- 写Makefile
- 写makefile
- Makefile学习教程: 写 Makefile
- cocos2dx 2.xandroid环境搭建
- Eclipse下xandroid源码关联
- 如何写Makefile
- 怎样写Makefile
- 学习写Makefile
- 如何写makefile?
- 如何写makefile
- 如何写 makefile文件
- 如何写makefile
- 如何写makefile
- maven The container 'Maven Dependencies' references non existing library
- QT 编写 简单的计算器(新手上路篇)
- Linux硬链接和符号链接
- 解决WIN8输入法切换页面后变英文的问题
- RESTful 风格 小解
- cocos2d-xandroid 写makefile 技巧
- HDU 4628 状态压缩入门
- RedHat linux 不能以图形化方式安装程序
- 浙工ACM1096
- UVa 10128 Queue (DP)
- socket套接字简介
- 基于TCP/IP协议的Scoket JAVA编程
- 2013都快过去了
- hadoop常识指南