하나의 CMAKE 프로젝트를 다른 CMAKE 프로젝트 내부에 포함 시켰습니까?

StackOverflow https://stackoverflow.com/questions/1457920

  •  12-09-2019
  •  | 
  •  

문제

두 가지 프로젝트가 있는데, 둘 다 CMake를 사용합니다. 이제 프로젝트 중 하나를 다른 프로젝트 내부의 라이브러리로 포함시키고 있으며, 독립형 프로젝트로 컴파일 할 수있는 기능을 유지하고 싶습니다.

내가 지금까지 한 일은 : 버전 제어 시스템을 사용하여 부모 프로젝트의 하위 디어에서 어린이 프로젝트의 사본을 복제하십시오. 나는 "add_subdirectory"를 사용하여 CMakelists.txt of the Child 프로젝트를 부모 프로젝트에 포함시켰다. 그리고 아동 프로젝트의 일부 대상을 바꾸어 대상 간의 이름 충돌이 고정되어 있습니다.

그러나 제가 실행중인 문제는 아동 프로젝트의 다양한 구성 테스트가 실행되지 않는 것 같습니다. 예를 들어, HILD 프로젝트는 FindThreads 모듈을 사용하여 사용 가능한 동기화 프리미티브를 결정합니다. 학부모 프로젝트는 스레딩 문제를 알지 못하므로 이와 관련된 테스트가 없습니다. 마찬가지로, 아동 프로젝트에는 헤더에 대한 다양한 테스트가 있으며 부모 프로젝트에는 필요하지 않습니다. 이러한 테스트 중 어느 것도 실행중인 것으로 보이며이 테스트로 정의 된 기호는 CMakeCache.txt 파일에 추가되지 않습니다.

나는 실제로 아동 프로젝트의 모든 테스트 (주로 부모와 관련이없는 플랫폼 별 문제를 다루고 있음)를 학부모 프로젝트의 cmakelists.txt에 올리기를 원하지 않습니다.

도움이 되었습니까?

해결책

Cmake 2.8이 새로운 것을 추가했습니다 외부 프로젝트 모듈을 사용하면 다른 CMAKE 프로젝트의 빌드를 구동하기 위해 사용자 정의 대상을 만들 수 있습니다. 이것에 대한 문서는 약한 것이지만 원하는대로 할 수있는 것처럼 보입니다.

아이디어는 부모 프로젝트에서 externalProject_add를 호출하여 어린이 프로젝트의 소스 디렉토리를 지적하는 것입니다 (SVN 또는 CVS에서 어린이 프로젝트를 확인할 수도 있습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top