우리는 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 파일을 동기화 된 상태로 유지하는 방법은 무엇입니까?
1
A
답변
4
CMake는 Xcode의 모든 "실제"대상에 대한 종속성으로 ZERO_CHECK 대상을 등록했습니다. CMake는 CMake를 "CMakeScripts/ReRunCMake.make"에서 다시 실행하고 CMakeLists.txt 파일 중 하나가 변경되었습니다. Xcode가 변경 사항을 반영하지 않는다면 Xcode가 .xcodeproj 디렉토리에서 변경 사항을 보지 않기 때문입니다. 실용적인 해결책은 Xcode에서 프로젝트를 닫고 다시 여는 것입니다. 어느 시점에서 "cmake -GXcode .."를 다시 실행할 수 있습니다.
Visual Studio 10에서도 마찬가지입니다. 단, 모든 대상을 다시로드할지 여부를 묻는 것은 다릅니다. 더 작은 변경에는 효과가 있지만 파일 추가/제거에는 적합하지 않습니다.
원본 파일 집합이 실제로는 더 이상 변경되지 않는 시점에 프로젝트가 진행됨에 따라 필자와 함께 생활 할 수 있습니다. 적어도 그것은 제 경험입니다.
관련 문제
- 1. Xcode 4 : 프로젝트에서 파일을 제거 하시겠습니까?
- 2. Lucene 색인을 MySQL 데이터베이스와 동기화 된 상태로 유지하는 방법은 무엇입니까?
- 3. 두 폴더를 자동으로 동기화 된 상태로 유지하는 방법은 무엇입니까?
- 4. TreeView와 ListBox의 SelectedItem을 동기화 상태로 유지하는 방법은 무엇입니까?
- 5. ObservableCollection과 ObjectContext를 동기화 상태로 유지하는 가장 좋은 방법은 무엇입니까?
- 6. 로컬 컴퓨터에서 파일을 동기화 된 상태로 유지하는 가장 좋은 방법은 무엇입니까?
- 7. 두 데이터베이스 스키마를 동기화 상태로 유지하는 가장 좋은 방법은 무엇입니까?
- 8. 앱 설정에서 NSUserDefault 설정을 동기화 상태로 유지하는 방법은 무엇입니까?
- 9. PySide에서 QtTableWidget과 목록을 동기화 상태로 유지하는 올바른 방법은 무엇입니까?
- 10. 클라이언트 측 캐시를 동기화 상태로 유지하는 방법은 무엇입니까?
- 11. Xcode 프로젝트에서 쓸모없고 제외 된 파일을 정리하는 방법은 무엇입니까?
- 12. 여러 데이터베이스를 동기화 상태로 유지하는 방법
- 13. 여러 BizTalk 프런트 엔드에 배포 된 코드를 동기화 된 상태로 유지하는 방법은 무엇입니까?
- 14. CONTACT_ID - 동기화 된 상태로 유지하기
- 15. 프로젝트에서 XCode 4 lib를 생성하십시오.
- 16. Subclipse : 분기를 동기화 상태로 유지하는 방법?
- 17. GIT Repos를 동기화 상태로 유지하는 방법
- 18. iOS - Xcode 4 프로젝트에서 파일 누락이 있습니다.
- 19. Magento 마이그레이션을 DNS 업데이트까지 동기화 된 상태로 유지하는 방법
- 20. Xcode 4 프로젝트에서 ZipArchive 컴파일
- 21. 두 개의 개발 데이터베이스를 Doctrine과 동기화 된 상태로 유지하는 방법은 무엇입니까?
- 22. iPhone 버튼을 누른 상태로 유지하는 방법은 무엇입니까?
- 23. app.config와 app.vshost.config를 동기화 된 상태로 유지하는 가장 좋은 방법은 무엇입니까? (또는 ConfigurationManager 확장)
- 24. Ajax를 사용할 때 브라우저 기록을 동기화 된 상태로 유지하는 방법은 무엇입니까?
- 25. Xcode 4 프로젝트에서 새 대상의 소스 제어
- 26. Java Frame를 대기 상태로 유지하는 방법은 무엇입니까?
- 27. 항목을 선택 상태로 유지하는 방법은 무엇입니까? - ListView
- 28. WCF 사이트를 온라인 상태로 유지하는 방법은 무엇입니까?
- 29. Postgresql : 2 시퀀스를 동기화 된 상태로 유지
- 30. 사용자의 Facebook 정보를 업데이트 된 상태로 유지하는 이상적인 방법은 무엇입니까?
Xcode에 대해서는 잘 모르겠지만 Visual Studio 생성기의 경우 CMake가 빌드하기 전에 해당 솔루션을 자동으로 업데이트합니다. 아마도 XCode와 유사한 동작이있을 수 있습니다. 또한 CMakeLists에 프로젝트를 업데이트하기 위해 커스텀 단계를 추가 할 수도 있지만이 방법은 XCode가 자동으로 프로젝트를 다시로드 할 수있는 경우에만 도움이됩니다 – Alexey
비슷한 질문을 여기에서 찾으십시오 : http://stackoverflow.com/questions/3264028/working-with- cmake-and-xcode-keep-project-changes-cmakelists-txt-is-modifi –