android.mk遍历子目录,Android.mk 遍历

android.mk

在mac和windows下多目录 文件/目录遍历

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d)

$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/external)

$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/cocos)

$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/cocos/audio/include)

###############################################################################

#mac环境 注释掉下面这行

IS_WINDOWS := true

LOCAL_MODULE := MyGame_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

###############################################################################

# 配置源文件目录和源文件后缀名

MY_FILES_PATH := $(LOCAL_PATH) \

$(LOCAL_PATH)/../../../Classes

MY_FILES_SUFFIX := %.cpp %.c

# 遍历目录及子目录的函数

define walk

$(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))

endef

# 去除字串的重复单词

define uniq =

$(eval seen :=)

$(foreach _,$1,$(if $(filter $_,${seen}),,$(eval seen += $_)))

${seen}

endef

# 遍历Jni和Classes目录

ALLFILES := $(foreach src_path,$(MY_FILES_PATH), $(call walk,$(src_path),*.*) )

#$(warning ALLFILES $(ALLFILES))

# 从所有文件中提取出所有.c和.cpp文件

FILE_LIST := $(filter $(MY_FILES_SUFFIX),$(ALLFILES))

LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)

$(warning LOCAL_SRC_FILES= $(LOCAL_SRC_FILES))

###############################################################################

ifdef IS_WINDOWS

# windows递归遍历获取所有目录

MY_ALL_DIRS := $(dir $(foreach src_path,$(MY_FILES_PATH), $(call walk,$(src_path),*/) ) )

MY_ALL_DIRS := $(call uniq,$(MY_ALL_DIRS))

LOCAL_C_INCLUDES := $(MY_ALL_DIRS)

else

# mac获取所有目录

FILE_INCLUDES := $(shell find $(LOCAL_PATH)/../../../Classes -type d)

LOCAL_C_INCLUDES := $(FILE_INCLUDES)

endif

$(warning LOCAL_C_INCLUDES= $(LOCAL_C_INCLUDES))

###############################################################################

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值