终极Android.mk模板,遍历头文件和源文件目录

59 篇文章 1 订阅

结构简洁、条理清晰的代码结构,是一个项目便于管理,代码模块化的前提。 
梳理代码结构发现代码所使用的android.mk各种各样,混乱不堪,遂整理出一个基础模板,供大家使用。其中包含了常见的一些功能,还有头文件路径遍历和源文件指定目录遍历等。

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
PROJECT_PATH = $(LOCAL_PATH)/..

LOCAL_MODULE    := libmodule
LOCAL_LDFLAGS += -shared

#添加模块使用宏定义
LOCAL_CFLAGS += -DMODULE_FLAG

#添加需要包含的头文件路径,会依次遍历向下所有目录,
MY_HEADER_PATH += $(PROJECT_PATH)

#添加需要包含的头文件路径,不会向下遍历,最后一个不要加\号
LOCAL_C_INCLUDES += $(PROJECT_PATH)../include

LOCAL_C_INCLUDES += $(shell find $(MY_HEADER_PATH) -type d)                              
$(warning "$(LOCAL_MODULE): LOCAL_C_INCLUDES =$(LOCAL_C_INCLUDES)")   

# 扫描目录下的所有源文件,会向下依次遍历
MY_FILES_PATH  := $(PROJECT_PATH)
# 添加指定C/CPP文件,只添加某个
LOCAL_SRC_FILES += $(LOCAL_PATH)/test.c

MY_FILES_SUFFIX := %.cpp %.c %.cc
My_All_Files := $(foreach src_path,$(MY_FILES_PATH), $(shell find "$(src_path)" -type f) ) 
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)/%=%)
LOCAL_SRC_FILES += $(MY_SRC_LIST)
$(warning "$(LOCAL_MODULE): LOCAL_SRC_FILES =$(LOCAL_SRC_FILES)")   

#添加需要链接的静态库
LOCAL_STATIC_LIBRARIES  := 

#添加需要链接的动态库
LOCAL_SHARED_LIBRARIES  := 
$(warning "$(LOCAL_MODULE): LOCAL_SHARED_LIBRARIES=$(LOCAL_SHARED_LIBRARIES)") 

#添加需要链接的系统库,如ndk编译,需要链接的log/android等
LOCAL_LDLIBS    += -llog -landroid -lc

#指定编译目标,这边编译动态库
include $(BUILD_SHARED_LIBRARY)
转自:https://blog.csdn.net/as929015918/article/details/78885094
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值