我知道如果目标是可执行文件或具有以下命令的库,我可以在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
目标上添加此文件的任何想法?谢谢。
答案 0 :(得分:2)
您可以使用add_custom_target
的SOURCES
参数:
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
)