Xcode를 외부 builder를 통해 굴리는 방법

별로 어렵지 않다. 프로젝트를 새로 만들 때 “Others”로 되어있는 것을 선택하면 된다. 이때 builder를 물어보는데, docker를 통해서 리눅스용 make를 부른다거나 그외 뭐든 할 수 있다.

문제는 디버거를 쓸 수가 없다는 것이다. LLVM으로 mac 용 binary로 빌드하면 디버거를 쓸 수 있지만, 그외 경우는 안된다. 디버거를 외부 디버거로 지정할 수도 없으니까.

단지 내가 커맨드라인에서 docker로 gdb를 부르든 다른 버신의 gdb를 부르든 해야된다.

그래도 좋은 것은 컴파일러가 error/warning을 내면 그것을 에디터에서 잘 파싱해서 지적해주는 것이고 Makefile 같은 것들은 직접 작성해야 되니까 빌드 옵션을 쉽게 쉽게 바꿀 수 있다는 것이다.

왜 이런 일을 하려고 하냐고? 귀찮게? M1을 쓰고 싶은데 x86 리눅스 바이너리를 써야할 일이 있어서다. M1에서 x86 리눅스 바이너리를 굴릴 방법은 qemu로 x86 에뮬레이션을 하는 것 말곤 딱히 쓸만한 방법이 없다. 그래서 docker를 remote로 해서 외부의 x86 머신에 붙여놓고 docker로 연결된 외부 머신의 builder를 xcode에 붙여쓴다는 것이다.

말은 쉽고 실제로 되긴 하지만 Xcode를 LLVM에 네이티브하게 붙여쓰는 것과 천지차이라 그다지 별 효용이 없다는 결론만이 남았다.

길게 주저리 주저리 썼던 것은 모두 지웠다. 혹여나 유용한 방법이지 싶어서 써놨는데, 외부 빌더로 쓸 수는 있지만 너무 크게 확장하면 시간만 날릴 뿐이다. Xcode는 그냥 native하게 쓰는 것이 좋다. 아니면 그것의 장점을 제대로 살려내지 못한다. 이래서 내가 Eclipse를 별로 좋아하지 않는 모양이다.