add_subdirectory가 추가 된 디렉토리에 정의 된 대상과 함께 install (TARGETS ...)을 사용할 수 있습니까?install (TARGETS ...) 및 add_subdirectory
나의 유스 케이스는 gtest 용 rpm을 e.gg로 만들고 싶다. gtest 프로젝트는 설치 문없이 CMakeLists.txt를 갖습니다. gtest의 CMakeLists.txt에이 문장을 추가하지 않고 패키지를 만들고 싶습니다.
나는이 결과 디렉토리 구조를 가지고 :
+ gtest-1.5.0/...
+ CMakeLists.txt
gtest-1.5.0의 CMakeLists이 같은 라이브러리를 정의
cxx_static_library(gtest "${cxx_strict}" src/gtest-all.cc)
cxx_static_library(gtest_main "${cxx_strict}" src/gtest_main.cc)
target_link_libraries(gtest_main gtest)
지금 난 내 CMakeLists이 뭔가를 추가 할 수 있습니다. txt :
add_subdirectory(gtest-1.5.0)
install(TARGETS gtest gtest_main ARCHIVE DESTINATION lib)
그러나 cmake는 올바르게 :
CMake Error at CMakeLists.txt:10 (install):
install TARGETS given target "gtest" which does not exist in this
directory.
gtest-1.5.0을 패치하지 않고이를 수행 할 수있는 방법이 있습니까?
확인 ..이 일할 수있는,하지만 난 target_link_libraries에서 정의 된 이름을 사용하고있는 명령을 설치할 수없는 이유는, 이해가 안 돼요! – Gizmomogwai
설치 명령은 모든 대상을 검색하는 target_link_libraries와 달리 대상이 있는지 알아낼 때 현재 디렉토리를 찾습니다. – RobertJMaynard
Ok ... 설명을 주셔서 감사합니다. 이런 식으로 생각했는데 확실하지 않았습니다. (설치 (FILES 명령은 파일에 ARCHIVE 매개 변수를 사용하지 않으므로) 설치를 편집 할 수 있습니까? – Gizmomogwai