2017-02-08 1 views
2

CMake와 함께 add_subdirectory(gtest)을 사용하여 프로젝트를 테스트하기 위해 gtest을 빌드합니다. 나는 또한 CPack을 사용하여 설치 프로그램을 만든다.설치하지 않고 add_subdirectory()

문제는 gtest repo (git 하위 모듈)가 install()을 일부 파일에서 실행하므로 설치 프로그램에서 종료됩니다! 분명히 나는 ​​그것을 원하지 않는다. 해당 하위 디렉토리에 대해 install() 명령을 CMakeLists에서 제거하지 않고 비활성화하는 방법이 있습니까?

+0

이 gtest을 사용하지 않는 한 절대로, 그래서 이것은 바보 같은 질문,하지만 수도 ... 왜 직접 관련이없는 도구를 구축하여 프로젝트 *에서 * 프로젝트? 왜 gtest를 별도로 빌드/설치하고 완료해야합니까? (나는 내 ​​프로젝트 안에 Boost.Test를 만들지 않을 것이다.) – DevSolar

+0

프로젝트 빌드 및 cmake와의 연결이 간단해진다. 'add_directory'를 사용하여 트리 구조를 만들면 찾을 필요없이'target_link_libraries (mytest gtest)'할 수 있습니다. 그것은 매우 우아하지만이 이슈와는 별개로 아주 잘 작동합니다. – Timmmm

+1

하지만, find_package()는 뭔가를 위해'add_subdirectory()'를 사용하고 있으며, 문제점을 발견하고,'add_subdirectory()'가 * 의도하지 않은 * 작업을 수행하기를 원합니다. .. find_package() (어려운 일은 아님)와'add_subdirectory()'*를 사용하지 않는 것이 문제를 해결할 것이라고 암시하고 싶었습니다. ;-) – DevSolar

답변

4

당신은 설치되는 구글 테스트를 방지하기 위해 이것을 사용할 수 있습니다 :

add_directory(gtest EXCLUDE_FROM_ALL) 
+0

맞다. 나는 [이미 이것을 발견했다] (https://stackoverflow.com/a/43043052/265521). 그러나 어떤 이유로 나는 내 자신의 질문에 대답하지 않았다 ... : -S – Timmmm

관련 문제