Cocos2d-x Android.mk文件自动修改器

  做cocos2d-x的项目,一般是用电脑进行开发,然后移植到手机平台上。移植到安卓手机需要用eclipse等工具重新编译打包成apk文件。而用eclipse打包的话,要把项目的cpp文件一条条加入到Android.mk配置中,文件少无所谓,但如果文件很多,手工添加就比较麻烦了,特别是有些时候,要和原先的Andriod.mk配置做比较,本次新增了哪些文件,然后把新增的文件添加进去。

  总之,打包成apk,手工修改Android.mk配置很麻烦。所以,我做了一个自动修改器。如下图:

  我的Cocos2d-x Android.mk文件自动修改器下载地址:

  http://download.csdn.net/detail/stevenkylelee/8426235

  用QT5.4做的,要独立运行需要附带QT的dll,所以程序有16MB之大。每次运行俺的这个程序会用浏览器打开俺的CSDN博客,嘿嘿,使用俺的劳动成果,就要给俺付出点代价。>_<

  要自动修改Android.mk文件,需要填写如下3个参数:

  源代码目录路径:指向cocos2d-x项目的源代码目录,通常填写项目的Classes文件的路径。程序会遍历这个目录中的所有*.cpp文件,找到所有的cpp文件,生成配置字符串。

  Android.mk文件路径:指向要修改的Android.mk文件。

  这2个参数对应项目的目录和文件如下图所示:

  搜索替换的正则表达式:为了定位替换的内容,比如:LOCAL_SRC_FILES := hellocpp/main.cpp 。程序会把原来的Android.mk中的这里的字符串替换成程序生成的,从而实现自动修改。

  这里用的正则是QT实现的正则类。QT的正则和C++11、C#的正则有些不同。为什么要用正则表达式呢?正则有更好的扩展性,如果不好定位替换的内容,可以先在原来的mk文件中写一个标记,然后用正则匹配替换上。

  在实践中发现,LOCAL_SRC_FILES := 字段,不仅可以用来加入cpp文件的配置,还可以用来引入so,其他库的引用配置。而我们其实要的是替换源代码配置的那个字段。“LOCAL_SRC_FILES *:=[a-zA-Z0-9 _/.]+cpp.*(\r*\n\s*\n)”这个正则会匹配到源代码配置的LOCAL_SRC_FILES。程序默认使用这个正则,当然也可以修改为其他的正则。

  这3个参数,在程序被关闭会保存,下次打开程序恢复上次保存的参数设置。

  设置好参数后,点击“生成”按钮就会修改指定的mk文件了。

  程序修改生成的结果如下图:

时间: 2024-11-03 03:41:34

Cocos2d-x Android.mk文件自动修改器的相关文章

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.cp

cocos2d-x避免手动修改android.mk文件来编译

编辑android.mk文件,替换为如下内容 LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := cocos2dcpp_shared LOCAL_MODULE_FILENAME := libcocos2dcpp FILE_LIST := hellocpp/main.cpp FILE_LIST += $(wildcard $(LOCAL_PATH)/../..

Android.mk文件语法规范及使用模板

Android.mk文件语法规范 根据eoeandroid上的的连载,进行一些更新.修改和加亮. 今天翻译ANDROID-MK.TXT文件(英文原文件在/development/Ndk/Docs/android-mk.txt) Android.mk文件语法规范 Introduction: Android.mk编译文件是用来向Android NDK描述你的C,C++源代码文件的, 这篇文档描述了它的语法.在阅读下面的内容之前,假定你已经阅读了docs/OVERVIEW.TXT文件,了解了它们的脚色

【转】Android.mk文件语法规范(Android.mk File)

原文网址:http://blog.csdn.net/smfwuxiao/article/details/8530742 1.Android.mk文件概述 Android.mk文件用来告诉NDK编译系统,应该如何编译这些源码.更确切地说,该文件其实就是一个小型的Makefile.该文件会被NDK的编译工具解析多次,所以要注意不要过多使用环境变量,以免第一次解析时产生的变量影响后面的解析.Android.mk把源码组织成不同的模块,每个模块可以是一个静态库也可以是一个动态库.动态库才会被拷贝到安装包

Android.mk 文件语法指南

1 前言 本文档描述了c和c++编写的程序用Android NDK编译时,编译文件Android.mk的语法结构.为了便于理解下面的内容,假设你已经阅读了前面OVERVIEW部分,了解了它们的作用和用法. 2 概要 Android.mk是用来描述源文件是如何进行编译的.更具体的:-Android.mk实际上是一个轻量级的Makefile,它会被编译系统解析一次或多次.因此,你应该尽可能少的声明变量,同时不要假定在解析过程中没有定义任何东西.-Android.mk是用来允许你将源文件组织在一个'm

Android.mk文件简单分析

Android.mk文件简单分析 一个Android.mk文件用来向编译系统描述需要编译的源代码.具体来说:该文件是GNUMakefile的一小部分,会被编译系统解析一次或多次.可以在每一个Android.mk中定义一个或多个模块,也可以在几个模块中使用同一个源代码文件. 每个模块属下列类型之一: 1)APK程序,一般的Android程序,编译打包生成apk文件 2)JAVA库,java类库,编译打包生成jar文件 3)  C\C++应用程序,可执行的C\C++应用程序 4)C\C++静态库,编

Android.mk 文件语法详解

转:http://blog.sina.com.cn/s/blog_602f8770010148ce.html ===================================================================================== 0. Android.mk简介: Android.mk文件用来告知NDK Build 系统关于Source的信息. Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次

Android JNI的Android.mk文件语法详解

Android.mk简介: Android.mk文件用来告知NDK Build 系统关于Source的信息. Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次. 所以,请尽量少的在Android.mk中声明变量,也不要假定任何东西不会在解析过程中定义. Android.mk文件语法允许我们将Source打包成一个"modules". modules可以是: 静态库 动态库. 只有动态库可以被 install/copy到应用程序包(A

Android.mk文件详解

Android.mk文件是GNU Makefile的一小部分,它用来对Android程序进行编译. 因为所有的编译文件都在同一个 GNU MAKE 执行环境中进行执行,而Android.mk中所有的变量都是全局的.因此,您应尽量少声明变量,不要认为某些变量在解析过程中不会被定义. 一个Android.mk文件可以编译多个模块,每个模块属下列类型之一: 1)APK程序 一般的Android程序,编译打包生成apk文件 2)JAVA库 java类库,编译打包生成jar文件 3)C\C++应用程序 可