仅在生成自定义目标时在CMake中安装某些内容
我目前正在尝试设置CMake以自动生成我的Doxygen文档。我目前使用以下代码仅在生成自定义目标时在CMake中安装某些内容,cmake,Cmake,我目前正在尝试设置CMake以自动生成我的Doxygen文档。我目前使用以下代码 find_package(Doxygen) if (DOXYGEN_FOUND) configure_file("docs/Doxyfile.in" "${PROJECT_BINARY_DIR}/Doxyfile") add_custom_target(docs COMMAND ${DOXYGEN_EXECUTABLE}
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()
当您输入makedocs
时,它会在PROJECT\u BINARY\u DIR/docs
中生成文档。当您输入makeinstall
时,它会将docs子目录复制到CMAKE\u install\u PREFIX
。但是,如果用户不希望生成文档,只需键入makeinstall
,则会发生以下错误:
CMake Error at cmake_install.cmake:36 (FILE):
file INSTALL cannot find "/home/lukas/workspace/TheGame/build/docs".
只有在生成自定义目标(docs
)时(或者如果PROJECT\u BINARY\u DIR
中存在子目录docs
),才能指示执行install
命令?是否尝试使用该标志
这是可行的,但真的没有办法让它依赖于一个特定的目标吗?@patrickvacek-see寻求另一种解决方案
install(DIRECTORY "${PROJECT_BINARY_DIR}/docs/" DESTINATION "docs" OPTIONAL)