Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅在生成自定义目标时在CMake中安装某些内容_Cmake - Fatal编程技术网

仅在生成自定义目标时在CMake中安装某些内容

仅在生成自定义目标时在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}

我目前正在尝试设置CMake以自动生成我的Doxygen文档。我目前使用以下代码

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)