CMake (버전 2.8.5 사용)에서 다음을 어떻게 달성합니까? 나는 doc
이라는 이름의 사용자 정의 타겟에 의해 생성 된 문서를 가지고있다. 그 출력은 설치하거나 CPack 할 때 포함하고 싶다.CMake에게 설치 디렉토리를 알려주는 방법은 가짜 타겟에 달려 있습니까?
add_custom_target(doc "${DOXYGEN_EXECUTABLE}" Doxyfile)
install(DIRECTORY ${CMAKE_BINARY_DIR}/doc DESTINATION doc)
Doxyfile
는 ${CMAKE_BINARY_DIR}/doc
에서 문서를 넣어 Doxygen을 알려줍니다.
나는 빌드 디렉토리에이 작업을 수행 할 경우 : 첫 번째 줄은 install
대상이 의존하는 디렉토리를 생성하기 때문에
make doc
cpack
일이, 잘 작동합니다. 다음은이 ${CMAKE_BINARY_DIR}/doc
을 찾을 수없는 불평
cpack
을 : 나는 신선한 빌드가있는 경우
그러나, (그래서 ${CMAKE_BINARY_DIR}/doc
은 아직 존재하지 않는), 그리고 직접 CPack를 호출
CMake Error at <snip>/build/cmake_install.cmake:36 (FILE):
file INSTALL cannot find "<snip>/build/doc".
나는 또한 다음을 시도했다 :
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/doc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile)
install(DIRECTORY ${CMAKE_BINARY_DIR}/doc DESTINATION doc)
나는 아직도 얻는다. CPack 오류가 발생하여 빌드 디렉토리에 make doc
을 입력해도 작동하지 않습니다.
내가 할 그래서 경우 make doc
수동이 게시물의 상단에있는 구성으로 작동하지만, 어떻게 내가 말할 수있는 cpack
전에 cmake/cpack 것을이 문서를 작성하는 일이 있도록 install
지시어는 사용자 지정 대상 doc
에 따라 달라 cpack
또는 make install
으로 전화 할 때 자동으로?
감사합니다.
고마워요, 실제로 가능한 해결책입니다. 그러나,'ALL' 키워드는 항상 타겟이 만들어지게합니다. 이 경우에는 문제가되지 않지만 설치 대상 (암시 적으로'ALL'에 종속 됨)과 내 사용자 정의 대상 사이에 명시 적 종속성을 추가 할 수있는 일반적인 솔루션에 관심이 있습니다. –
@ysnikraz 답변을 업데이트했습니다. 불행히도 cmake는 커스텀과 빌트인 타겟 간의 의존성을 설정하는 확실한 방법이 없습니다. –
고맙습니다. 업데이트 및 해결 방법을 알려주세요. 그냥 테스트하고 잘 작동합니다. 정확히 내가 무엇을 찾고 있었는지! –