2012-02-29 3 views
1

우리는 CMake (2.8.7)를 사용하고 Git을 사용하여 빌드 된 C++ 프로젝트를 가지고있다. 두 개발자 (DevA 및 DevB)는 XCode 4.2를 사용합니다. 그들은 CMake의 -G Xcode 기능을 사용하여 아무런 문제없이 Xcode 프로젝트를 생성 할 수 있으며 IDE를 통해 푸시/풀/변경 사항을 커밋 할 수 있습니다. 이 문제는 프로젝트가 재구성되면 시작됩니다. DevA가 몇 개의 파일을 추가하고 커밋/푸시를 추가하면 DevB는 변경 사항을 가져올 수 있지만 (파일 시스템에서는 볼 수 있음) XCode 프로젝트 설정에 반영되지 않습니다. 우리는 아마도 * .pbxproj 파일을 버전 제어하에두면이 문제를 해결할 수 있다고 생각했습니다. 그러나 파일은 절대 경로로 가득 찼습니다. 지금까지 우리가 찾을 수있는 유일한 "솔루션"은 소스 트리가 재구성 될 때마다 CMake -Gcode를 실행하여 XCode 프로젝트를 다시 만드는 것이 었습니다. 이것은 매우 지루합니다. 더 간단한 방법이 있습니까? 감사.CMake가 제어하는 ​​프로젝트에서 XCode 4 pbxproj 파일을 동기화 된 상태로 유지하는 방법은 무엇입니까?

+0

Xcode에 대해서는 잘 모르겠지만 Visual Studio 생성기의 경우 CMake가 빌드하기 전에 해당 솔루션을 자동으로 업데이트합니다. 아마도 XCode와 유사한 동작이있을 수 있습니다. 또한 CMakeLists에 프로젝트를 업데이트하기 위해 커스텀 단계를 추가 할 수도 있지만이 방법은 XCode가 자동으로 프로젝트를 다시로드 할 수있는 경우에만 도움이됩니다 – Alexey

+0

비슷한 질문을 여기에서 찾으십시오 : http://stackoverflow.com/questions/3264028/working-with- cmake-and-xcode-keep-project-changes-cmakelists-txt-is-modifi –

답변

4

CMake는 Xcode의 모든 "실제"대상에 대한 종속성으로 ZERO_CHECK 대상을 등록했습니다. CMake는 CMake를 "CMakeScripts/ReRunCMake.make"에서 다시 실행하고 CMakeLists.txt 파일 중 하나가 변경되었습니다. Xcode가 변경 사항을 반영하지 않는다면 Xcode가 .xcodeproj 디렉토리에서 변경 사항을 보지 않기 때문입니다. 실용적인 해결책은 Xcode에서 프로젝트를 닫고 다시 여는 것입니다. 어느 시점에서 "cmake -GXcode .."를 다시 실행할 수 있습니다.

Visual Studio 10에서도 마찬가지입니다. 단, 모든 대상을 다시로드할지 여부를 묻는 것은 다릅니다. 더 작은 변경에는 효과가 있지만 파일 추가/제거에는 적합하지 않습니다.

원본 파일 집합이 실제로는 더 이상 변경되지 않는 시점에 프로젝트가 진행됨에 따라 필자와 함께 생활 할 수 있습니다. 적어도 그것은 제 경험입니다.

관련 문제