zoukankan      html  css  js  c++  java
  • cocos2d-x 3.0 android mk文件 之 自己主动遍历*.cpp文件

    还记得上一篇android mk 文件的写法吗?传送门

    我们须要手动去加入 cpp文件。假设cpp一多,那不是要累死?

    LOCAL_PATH := $(call my-dir)
    
    include $(CLEAR_VARS)
    
    LOCAL_MODULE := cocos2dcpp_shared
    
    LOCAL_MODULE_FILENAME := libcocos2dcpp
    
    LOCAL_SRC_FILES := hellocpp/main.cpp 
                       ../../Classes/AppDelegate.cpp 
                       ../../Classes/ClipingNodeLayer.cpp
                       ../../Classes/MainScene.cpp
                       ../../Classes/MenuTab.cpp
    
    
    LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
    
    LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
    LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
    LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
    LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static          # 加入 cocos_extension 静态库
    LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static		# 加入 cocostudio 静态库
    
    
    include $(BUILD_SHARED_LIBRARY)
    
    $(call import-module,2d)
    $(call import-module,audio/android)
    $(call import-module,Box2D)
    $(call import-module,extensions)				# 导入 extensions 模块
    $(call import-module,editor-support/cocostudio)			# 导入 cocostudio 模块

      看了网上很多大神的博客,才发现还能够这样子自己主动遍历cpp。比方上面这个mk文件。仅仅须要把


    LOCAL_SRC_FILES := hellocpp/main.cpp 
                       ../../Classes/AppDelegate.cpp 
                       ../../Classes/ClipingNodeLayer.cpp
                       ../../Classes/MainScene.cpp
                       ../../Classes/MenuTab.cpp

    改为

    # 遍历文件夹及子文件夹的函数
    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)/%=%)
    

    其它部分不变。

    恩然后即可了。


    改完之后完整android mk 文件例如以下:


    LOCAL_PATH := $(call my-dir)
    
    include $(CLEAR_VARS)
    
    LOCAL_MODULE := cocos2dcpp_shared
    
    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 %.cpp, $(ALLFILES))
    
    LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
    
    
    LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
    
    LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
    LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
    LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
    LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static  # 加入 cocos_extension 静态库
    LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static		# 加入 cocostudio 静态库
    
    
    include $(BUILD_SHARED_LIBRARY)
    
    $(call import-module,2d)
    $(call import-module,audio/android)
    $(call import-module,Box2D)
    $(call import-module,extensions)						# 导入 extensions 模块
    $(call import-module,editor-support/cocostudio)			# 导入 cocostudio 模块
    
    
    


  • 相关阅读:
    log4cpp
    互斥锁封装
    Educational Codeforces Round 37-F.SUM and REPLACE (线段树,线性筛,收敛函数)
    Codeforces 920E-Connected Components? (set,补图,连通块)
    Persistent Bookcase CodeForces
    P4390 [BOI2007]Mokia 摩基亚 (CDQ解决三维偏序问题)
    P3157 [CQOI2011]动态逆序对 (CDQ解决三维偏序问题)
    CDQ 分治解决和点对有关的问题
    洛谷 P2163 [SHOI2007]园丁的烦恼 (离线sort,树状数组,解决三维偏序问题)
    洛谷 P3469 [POI2008]BLO-Blockade (Tarjan,割点)
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5118505.html
Copyright © 2011-2022 走看看