Android.mk遍历子目录所有文件
2012-12-08 15:36
435 查看
define all-cpp-files-under $(patsubst ./%,%, \ $(shell cd $(LOCAL_PATH) ; \ find $(1) -name "*.cpp" -and -not -name ".*" -and -not -name "CCEditBoxImplWindow.cpp") \ ) endef define all-subdir-cpp-files $(call all-cpp-files-under,.) endef LOCAL_SRC_FILES := $(call all-subdir-cpp-files)
使用这个方法可以遍历子目录所有.cpp文件,替换find的参数可以实现遍历和过滤任意文件。
Android.mk编写变得非常简洁和方便,无需再维护文件列表了。
另附一个更加简单的宏,可以实现遍历一个目录下的所有文件(但是不会递归调用)
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/../*.c)
通过wildcard可以进行文件遍历,如果是单目录结构,通过这个同样可以达到非常简洁的效果。如果是c++代码的话(*.cpp文件),需要使用下面的方式,否则可能找不到文件:
FILE_LIST := $(wildcard $(LOCAL_PATH)/../*.cpp) LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
加强版本(遍历所有文件,但是忽略某一个目录的文件)
define all-cpp-files-under
$(patsubst ./%,%, \
$(shell cd $(LOCAL_PATH) ; \
find $(1) -name LogicLayer -prune -o -name "*.cpp" -and -not -name ".*") \
)
endef通过-prune可以指定忽略 "LogicLayer"这个目录
相关文章推荐
- Android.mk遍历子目录所有文件
- android之遍历所有文件夹和子目录搜索文件
- android 遍历所有文件夹和子目录搜索文件
- 编译libfdk-aac 库,使用根目录下的android.mk直接包含所有子目录下的android.mk文件
- Android遍历所有文件夹和子目录搜索文件
- Android遍历特定目录下所有文件,包含子目录的, 并删除最新创建的
- 做一个懒COCOS2D-X程序猿(一)停止手打所有cpp文件到android.mk
- shell 遍历所有文件包括子目录
- 写一个遍历目录下所有文件以及子目录的函数
- Android:复制Assets下所有的文件(遍历每一个文件夹),并存入sdcard里面
- 遍历目录及子目录列出所有文件和文件夹的代码
- 终极Android.mk模板,遍历头文件和源文件目录
- 做一个懒COCOS2D-X程序猿(一)停止手打所有cpp文件到android.mk[转]
- java遍历目录下的包括子目录下的所有文件
- 终极Android.mk模板,遍历头文件和源文件目录
- asp.net遍历目录文件夹和子目录所有文件
- MFC遍历指定目录下的所有文件/文件夹(不遍历子目录)
- java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
- 终极Android.mk模板,遍历头文件和源文件目录
- Linux C 编程之遍历子目录及所有文件