Android.mk添加大量.cpp 免除麻烦,只需添加
来源:互联网 发布:asynchttp post json 编辑:程序博客网 时间:2024/05/01 07:26
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)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_CFLAGS += -DCOCOS2D_DEBUG=1
LOCAL_MODULE_FILENAME := libcocos2dcpp
#注释掉----------------------------------------------------------------------------------------------------------
# 遍历目录及子目录的函数
define walk
$(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))
endef
# 遍历Classes目录
ALLFILES = $(call walk, $(LOCAL_PATH)/../../Classes)
FILE_LIST := hellocpp/main.cpp
# 从所有文件中提取出所有.cpp文件
FILE_LIST += $(filter %.c, $(ALLFILES))
FILE_LIST += $(filter %.cpp, $(ALLFILES))
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
FILE_INCLUDES := $(shell find $(LOCAL_PATH)/../../Classes -type d)
LOCAL_C_INCLUDES := $(FILE_INCLUDES)
#注释掉----------------------------------------------------------------------------------------------------------
#添加---------------------------------------------------------------------------------------------------------------------------------------------------------------这个正确添加大量源文件
#使用纯净的makefile语法重新编写了脚本Update: Android.mk 中的 LOCAL_SRC_FILES, LOCAL_C_INCLUDES
# 配置自己的源文件目录和源文件后缀名
MY_FILES_PATH := $(LOCAL_PATH) \
$(LOCAL_PATH)/../../Classes
MY_FILES_SUFFIX := %.cpp %.c
# 递归遍历目录下的所有的文件
rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))
# 获取相应的源文件
MY_ALL_FILES := $(foreach src_path,$(MY_FILES_PATH), $(call rwildcard,$(src_path),*.*) )
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)/%=%)
# 去除字串的重复单词
define uniq =
$(eval seen :=)
$(foreach _,$1,$(if $(filter $_,${seen}),,$(eval seen += $_)))
${seen}
endef
# 递归遍历获取所有目录
MY_ALL_DIRS := $(dir $(foreach src_path,$(MY_FILES_PATH), $(call rwildcard,$(src_path),*/) ) )
MY_ALL_DIRS := $(call uniq,$(MY_ALL_DIRS))
# 赋值给NDK编译系统
LOCAL_SRC_FILES := $(MY_SRC_LIST)
LOCAL_C_INCLUDES := $(MY_ALL_DIRS)
#添加---------------------------------------------------------------------------------------------------------------------------------------------------------------这个正确添加大量源文件
#添加----------------------------------------------------------------------------------------------------------
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../cocos2d/external/iconv/include \
$(LOCAL_PATH)/../../cocos2d/external/iconv/libcharset \
$(LOCAL_PATH)/../../cocos2d/external/iconv/lib \
$(LOCAL_PATH)/../../cocos2d/external/iconv/libcharset/include \
$(LOCAL_PATH)/../../cocos2d/external/iconv/srclib \
$(LOCAL_PATH)/../../cocos2d/external/iconv
#添加----------------------------------------------------------------------------------------------------------
LOCAL_STATIC_LIBRARIES := cocos2dx_static
#添加----------------------------------------------------------------------------------------------------------
#//LOCAL_WHOLE_STATIC_LIBRARIES += iconv
#//这儿的iconv是在iconv目录下的android.mk中的LOCAL_MOUDEL对应的值,默认就是iconv
#//本人之前在网上找的资源都是写的iconv_static,然后每次编译到最后生成SO文件出错.
#//试了很多次多种配置都不行.最后就报找不到lib iconv_open,iconv_close方法.
#//原因就是这个静态库名称不对.照本宣科不知道原理吃了亏.
#添加iconv静态库
LOCAL_WHOLE_STATIC_LIBRARIES += iconv
#添加----------------------------------------------------------------------------------------------------------
include $(BUILD_SHARED_LIBRARY)
$(call import-module,.)
#添加----------------------------------------------------------------------------------------------------------
#//引用iconv的android.mk文件进行编译
#$(call import-module,iconv)
#添加----------------------------------------------------------------------------------------------------------
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := cocos_curl_static
LOCAL_MODULE_FILENAME := curl
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcurl.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../cocos2d/external/curl/include/android
LOCAL_STATIC_LIBRARIES += cocos_ssl_static
LOCAL_STATIC_LIBRARIES += cocos_crypto_static
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := cocos_crypto_static
LOCAL_MODULE_FILENAME := crypto
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcrypto.a
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_MODULE := cocos_ssl_static
LOCAL_MODULE_FILENAME := ssl
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libssl.a
include $(PREBUILT_STATIC_LIBRARY)
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)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_CFLAGS += -DCOCOS2D_DEBUG=1
LOCAL_MODULE_FILENAME := libcocos2dcpp
#注释掉----------------------------------------------------------------------------------------------------------
# 遍历目录及子目录的函数
define walk
$(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))
endef
# 遍历Classes目录
ALLFILES = $(call walk, $(LOCAL_PATH)/../../Classes)
FILE_LIST := hellocpp/main.cpp
# 从所有文件中提取出所有.cpp文件
FILE_LIST += $(filter %.c, $(ALLFILES))
FILE_LIST += $(filter %.cpp, $(ALLFILES))
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
FILE_INCLUDES := $(shell find $(LOCAL_PATH)/../../Classes -type d)
LOCAL_C_INCLUDES := $(FILE_INCLUDES)
#注释掉----------------------------------------------------------------------------------------------------------
#添加---------------------------------------------------------------------------------------------------------------------------------------------------------------这个正确添加大量源文件
#使用纯净的makefile语法重新编写了脚本Update: Android.mk 中的 LOCAL_SRC_FILES, LOCAL_C_INCLUDES
# 配置自己的源文件目录和源文件后缀名
MY_FILES_PATH := $(LOCAL_PATH) \
$(LOCAL_PATH)/../../Classes
MY_FILES_SUFFIX := %.cpp %.c
# 递归遍历目录下的所有的文件
rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))
# 获取相应的源文件
MY_ALL_FILES := $(foreach src_path,$(MY_FILES_PATH), $(call rwildcard,$(src_path),*.*) )
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)/%=%)
# 去除字串的重复单词
define uniq =
$(eval seen :=)
$(foreach _,$1,$(if $(filter $_,${seen}),,$(eval seen += $_)))
${seen}
endef
# 递归遍历获取所有目录
MY_ALL_DIRS := $(dir $(foreach src_path,$(MY_FILES_PATH), $(call rwildcard,$(src_path),*/) ) )
MY_ALL_DIRS := $(call uniq,$(MY_ALL_DIRS))
# 赋值给NDK编译系统
LOCAL_SRC_FILES := $(MY_SRC_LIST)
LOCAL_C_INCLUDES := $(MY_ALL_DIRS)
#添加---------------------------------------------------------------------------------------------------------------------------------------------------------------这个正确添加大量源文件
#添加----------------------------------------------------------------------------------------------------------
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../cocos2d/external/iconv/include \
$(LOCAL_PATH)/../../cocos2d/external/iconv/libcharset \
$(LOCAL_PATH)/../../cocos2d/external/iconv/lib \
$(LOCAL_PATH)/../../cocos2d/external/iconv/libcharset/include \
$(LOCAL_PATH)/../../cocos2d/external/iconv/srclib \
$(LOCAL_PATH)/../../cocos2d/external/iconv
#添加----------------------------------------------------------------------------------------------------------
LOCAL_STATIC_LIBRARIES := cocos2dx_static
#添加----------------------------------------------------------------------------------------------------------
#//LOCAL_WHOLE_STATIC_LIBRARIES += iconv
#//这儿的iconv是在iconv目录下的android.mk中的LOCAL_MOUDEL对应的值,默认就是iconv
#//本人之前在网上找的资源都是写的iconv_static,然后每次编译到最后生成SO文件出错.
#//试了很多次多种配置都不行.最后就报找不到lib iconv_open,iconv_close方法.
#//原因就是这个静态库名称不对.照本宣科不知道原理吃了亏.
#添加iconv静态库
LOCAL_WHOLE_STATIC_LIBRARIES += iconv
#添加----------------------------------------------------------------------------------------------------------
include $(BUILD_SHARED_LIBRARY)
$(call import-module,.)
#添加----------------------------------------------------------------------------------------------------------
#//引用iconv的android.mk文件进行编译
#$(call import-module,iconv)
#添加----------------------------------------------------------------------------------------------------------
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := cocos_curl_static
LOCAL_MODULE_FILENAME := curl
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcurl.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../cocos2d/external/curl/include/android
LOCAL_STATIC_LIBRARIES += cocos_ssl_static
LOCAL_STATIC_LIBRARIES += cocos_crypto_static
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := cocos_crypto_static
LOCAL_MODULE_FILENAME := crypto
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcrypto.a
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_MODULE := cocos_ssl_static
LOCAL_MODULE_FILENAME := ssl
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libssl.a
include $(PREBUILT_STATIC_LIBRARY)
0 0
- Android.mk添加大量.cpp 免除麻烦,只需添加
- android.mk自动添加cpp文件
- (转载)如何在Android.mk里面添加大量的源文件
- 如何在Android.mk里面添加大量的源文件
- cocos2dx 自动添加cpp文件到android.mk
- cocos2dx 自动添加所有cpp文件到android.mk
- 向Android.mk中添加cpp文件编译快捷方法
- android.mk中添加目录中所有cpp
- cocos2dx自动添加cpp文件到android.mk中
- cocos2dx 自动添加所有cpp文件到android.mk
- cocos2d-x在Android.mk中自动添加Cpp
- Android.mk中添加目录下所有cpp文件
- android.mk中添加目录中所有cpp
- android.mk添加jar
- cocos2dx移植到Android平台避免手动添加CPP路径到Android.mk
- 【Cocos2dx】移植安卓避免手动添加cpp文件到Android.mk文件的方法
- Cocos2d-x--避免手动在Android.mk文件中手动添加cpp文件
- cocos2dx 的android.mk编辑 添加Classes目录下的所有cpp文件
- MFC学习(02) 矩形移动 (VC++6.0版本)
- Mac上超强的网络请求调试工具whistle,堪比Fiddler!
- Jenkins的使用
- 个人笔记:linux基本操作-进阶操作
- 初始化 State
- Android.mk添加大量.cpp 免除麻烦,只需添加
- [时间管理]TED-如何掌控你的时间
- Nginx配置基础-rewrite
- MJRefresh—快速集成下拉上拉刷新
- 15 个必须知道的 Chrome 开发工具技巧
- 浅用HTML编辑器ueditor
- Qt Creator快捷键
- 不同场景下 MySQL 的迁移方案
- java正则表达式