如何在CMake控制的项目中保持XCode 4 pbxproj文件同步?

时间:2012-02-29 11:29:03

标签: xcode cmake

我们有一个C ++项目,它使用CMake(2.8.7)构建,并使用Gi​​t进行版本控制。我们的两个开发人员(DevA和DevB)使用XCode 4.2。他们可以使用CMake的-G Xcode功能生成一个XCode项目,没问题,并通过IDE进行推/拉/提交更改。当项目重组时,问题就开始了。如果DevA添加了一些文件并提交/推送,DevB可以提取更改(它们在文件系统中可见),但它们不会反映在XCode项目设置中。我们认为将* .pbxproj文件放在版本控制下可以解决这个问题;但是,该文件充满了绝对路径。到目前为止,我们能找到的唯一“解决方案”是每次重组源树时运行CMake -G Xcode重新创建XCode项目,这非常繁琐。有更简单的方法吗?感谢。

1 个答案:

答案 0 :(得分:5)

CMake将ZERO_CHECK目标注册为Xcode中每个“真实”目标的依赖项,其唯一责任是在“CMakeScripts / ReRunCMake.make”中重新运行CMake,并在其中一个CMakeLists.txt文件被更改时更新Xcode工件。如果您没有看到Xcode中反映的更改,那是因为Xcode不会在其.xcodeproj目录中查看更改。实用的解决方案是在Xcode中关闭项目并重新打开它。无论如何,你可以重新运行“cmake -G Xcode ..”。

同样适用于Visual Studio 10,除了它会询问您是否要重新加载它的每个目标。它适用于较小的更改,但不适用于添加/删除文件。

我可以忍受它,因为项目生活中有一点,当源文件集不再真正改变时。至少那是我的经历。