2
我目前正在嘗試設置CMake來自動生成我的Doxygen文檔。我目前使用下面的代碼。只在CMake中安裝一些東西,如果自定義目標是
find_package(Doxygen)
if (DOXYGEN_FOUND)
configure_file("docs/Doxyfile.in" "${PROJECT_BINARY_DIR}/Doxyfile")
add_custom_target(docs
COMMAND ${DOXYGEN_EXECUTABLE}
"${PROJECT_BINARY_DIR}/Doxyfile"
SOURCES "${PROJECT_BINARY_DIR}/Doxyfile")
install(DIRECTORY "${PROJECT_BINARY_DIR}/docs/"
DESTINATION "docs")
endif()
它的工作原理,當你進入make docs
它產生PROJECT_BINARY_DIR/docs
的文檔中的罰款。當您輸入make install
時,它將docs子目錄複製到CMAKE_INSTALL_PREFIX
。然而,當用戶不希望生成文檔,只是類型make install
出現以下錯誤:
CMake Error at cmake_install.cmake:36 (FILE):
file INSTALL cannot find "/home/lukas/workspace/TheGame/build/docs".
一個人怎麼可以指示install
命令才能執行,如果一個自定義的目標(docs
)建立(或者如果子目錄docs
存在於PROJECT_BINARY_DIR
)?
這是有效的,但真的沒有辦法讓它依賴於特定的目標嗎? – patrickvacek 2018-02-08 11:02:11
@patrickvacek有關替代解決方案,請參閱https://stackoverflow.com/questions/8636479/postpone-making-custom-target-until-install – sakra 2018-02-10 09:21:01