2010-07-16 3 views
27

우선 Xcode로 개발 한 적이 없습니다. 나는 특정 환경 (Linux와 emacs) 하에서 나에 의해 개발 된 프로젝트를 가지고 있으며, 다른 환경을 사용하는 몇몇 동료들이 나와 함께 할 것이다. 이것은 CMake를 사용하는 C++ 프로젝트입니다. 짧은CMake 및 Xcode 작업 : CMakeLists.txt 수정시 프로젝트 변경 유지

긴 이야기 :

  • 나는 리눅스/이맥스를 사용합니다. 다른 개발자들은 mac/Xcode를 사용합니다.
  • 저는 GNU Makefile 생성기를 사용합니다. Xcode 생성기를 사용합니다.
  • 모든 것이 정상적으로 작동하는 것 같습니다.

문제

엑스 코드 개발자는 엑스 코드의 그룹 & 파일 윈도우의 실행 파일 목록 아래에 나타나는 실행 파일을 사용합니다. 두 번 클릭하여 디버깅 디렉토리를 구성하고 환경 변수를 설정하지만 , 더 중요한 것은, 실행 파일의 인수 설정)을 두 번 클릭하여 구성합니다.

개발자 (나) 변화 CMakeLists.txt (즉, 새로운 소스 파일을 추가하려면), 엑스 코드 개발자가 자신의 프로젝트를 다시 생성하도록 강요하고 위에서 언급 한 모든 설정을 잃게 .

질문 :이 문제를 방지 할 수있는 방법이 있습니까?

각 Xcode 개발자가 끊임없이 해당 구성을 잃는다면 나는 확실히 CMake를 사용하는 유일한 사람 일 것입니다. :(당신의 도움에 대한

감사합니다!

+9

왜 다운 투표입니까? 나에게 합리적인 질문처럼 보입니다. –

답변

10

당신은. add_custom_target(foobar COMMAND foo --bar DEPENDS foo)하여 프로그램을 실행하는 대상을 추가 할 수 있습니다 당신은 또한 대신 (나는 이것을 사용 환경 변수를 설정하기 쉬운 프로그램의 스크립트를 호출 할 수 있습니다 VC에서 경로를 조정하기 위해 Win32에서 설정).이 스크립트는 VCS의 템플릿 일 수도 있으므로 각 개발자는 실제 명령 줄 매개 변수가있는 스크립트의 자체 버전을 갖습니다.

+0

이것은 유효한 해결책이라고 생각합니다. 그러나 제 경우에는별로 실용적이지 않습니다./ – YuppieNetworking

10

나는 이것을 잃을 것이라고 생각합니다. Xcode는 모든 프로젝트 정의를 Foo.xcodeproj/project.pbxproj라는 파일에 저장합니다. Mac 개발자 중 한 명이 플래그 또는 설정을 변경하면 project.pbxproj 파일에 기록됩니다 .Cha CMake가 여러분의 CMakeLists.txt 파일을 열면, CMake는 project.pbxproj를 재 작성하여 모든 Mac 개발자의 변경 사항을 삭제합니다. Xcode는 CMake를 염두에두고 설계된 것이 아니며 두 개는 잘 작동합니다.

하나의 가능한 솔루션 (Mac 개발자에게는 가장 좋지 않음)은 CMake를 사용하여 메이크 파일을 생성하는 것입니다. 그들은 Xcode에서 실행 파일을 빌드하기 위해 CMake/Make를 호출하는 커스텀 커맨드를 작성할 필요가 있지만, 빌드 프로세스를 제어하기 위해 인수를 CMake에 전달할 수 있습니다. 실행 파일은 Xcode와 별도로 정의되며 CMake는 Makefile 만 지울 것입니다. 이것은 모두를 행복하게하는 방법 일 수 있습니다.

CMake 사람들은 Xcode에 대해주의를 기울이지 않았습니다. IMHO. 하지만이 제한은 Xcode의 아키텍처에 내재 된 것이며 어려운 점이 될 것입니다.이 도움이

희망,
-dan

편집 :

엑스 코드 개발자

는 "사용자 정의 설정"을 사용하는 몇 가지 제한된 능력을 가지고있다. 나는 이것을 (나는 이맥스/일종의 녀석이다.) 사용하는 방법을 모르지만, 아마 이것들을 사용하여 CMake의 설정을 덮어 쓸 수있다.

+0

이 사용자 정의 설정을 시도하고 다시 연락 드리겠습니다. – YuppieNetworking

+0

확인했지만 설정이 매우 제한되어 있습니다. 실행 파일에 대한 인수도 정의 할 수 없습니다. S – YuppieNetworking

+0

7 년 후 Xcode와 CMake는 여전히 끔찍합니다. – Lothar

관련 문제