Как добавить файлы в неисполняемую или небиблиотечную цель с помощью CMake

Я понимаю, что могу добавить некоторые файлы в цель в CMake, если целью является исполняемый файл или библиотека, с помощью следующей команды:

add_executable(${target_name} ${source_files})

or 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? Спасибо.


person feelfree    schedule 20.02.2014    source источник


Ответы (1)


Вы можете использовать аргумент SOURCES в add_custom_target для этого:

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
)
person Fraser    schedule 20.02.2014