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

Lar*_*dua 1 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项目,这非常繁琐.有更简单的方法吗?谢谢.

sra*_*ski 5

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

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

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