我使用Xcode作为我的OS X版本的一部分,但由于它不是唯一使用的IDE,所以可以直接从文件系统添加文件。Xcode文件系统
据我所知,有添加文件夹的方式有两种:
- 文件夹参考拿起所有的文件系统上的变化,但不注册的任何文件作为来源。
- 递归复制允许所要构建的文件,但我需要不断地维护文件结构
我想知道是否有办法设置的Xcode构建所有的的一部分的文件文件夹引用或失败,如果有快速脚本来自动修复文件系统差异。从添加/现有的文件导入另一个文件
我使用Xcode作为我的OS X版本的一部分,但由于它不是唯一使用的IDE,所以可以直接从文件系统添加文件。Xcode文件系统
据我所知,有添加文件夹的方式有两种:
我想知道是否有办法设置的Xcode构建所有的的一部分的文件文件夹引用或失败,如果有快速脚本来自动修复文件系统差异。从添加/现有的文件导入另一个文件
Xcode的AppleScript字典有做这些任务所需的名词和动词。假设其他IDE的构建脚本知道哪些文件被添加/删除,您可以编写非常简单的AppleScript来充当胶水。例如,脚本可以使用一个指定文件的参数来添加到Xcode中当前打开的项目中。另一个脚本可能需要一个参数来从当前项目中删除一个文件。然后,您的其他IDE可以像构建脚本中的其他命令行工具那样调用这些脚本。
我不知道任何内置功能来完成此操作。如果你需要它是自动的,你最好的选择可能是写一个Folder Action AppleScript并将它附加到你的项目文件夹。
尽管如此,它很可能是一个相当困难的(也许相当脆弱的)解决方案。
我想出了概念验证解决方案,但需要一些工作才能在生产中使用。基本上,我设置了一个新的“外部目标”,它将给定目录中的所有源文件编译为静态库。然后静态库链接到主应用程序。
详细:
现在,当您将一些源文件放入“代码”中时,Xcode应重新编译所有内容。我创建了一个demo project作为概念验证。要查看它的工作方式,请将'tmp'目录中的B.h/m复制到'Codes'目录中。
*注意事项:我提供的Makefile过于简化。如果你想在真实的项目中使用它,你需要花费一些时间使所有的构建标志正确。您必须决定是否值得手动管理构建过程,而不是让Xcode为您处理大部分细节。注意有空白的路径; Make不能很好地处理它们。
这不是很漂亮,我认为它只能解决一半的问题,但是......如果您递归复制,然后退出xcode。然后删除这些文件夹,并将它们替换为原始文件夹的simlink,至少有文件被视为代码,并且它们与其他IDE正在查看的文件相同......您仍然需要手动添加和删除文件。
我有种怀疑,有没有更好的方式来做到这一点没有某种形式的脚本(如文件夹操作),因为Xcode允许你在一个项目中有多个目标,所以它不会知道你想自动包含任何特定目标中的所有文件。所以,你将不得不每次手动添加每个文件到当前目标...
我已经这样做了。我需要一种自动获取新文件和删除已删除文件的方式。 – fengb 2009-11-29 20:58:51