2013-03-29 83 views
0

我參與了爲Windows,Linux和Mac OS X構建的大型跨平臺項目的開發。該軟件的構建使用CMake進行配置。將CMake配置爲使用Xcode構建

CMake的腳本已經設計成功的Visual Studio配置Windows,和Makefile文件目前用於構建在Linux和Mac OS X.

幾乎所有項目的發展至今已與在Windows上工作的人一起完成,以及在Linux上的一些工作。我有興趣在運行Mac OS X 10.7的Macintosh上使用Xcode 4.6開發項目,而且由於CMake文件似乎沒有針對該開發環境進行正確配置,所以遇到了問題。

對於非Windows平臺上的許多自定義命令已被寫入嘗試配置的東西,如複製所需的文件或設置所需要的特定操作,如在生成過程中運行單元測試環境。

看來,因爲Xcode是一個集成開發環境,與Visual Studio相似,它具有構建配置的這種概念,並且當軟件在包含該配置概念的目錄路徑中構建輸出文件時(即許多構建文件在與文件夾名稱類似於調試,發佈等)

CMake的是應該有處理這一構建配置概念和Visual Studio中的機制使用的工作以及支持結束的路徑結束。這似乎不適用於Xcode。例如,我們的構建工程師擁有設計CMake腳本,因此對於Windows,使用CMAKE_CFG_INTDIR值配置了許多路徑和未配置的路徑,這有助於驗證構建配置。

使用CMAKE_CFG_INTDIR是不工作的Xcode中的腳本用於Macintosh都充分考慮到這真的沒有構建配置概念,Makefile文件寫的。由於值解析爲$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME),因此在用於配置事件的自定義命令中使用CMAKE_CFG_INTDIR將在Macintosh上失敗。這些值並未定義何時運行自定義命令,因此值設置不正確,構建操作失敗。

目前還不清楚需要什麼才能讓系統成功配置Xcode。迄今爲止在互聯網上搜索還沒有弄清楚應該用什麼來確保構建配置能夠成功。哪些資源可用於幫助確定如何配置此項目以使用Xcode構建?

回答

0

如果你談論的是自定義命令設置使用add_custom_command,那麼你應該更喜歡「發電機表達」,以避免有關每個配置編譯目錄的問題。從文檔的add_custom_command

參數來COMMAND可以使用「發電機表達」的語法「$<...>」。生成器表達式在生成系統生成期間進行評估,以生成特定於每個生成配置的信息

例如,對於一個名爲「MyExe」目標構建目錄可以被稱爲$<TARGET_FILE_DIR:MyExe>

生成器表達式都可以在幾CMake的命令,而不僅僅是add_custom_command

如果您有更多的具體問題,這也許值得一問的有關細節進一步的問題(一個或多個)。