如何使用CMake将文件添加到不可执行或非库目标

时间:2014-02-20 16:37:40

标签: cmake

我知道如果目标是可执行文件或具有以下命令的库,我可以在CMake中向目标添加一些文件:

add_executable(${target_name} ${source_files})

add_library(${target_name} ${source_files})

然后我的问题是如果目标不是可执行文件或库。我提出这个问题是因为我想用Doxygen构建文档目标,这可以通过以下命令来完成:

find_package(Doxygen)
if(DOXYGEN_FOUND)
  set(doxyfile_in  ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in) #doxygen file
  set(doxyfile    ${PROJECT_BINARY_DIR}/Doxyfile)
  #configure the doxygen file
  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxygen.in ${PROJECT_BINARY_DIR}/Doxyfile @ONLY)
  add_custom_target( doc ALL
    COMMAND ${DOXYGEN_EXECUTABLE} ${doxyfile}
    WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
    COMMENT "Generating API documentation with Doxygen" VERBATIM
  )
endif(DOXYGEN_FOUND)

使用Visual Studio,doc成为目标,我还想在项目中添加Doxyfile.in文件,以防我需要使用IDE更改内部变量。关于如何在doc目标上添加此文件的任何想法?谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用add_custom_targetSOURCES参数:

add_custom_target( doc ALL
  COMMAND ${DOXYGEN_EXECUTABLE} ${doxyfile}
  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
  COMMENT "Generating API documentation with Doxygen" VERBATIM
  SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/Doxygen.in
)