Xcode 4.2 - 将派生文件添加到项目中

时间:2012-02-06 22:59:19

标签: xcode xcode4 reference xcode4.2 auto-generate

我在我的Xcode 4项目中使用了野牛解析器生成器。我编写了自定义构建规则来生成C ++ - 来自* .y语法文件的源文件:

/usr/local/bin/bison
--defines="${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.hpp"
--output="${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.cpp"
--verbose "${INPUT_FILE_PATH}"

如您所见,Xcode将生成的文件放在$DERIVED_FILES_DIR文件夹中。现在我需要将生成的头文件grammar.hpp导出为目标文件作为库。

问题是Xcode不允许导出文件,这些文件未包含在项目中。

第一个解决方案似乎是创建一个绝对路径设置为$DERIVED_FILES_DIR的组。好吧,它实际上有效,直到我更改构建设置以构建版本配置,因为$DERIVED_FILES_DIR依赖于构建设置。 第二种解决方案是以某种方式将组路径设置为字面变量,即

path = $DERIVED_FILES_DIR

到目前为止,我发现了两种可能的方法:How to reference files with environment variables?File references relative to DERIVED_FILE_DIR in Xcode。无论哪种方式对我都不起作用。

也许有人知道将生成的文件添加到项目的更好方法吗?

2 个答案:

答案 0 :(得分:0)

您最好的选择是:

  1. 生成SRCROOT中的文件
  2. 生成BUILT_PRODUCTS_DIR
  3. 中的文件

    这两个选项都有“Relative to ...”选项,可以让您将文件添加到项目中。

答案 1 :(得分:0)

我最终在${SRCROOT}目录中使用自定义make构建目标生成文件,使用Makefile来处理重新生成的派生文件。我刚刚将这些生成的文件添加到项目中,并使所有实际构建目标都依赖于此make目标。