Cara menambahkan file ke target yang tidak dapat dieksekusi atau non-perpustakaan dengan CMake

Saya mengerti bahwa saya dapat menambahkan beberapa file ke target di CMake jika targetnya adalah file yang dapat dieksekusi atau perpustakaan dengan perintah berikut:

add_executable(${target_name} ${source_files})

or add_library(${target_name} ${source_files})

Lalu pertanyaan saya adalah bagaimana jika targetnya bukan executable atau perpustakaan. Saya mengajukan pertanyaan ini karena saya ingin membuat target dokumentasi dengan Doxygen, dan ini dapat dilakukan dengan perintah berikut:

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)

Dengan Visual Studio, doc menjadi target, dan saya juga ingin menambahkan file Doxyfile.in di proyek kalau-kalau saya perlu mengubah beberapa variabel di dalamnya dengan IDE. Adakah ide tentang bagaimana saya dapat menambahkan file ini pada target doc? Terima kasih.


person feelfree    schedule 20.02.2014    source sumber


Jawaban (1)


Anda dapat menggunakan argumen SOURCES dari add_custom_target untuk ini:

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