Swift Package Manager에서 C++ 소스코드 빌드

글쓴이 연유 날짜

최근 개인 앱을 개발하던 도중, iOS UnrarKit이라는 프레임워크가 SPM을 지원하지 않는 등의 불편한 점이 있어서 WinRar 홈페이지에서 Unrar 프로그램의 소스코드를 받아 빌드하고자 하였습니다.

Swift 5.9 이전

Unrar의 소스코드 구성은 아래와 같습니다.

빌드하기 위해 새로운 프로젝트를 만들고, 소스코드를 Source 아래에, 헤더는 그 아래의 Include 다이렉토리 아래에 둡니다.

여러 경고와 오류들과 함게 빌드가 되지 않습니다. 😢 불필요한 파일은 exclude하고 c++ 표준 설정 등을 바꿔봅니다. 하지만 빌드되지 않습니다. 알고보니 아직 C++ 헤더는 지원 외였습니다. C 헤더를 작성해서 브릿징 해줄 필요가 있습니다. 다행이도 누군가가 먼저 작성해두신 헤더를 참고복붙하여 시도해봅니다. Include 다이렉토리에 C 헤더를 배치해 놓은 뒤에야 성공적으로 빌드되는 것을 확인할 수 있었습니다.

Swift 5.9 이후

Swift 5.9에서는 C++ 상호 호환성이 개선됩니다. 따라서 C++ 헤더를 빌드할 수 있습니다. 업데이트 후, Include 다이렉토리에서 C 헤더를 지우고, C++ 헤더를 배치해 놓은 이후에 별도 C 헤더 없이 잘 빌드 되는 것을 확인할 수 있었습니다.

카테고리: 미분류