LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

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

##########################手动遍历文件夹以及子目录##############################

##########################这是第一种很麻烦的写法################################

#XLOCAL_C_INCLUDES := \

#                    $(LOCAL_PATH)/hellocpp \

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

#

#XLOCAL_CPPS       := \

#                    $(wildcard $(LOCAL_PATH)/hellocpp/*.cpp) \

#                    $(wildcard $(LOCAL_PATH)/../../Classes/*.c) \

#                    $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)

#

#XLOCAL_SRC_FILES := $(XLOCAL_CPPS:$(LOCAL_PATH)/%=%)

#

#LOCAL_C_INCLUDES       += $(XLOCAL_C_INCLUDES)

#LOCAL_SRC_FILES        := $(XLOCAL_SRC_FILES)

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

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

##########################自动遍历文件夹以及子目录##############################

##########################这是第二种比较方便的写法##############################

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

#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 %.cpp, $(ALLFILES))

#

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

#LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \

#                    $(LOCAL_PATH)/../../Classes/LogClass

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

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

##########################自动遍历文件夹以及子目录(源文件和头文件)################

##########################这是第三种之相对最方便的写法###########################

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

APP_FILES_PATH  :=  $(LOCAL_PATH) \

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

APP_FILES_SUFFIX := %.cpp %.c

# 递归遍历目录下的所有的文件

rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))

# 获取相应的源文件

APP_ALL_FILES := $(foreach src_path,$(APP_FILES_PATH), $(call rwildcard,$(src_path),*.*) )

APP_ALL_FILES := $(APP_ALL_FILES:$(APP_CPP_PATH)/./%=$(APP_CPP_PATH)%)

APP_SRC_LIST  := $(filter $(APP_FILES_SUFFIX),$(APP_ALL_FILES))

APP_SRC_LIST  := $(APP_SRC_LIST:$(LOCAL_PATH)/%=%)

# 去除字串的重复单词

define uniq =

$(eval seen :=)

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

${seen}

endef

# 递归遍历获取所有目录

APP_ALL_DIRS := $(dir $(foreach src_path,$(APP_FILES_PATH), $(call rwildcard,$(src_path),*/) ) )

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

# 赋值给NDK编译系统

LOCAL_SRC_FILES  := $(APP_SRC_LIST)

LOCAL_C_INCLUDES := $(APP_ALL_DIRS)

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

LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static

LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocosbuilder_static

LOCAL_WHOLE_STATIC_LIBRARIES += spine_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static

include $(BUILD_SHARED_LIBRARY)

$(call import-module,.)

$(call import-module,audio/android)

$(call import-module,Box2D)

$(call import-module,editor-support/cocosbuilder)

$(call import-module,editor-support/spine)

$(call import-module,editor-support/cocostudio)

$(call import-module,network)

$(call import-module,extensions)

转载于:https://blog.51cto.com/3387980/1685613

Cocos2dx-Android 之Makefile通用高级写法相关推荐

  1. android 最新写法,详解Android 硬布局item的高级写法

    本文主要介绍了Android 硬布局item的高级写法,分享给大家,具体如下: 效果: 这种布局应该是非常常见了,且写的比较多. 今天简单探讨一下效果图中上下两种布局的写法. 比较 上下效果一致 行数 ...

  2. Android开发之TextView高级应用

    Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...

  3. Cocos2d-x + Android + Eclipse + Windows 8

    琢磨着弄弄Cocos2d-x,配置下 Cocos2d-x + Android + Eclipse + Windows 8 的开发环境,过程比较心酸曲折,做个记录以备后用 我的基础环境 不做详述,不清楚 ...

  4. Android app应用开发高级进阶系列专栏解读

    1.前言 在从事android app开发的几年里,最开始接触做android 都是从app开发开始做的,在做app的这几年中把积累下来的做的一些功能,都整理出来了作为自己的技术资料,在以后开发类似的 ...

  5. Android RecyclerView设计通用Adapter

    RecylerView 的使用频率现在也算做是很高了吧?使用起来的确是挺方便的,也容易实现一些比较好看的效果 一.一般步骤 一般的设计流程都是如下所示 首先是需要一个 JavaBean 来承载数据,包 ...

  6. mybatis case when_MyBatis 几种通用的写法

           阅读本文约需要8分钟  大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了下SpringBoot 2.3 新特性之 ...

  7. Winform开发框架之通用高级查询模块--SNF快速开发平台3.3-Spring.Net.Framework

    最近项目确实忙,但也是一直忙于有关项目和框架技术的事情,也一直致力于改善我的WInform开发框架.使得自己及客户使用起来更加方便,更加友好,更加高效. 在很多程序模块中都很常见,也是给客户扩展查询的 ...

  8. android开发JNI之高级篇

    android开发JNI之高级篇 一,JNI介绍 百度百科 : http://baike.baidu.com/view/1272329.htm 二,JNI开发教程 1,JNI注册方式有两种,一种是静态 ...

  9. android开发笔记之高级主题—传感器的简单介绍

    今天我们开始进入讲解android中的一些高级主题的用法,比如传感器.GPS.NFC.语音和人脸识别等. 这次来对传感器的一个简单介绍: Android平台支持三大类的传感器: 位移传感器 这些传感器 ...

最新文章

  1. Docker - 安装
  2. [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉
  3. 开发环境搭建(1)——JDK安装
  4. 10.23cron10.24chkconfig工具10.25systemd管理服务10.26unit
  5. 孙鑫MFC学习笔记1.Windows应用程序运行机理
  6. Navicat将mysql表结构导成oracle表结构
  7. pythonui自动化测试平台_django+appium实现UI自动化测试平台(开源部分,可定制开发)...
  8. 第6课 细胞分裂 《小学生C++趣味编程》--C++、Scratch
  9. LeetCode--80. 删除排序数组中的重复项Ⅱ(双指针,暴力)
  10. mysql ak uk_mysql表的查询
  11. 哈工大遗传学B期末复习
  12. burst什么意思_burst是什么意思_burst的用法
  13. 龙果支付 mysql_龙果开源支付系统搭建与部署
  14. 后台java,前台JSP实现Excel导出(已经在后台查询,直接在前端实现下载,系统后台整体框架使用SSM)
  15. Cocoa Touch Layer
  16. vue设置页面滚动高度_vue 解决无法设置滚动位置的问题
  17. 【CodeForces】【DP】14E Camels
  18. 针对小游戏的激励视频,如何通过数据分析提升广告收入
  19. insert插入语句
  20. 蓝桥杯 基础练习 01字串 C/C++/Java/Python描述

热门文章

  1. mysql千万级数据量根据索引优化查询速度
  2. Day6-HTML 特殊字符-实体
  3. iOS 开发-单元测试
  4. CentOS6.5与XP双系统安装
  5. LINQ之Order By
  6. Linux 五种IO模型
  7. 决策树的python实现
  8. ZooKeeper(三) 什么是分布式锁以及使用Redis手写实现
  9. linux 服务器间通信,Linux 下的进程间通信:套接字和信号 | Linux 中国
  10. RabbbitMq 消费端自定义监听