【问题标题】:How to add files to a non-executable or non-library target with CMake如何使用 CMake 将文件添加到不可执行或非库目标
【发布时间】:2014-02-20 16:37:40
【问题描述】:

我知道如果目标是可执行文件或使用以下命令的库,我可以将一些文件添加到 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 目标上添加此文件的任何想法?谢谢。

【问题讨论】:

    标签: cmake


    【解决方案1】:

    您可以为此使用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
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 2021-06-16
      相关资源
      最近更新 更多