BlcoklyGame分析二

本文详细解析了BlocklyGame的makefile,重点介绍了`make deps`和`make language`两个主要命令。`make deps`负责下载并安装第三方依赖,如Closure Library、Closure Templates等,而`make language`则涉及语言编译,创建特定语言的appengine目录结构,编译.soy模板,并执行build-app.py。此外,还提到了清理命令`make clean-deps`、`make clean-languages`和`make clean`。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BlcoklyGame分析二
makefile分析
makefile中一共有两个主要执行应用分别对应命令make deps,make language.
以及三个小应用make clean,make clean-languages,make clean-deps
1、make deps
是获得整个项目中所需要的第三方依赖(如Colsure,Blockly等)
make deps执行的是 makefile 这个文件。

1.1、make deps
第一步:下载Colsure相关模块
1.1.1、在同级目录,(即项目的根目录)创建第三方模块文件夹third-party 。
1.1.2、svn checkout https://github.com/google/closure-library/trunk/closure/bin/build build;使用svn下载。暂且不明白svn checkout命令
1.1.3、wget -N https://dl.google.com/closure-templates/closure-templates-for-javascript-latest.zip; 通过wget下载Closure模板
1.1.4、unzip -o closure-templates-for-javascript-latest.zip SoyToJsSrcCompiler.jar;SoyToJsSrcCompiler.jar解压到当前目录
1.1.5、unzip -o closure-templates-for-javascript-latest.zip -d ../$(APP_ENGINE_THIRD_PARTY) soyutils_usegoog.js;soyutils_usegoog.js解压到appengine/third-party目录下。
1.1.6、wget -N https://dl.google.com/closure-templates/closure-templates-msg-extractor-latest.zip; 下载closure-templates-msg-extractor-latest.zip
1.1.7、unzip -o closure-templates-msg-extractor-latest.zip SoyMsgExtractor.jar; 解压出SoyMsgExtractor.jar
1.1.8、wget -N https://dl.google.com/closure-compiler/compiler-latest.zip;下载compiler-latest.zip;
1.1.9、unzip -o compiler-latest.zip -x COPYING README.md; 解压出README.md;
1.1.10、mv -f closure-compiler-v*.jar closure-compiler.jar;将所有closure-compiler-v*.jar的文件改名为closure-compiler.jar
chmod +x build/closurebuilder.py: 修改文件权限

第二步:下载goog,blockly,JS-Interpreter等等模块,这些模块全部安装在appengine/third-party目录下。
首先通过mkdir -p $(APP_ENGINE_THIRD_PARTY): 创建appengine/third-party
然后通过svn下载的模块有:goog、third_party_goog、ace、blockly、SoundJS、midi-js-soundfonts下的guitar、piano、banjo、choir、choir、drum、trumpet、violin、还有JS-Interpreter。
最后将blockly下的msg/messages.js删除
这些模块的作用:
goog : 提供了非常方便的前端和后端函数库,项目中主要用到了它的math下的方法。
third_party_goog : 暂且不知
ace : 暂且不知
blockly : blockly模块
SoundJS : 暂且不知
midi-js-soundfonts : 提供了一些声音文件
JS-Interpreter : 用于安全执行Blockly中的代码。
注意:到目前为止,项目已经完成所有第三方模块的加载,但是项目此时还不可以运行。只有通过make language后才能运行项目

2、make language 。
make language 主要做了三件事。
第一件事:为每个子项目创建appengine/generated/‘language’/路径
language 为你所编译的语言,比如make enlanguage 为 en
第二件事:编译.soy模板,模板被编译为soy.js文件
第三件事: 执行build-app.py文件
!common-en : 暂且不知
以make en为例:
执行make en后会生成四个文件,
1、soy.js 第二件事生成的js文件
2、msg.js 第三件事生产的js文件
3、compressed.js 第三件事生产的js文件
4、uncompressed.js 第三件事生产的js文件

3、make clean-deps: 清除依赖

4、make clean-languages : 清除相关语言编译生成的文件(将appengine和子项目下的generated文件夹删除)

5、make clean: make clean-deps,make clean-languages (这两个命令集合)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值