0

我们正在使用自定义编译器为我们的项目编译一些资源。这些资源基于文本并具有.ink扩展名。我们正在为这些ink文件使用自定义构建规则。(如果您对它们感兴趣,请参阅脚注!)

我们的墨水编译器采用一个根ink文件,该文件可以包含其他文件的include语句。ink因此,在 Xcode 项目中,我们只包含根ink文件,因此它不会尝试ink独立编译子文件。

但是,我们现在遇到的问题是,如果您更改其中一个子ink文件,Xcode 不知道重新编译父文件。

如果任何子节点被修改,我们是否可以执行某种自定义构建脚本来自动触及根文件?或者我们可以建立某种依赖关系?(目前我们每次构建都会接触根文件,但是随着项目的增长,这将变得太慢)

我们真的不想为了做到这一点而改变墨水编译器的工作方式!

ps 如果您对这些墨迹文件到底是什么感兴趣:它们是故事文件——我们为 iOS 开发基于文本的叙事游戏。

4

2 回答 2

0

如果您在 Xcode 中选择您的项目并转到“构建阶段”,您可以将 shell 脚本添加到应用程序的构建过程中。也许这可能是检查您的墨水文件是否需要重新编译的良好开端。

更多信息:在构建产品时运行脚本

于 2013-11-27T12:34:23.393 回答
0

我最终创建了一个 custom makefile,然后创建了一个“运行脚本”构建阶段,该阶段在保存文件make的目录中调用。ink

我对makefile了解不多,但这是我根据在线教程拼凑而成的:

ALL_CHILD_INK = subdir/*.ink
FINAL_FILENAME = root_filename

$(FINAL_FILENAME).json: $(FINAL_FILENAME).ink $(ALL_CHILD_INK)
    ink_compiler $< $@

本质上,它是一个简单的生成文件,可确保所有子文件都是主根文件的依赖项。

于 2013-11-27T14:47:51.237 回答