CMake将依赖项添加到安装目标

时间:2012-02-06 16:10:27

标签: cmake

我使用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”。

问候 格里苏

3 个答案:

答案 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()中的依赖项添加到满足这些要求的文档中。