学习笔记 Android.mk 自动搜索(转载)
来源:互联网 发布:淘宝一键装修免费模板 编辑:程序博客网 时间:2024/06/06 04:46
- 最近被Android.mk这东西折腾的一晚,这里记录一下。
- ios就省心多了,不用管那么多,xcode自己解决了。
-
- 文本工具:MACVIM(文本编辑工具 非常好用 能清楚分清tab 和空格,以免编写.mk时出错)
- 这个文件是向编译器描述源代码文件,便于它去解析。
-
-
- 以下是cocos2dx-3.2新建项目时生成的Android.mk文件
-
-
- 基本语法:
- “
- “:=” 赋值
- “+=” 追加
- “$” 引用某变量的值
-
-
- 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_MODULE_FILENAME := libcocos2dcpp
-
- 我用的是C++版 所以后缀是.cpp 我们新建文件时,需要在这里添加路径。
- LOCAL_SRC_FILES := hellocpp/main.cpp \
- ../../Classes/AppDelegate.cpp \
- ../../Classes/HelloWorldScene.cpp
-
- LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
-
- LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
-
- LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
-
-
-
-
-
-
-
-
-
-
-
- include $(BUILD_SHARED_LIBRARY)
-
-
-
-
-
- $(call import-module,.)
- $(call import-module,audio/android)
-
-
-
-
-
-
-
-
如果文件少 直接在LOCAL_SRC_FILES这个变量里添加文件的路径就好了可惜我有几十个文件,一个个添加还不累死,而且难维护,难扩展,易出错,。。。我是个懒人,参考子龙山人的mk改写了一下- 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_MODULE_FILENAME := libcocos2dcpp
-
-
- define walk
- $(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))
- endef
-
- ALLFILES = $(call walk, $(LOCAL_PATH)/../../Classes)
-
-
-
- FILE_LIST := hellocpp/main.cpp
- FILE_LIST += $(filter %.cpp, $(ALLFILES))
- FILE_LIST += $(filter %.c, $(ALLFILES))
- FILE_LIST += $(filter %.cc, $(ALLFILES))
-
-
-
- FILE_INCLUDES += $(shell find $(LOCAL_PATH)/../../Classes -type d)
-
- LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
-
- LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \
- $(FILE_INCLUDES) \
-
- LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
- LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_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,editor-support/cocostudio)
- $(call import-module,network)
- $(call import-module,extensions)
吐槽:这些零碎的东西应该是被引擎或者开发软件所解决的。
0 0