cocos compile命令指定Android项目目录
2018-02-28 15:38
357 查看
cocos2d-x(3.5)创建项目,会自动添加几个平台的目录,例如proj.android
proj.ios
编译时执行命令:
传递参数
proj.ios
编译时执行命令:
cocos compile -p android -s ./my_project -m debug编译命令指定平台为
-p android的时候,只能进入
proj.android目录去编译,我为了多个渠道共用大部分代码,只做少量区分,新增目录
proj.android_xxx,就是没法进去编译。因为编译命令里写死了就是
proj.android。想改,奈何不懂python,只好慢慢看。修改了两个py文件。下次要编译proj.android_xxx目录下的项目,执行
cocos compile -p android -s xx/yy/my_project -m debug -f proj.android_xxx就可以了下面具体说一下修改的地方。我只修改了MacOS下的android平台部分。如果对于其他平台,或者其他操作系统,有需要改的,可以参考着修改。
tools/cocos2d-console/bin/cocos.py
CCPlugin
类
parse_args方法添加一个参数
parser.add_argument("-f", "--folder", dest="folder", help="specify a custom android project folder")这样我就可以在命令里通过
-f指定android项目的目录名称,而不是只能使用默认的
proj.android了。
传递参数
self._project = cocos_project.Project(os.path.abspath(args.src_dir), args.folder)这个方法是创建
Project对象,原本只有第一个参数,第二个是我加的(
args.folder),就是指定的目录,可能为
None。
tools/cocos2d-console/bin/cocos_project.py
Project
类
__init__方法
def __init__(self, project_dir, specified_project_dir = None): # parse the config file self.info = self._parse_project_json(project_dir) self.specified_project_dir = specified_project_dir原本只有前两个参数,我添加了第三个参数
specified_project_dir,并储存起来。
PlatformConfig
类
__init__方法
def __init__(self, proj_root_path, is_script, cfg_info = None, specified_project_dir = None): self._specified_project_dir = specified_project_dir ...同样在最后添加了参数
specified_project_dir,并储存起来。
AndroidConfig
类(是PlatformConfig
的派生类)
_use_default方法
if self._specified_project_dir: self.proj_path = os.path.join(self._proj_root_path, self._specified_project_dir) else: self.proj_path = os.path.join(self._proj_root_path, "proj.android")原本只有
else分支中的代码。现在用
if-else区分了一下,使用指定目录,或使用默认目录。
Platforms
类
_gen_available_platforms方法
if proj_info.has_key(cfg_key): if self._project.specified_project_dir: cfg_obj = cfg_class(root_path, self._project._is_script_project(), proj_info[cfg_key], self._project.specified_project_dir) else: cfg_obj = cfg_class(root_path, self._project._is_script_project(), None, self._project.specified_project_dir)关于
cfg_class,当指定了平台的时候,比如
android,就对应到了
AndroidConfig类,而它又是
PlatformConfig类的派生类。这里的
if-else分支是本来就存在的,我在两个分支的
cfg_class的创建方法里(正是
PlatformConfig类的初始化方法),加上了参数
specified_project_dir,这样最开始命令指定的目录就在
AndroidConfig类的
_use_default方法中,成功指定了android项目的目录。
相关文章推荐
- android adb命令打印logcat日志 到指定目录
- android项目获取指定目录下可用空间
- 预编译加速编译(precompiled_header),指定临时文件生成目录,使项目文件夹更干净(MOC_DIR,RCC_DIR, UI_DIR, OBJECTS_DIR),#pragma execution_character_set("UTF-8")"这个命令是在编译时产生作用的,而不是运行时
- Android 开发之旅:HelloWorld项目的目录结构
- android项目的创建,目录结构及各文件的作用_android学习笔记(二)
- Android 项目的目录结构 详细解析
- HelloAndroid和android项目目录结构
- find 命令忽略指定的目录和文件
- 用android命令创建和更新项目
- 建立android项目后,gen目录下没有R.java,且main.xml修改无法更新R.java
- android项目目录结构
- android 项目目录
- android 命令(adb shell)进入指定模拟器或设备
- Linux下查看某目录或指定文件大小的命令
- 备份指定文件到用户主目录,使用tar命令压缩并发送邮件
- Android开发之旅:HelloWorld项目的目录结构
- 传智播客-Android(1)-环境准备和Android项目目录结构分析
- Android笔记(1) HelloAndroid以及Android项目目录结构
- 调用winrar命令解压缩文件到指定目录