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"这个目录
分享到:
相关推荐
1.Android系统源码定制和编译方法(Android7.0至...4.Android.mk或Android.bp编译生成Apk、静态库、动态库、可执行文件等的使用方法 5.Android系统定制有源码App或无源码App时关于Android.mk或Android.bp的使用方法
android 拷贝文件的mk脚本,bin,lib
将android.mk转换为android.bp
全面介绍Android.mk文件语法规范
自动生成android.mk文件,方便,快捷
Android.bp 文件首先是 Android 系统的一种编译配置文件,是用来代替原来的 Android.mk 文件的。在 Android7.0 以前,Android 都是使用 make 来组织各模块的编译,对应的编译 配置文件就是 Android.mk。在 Android...
Android_makefile编译系统_Android.mk_文件语法规范 对Android.mk的讲解,共9页,值得一看。
自己整理的一个android.mk文件的介绍,看了之后你就基本能自己写android.mk了 可能比较乱 但是很详细
为了生成android.mk方便,写了一个小工具(windows环境下),完成自动遍历给定目录下的源码文件和需要包含的目录,可一次给定一个目录也可以一次给定多个目录,GetAndroidMK.exe 目录1 目录2 ,源代码可以参考...
android.mk文件语法详述及简单实例
一个Android.mk file用来向编译系统描述你的源代码。具体来说:-该文件是GNU Makefile的一小部分,会被编译系统...你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。
android studio 配置gradle 使用android.mk进行编译jni,简单的jni调用,使用android.mk进行编译,注意事项:app下的gradle,以及编译生成的 .h文件,复制修改为 .cpp时,里面的文件的宏逻辑,最好去掉这个宏(#...
里面有所有的Android.mk与Android.bp示例。不会写Android.mk与Android.bp,或者常有编译问题的可以下载参考,解决无法使能ASAN的问题。不会用的一定要展开下面链接看使用方法,以及编译问题示例,别啥也不懂就开始...
Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下 Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式: LOCAL_PATH:=$(call my-dir) 上面的语句的意思是将LOCAL_PATH变量...
ffmpeg0.10的android.mk
已经添加有Android.mk,可放到android目录下编译到系统中使用,不过只写了iwconfig和iwlist命令,欢迎大家把其他的也加进来给我
一句一句翻译的NDK Android.mk帮助文档,帮助英语比我还差的哥们熟悉NDK的makefile的编写方法。个人觉得翻译的还算比较准确,因为基本上也都是测试过的,是根据实践参考文档翻译得来。可能是目前为止翻译的最通顺...
opus NDK 编译 Android.mk文件 仅供参考
androidmk 转换Android.bp工具方法
Android.mk是类似linux中make的Android系统编译配置脚本。