2012-02-06 103 views
4

我在我的Xcode 4項目中使用了bison解析器生成器。我已經寫了自定義生成規則生成C++ - 從* .Y語法文件的源文件:Xcode 4.2 - 將派生文件添加到項目

/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。無論哪種方式不適合我。

也許有人知道更好的方式將生成的文件添加到項目?

回答

0

你最好的選擇是:

  1. 產生的SRCROOT文件
  2. 生成文件BUILT_PRODUCTS_DIR

這些都有「相對於...」選項,應該讓你將文件添加到您的項目。

0

我最終生成${SRCROOT}目錄中的文件,使用定製make構建目標,使用Makefile來處理重新生成的派生文件。我只是將這些生成的文件添加到項目中,並且使所有實際的構建目標都依賴於此目標make