我使用cmake时遇到以下问题。我使用http://tobias.rautenkranz.ch/cmake/doxygen/中的UseDoxygen为我的库生成文档。这很好,但知道我想要实现以下内容: 当我调用“make install”时,我想构建文档并安装它。因此我添加
install(DIRECTORY ${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_HTML_DIR} DESTINATION share/doc/mylib/)
add_dependencies(install doc)
到我的CMakeLists.txt。 这会导致错误:
CMake Error at CMakeModules/UseDoxygen.cmake:145 (add_dependencies):
add_dependencies Adding dependency to non-existent target: install
Call Stack (most recent call first):
CMakeLists.txt:141 (include)
是否有可能为此获得简单的解决方法?因为如果目标没有连接,安装步骤就不会安装,除非手动完成“make doc”调用“make install”。
问候 格里苏
答案 0 :(得分:6)
我们通过在add_custom_target
添加指定ALL
选项的情况下构建我们的文档,以便使用all
目标进行构建。
然后安装,它只是install
命令。无需向install
目标添加任何内容。
如果您将文档添加到all
目标,那么执行make install
也会构建文档。
答案 1 :(得分:2)
如果生成代码文档,那么在构建命令之后执行该命令不是更好吗?通过这种方式,它将在安装时可用。
您可以在POST_BUILD中添加自定义命令并在那里执行doxygen命令。请点击http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:add_custom_command
了解更多信息答案 2 :(得分:1)
通过add_custom_target(ALL ...)构建文档不是一个理想的解决方案,因为这意味着文档会针对所有配置(Debug,Release,RelWithDebInfo,MinSizeRel)进行冗余构建。
无论构建配置如何,我都想构建一次文档,然后使用install()命令的CONFIGURATIONS选项仅为Release和RelWithDebInfo配置安装它。 install()应该依赖于文档目标,但正如我所说,只为一个配置构建它。似乎没有办法将install()中的依赖项添加到满足这些要求的文档中。