我们正在使用自定义编译器为项目编译一些资源。这些资源是基于文本的,并且具有.ink
扩展名。我们正在为这些ink
文件使用自定义构建规则。 (如果您对它们感兴趣,请参阅脚注!)
我们的墨迹编译器采用根ink
文件,该文件可以包含include
个其他ink
文件的语句。因此,在Xcode项目中,我们只包含根ink
文件,因此它不会尝试独立编译子ink
文件。
但是,我们现在遇到的问题是,如果您更改其中一个子ink
文件,Xcode就不知道要重新编译父文件。
我们可以做某种自定义构建脚本,如果修改了任何子代,它会自动触及根文件吗?或者我们可以设置某种依赖? (目前我们每次构建都会触及根文件,但随着项目的增长,这将变得太慢)
我们真的不想为了做到这一点而改变墨水编译器的工作方式!
P.S。如果您对这些墨水文件的内容感兴趣:它们是故事文件 - 我们为iOS开发基于文本的叙事游戏。
答案 0 :(得分:0)
如果您在Xcode中选择项目并转到“构建阶段”,则可以将shell脚本添加到应用程序的构建过程中。也许这可能是检查墨迹文件是否需要重新编译的良好开端。
答案 1 :(得分:0)
我最终创建了一个自定义makefile
,然后创建了一个“运行脚本”构建阶段,该阶段在保存make
文件的目录中调用了ink
。
我对makefile没有太多了解,但这是我根据在线教程拼凑的内容:
ALL_CHILD_INK = subdir/*.ink
FINAL_FILENAME = root_filename
$(FINAL_FILENAME).json: $(FINAL_FILENAME).ink $(ALL_CHILD_INK)
ink_compiler $< $@
本质上,它是一个简单的makefile,可确保所有子文件都是主根文件的依赖项。