Android.mk遍历子目录所有文件
2014-01-17 15:13
239 查看
转:http://blog.csdn.net/langresser_king/article/details/8272736
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"这个目录
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遍历特定目录下所有文件,包含子目录的, 并删除最新创建的
- android 遍历所有文件夹和子目录搜索文件
- 编译libfdk-aac 库,使用根目录下的android.mk直接包含所有子目录下的android.mk文件
- Android遍历所有文件夹和子目录搜索文件
- java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
- java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
- java遍历目录下的包括子目录下的所有文件
- 做一个懒COCOS2D-X程序猿(一)停止手打所有cpp文件到android.mk
- 非递归方式遍历文件夹,取得所有子目录和文件的文件名和大小
- shell adb遍历android手机sdcard下的所有文件,包含隐藏文件,略过链接
- python 遍历目录(包括子目录)下所有文件
- 做一个懒COCOS2D-X程序猿(一)停止手打所有cpp文件到android.mk[转]
- cocos2d-x 3.0 android mk文件 之 自动遍历*.cpp文件
- 轮循遍历某个目录下所有文件包含子目录文件
- 使用Shell遍历目录及其子目录中的所有文件方法
- Android编程读取Assets所有文件(遍历每一个文件夹)并存入sdcard的方法
- C#遍历某目录及其子目录下所有文件的一个例子
- 停止手打所有cpp文件到android.mk