2016-08-27 4 views
1

프로젝트를 위해 약간 패치 된 GCC 버전을 만들고 나머지 프로젝트를 컴파일해야합니다. 나는 이것을하기위한 최선의 방법이 무엇인지 궁금합니다. 현재 ExternalProject_Add 다른 바이너리에 대한 종속성으로 컴파일러를 빌드하는 데 사용하고 있지만 프로젝트의 일부에 대한 컴파일러를 변경하는 방법을 모르겠습니다.컴파일러를 외부 프로젝트로 컴파일하고 사용 하시겠습니까?

+0

LLVM의 CMake 전문가는 같은 문제에 직면 해 있습니다. 아마 그의 솔루션을 체크 아웃 할 수 있습니다 : http://lists.llvm.org/pipermail/llvm-dev/2016- August/104174.html – usr1234567

답변

1

가장 좋은 방법은 아마도 슈퍼 빌드로 구성하는 것입니다. 최상위 프로젝트에는 ExternalProject_Add을 사용하여 빌드 된 두 개의 하위 프로젝트가 있습니다. 컴파일러는 첫 번째 하위 프로젝트이고 두 번째 프로젝트는 실제 프로젝트이므로 실제 하위 프로젝트를 컴파일러 하위 프로젝트에 종속시킴으로써 컴파일러를 사용할 수 있습니다.

두 번째 대안은 discussed here이며 실제 프로젝트는 최상위 프로젝트로 유지되지만 컴파일러는 external_process()을 통해 호출되는 하위 빌드로 작성됩니다. 저는 실제 상황에서이 접근법을 사용했고, 작동하는 동안 다른 개발자가 좀 더 깔끔하고 잘 이해할 수 있기 때문에 선택의 여지가 있다면 개인적으로 superbuild 접근 방식을 사용합니다.

마지막으로 hunter과 같은 것이 컴파일러를 작성할 수 있는지 고려하십시오. GCC를 패치 할 대상/방법에 따라 가장 매력적인 접근 방법 일 수도 있고 아닐 수도 있습니다.

0

저는 두 개의 CMake 프로젝트를 사용합니다. 하나는 컴파일러를, 다른 하나는 빌드 된 컴파일러로 실제 프로젝트를 빌드하는 것입니다. CMake 컴파일러는 CMake의 중요한 부분으로, 변경은 문제를 요구하고있다.

한 프로젝트에 모든 것을 갖고 싶다면 add_custom_command으로 실제 프로젝트를 호출하고 하위 폴더를 호출 할 수 있습니다. 사용자로서 이것은 더 놀라운 일이지만 더 나은 통합으로 이어질 수 있습니다.

관련 문제