3

現在、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でしょうか?

4

1 に答える 1

7

OPTIONALフラグを使用してみましたか?

install(DIRECTORY "${PROJECT_BINARY_DIR}/docs/" DESTINATION "docs" OPTIONAL)
于 2012-07-06T11:11:13.200 に答える