54 lines
1.9 KiB
CMake
54 lines
1.9 KiB
CMake
# find doxygen.h template
|
|
include(TemplateFinder)
|
|
find_template_file("doxygen" CPP_UTILITIES DOXYGEN_TEMPLATE_FILE)
|
|
|
|
# find executables
|
|
find_program(DOXYGEN_BIN doxygen)
|
|
find_program(PERL_BIN perl)
|
|
if(NOT DOXYGEN_BIN)
|
|
message(WARNING "Doxygen not found, unable to add target for generating API documentation.")
|
|
endif()
|
|
|
|
# load cached configuration and other variables
|
|
set(DOXY_LANGUAGE "English" CACHE STRING "specifies language of the API documentation generated with Doxygen")
|
|
set(DOXY_CUSTOM_CONFIG "" CACHE STRING "specifies extra options for Doxygen")
|
|
set(META_DOXY_NUMBER 1)
|
|
set(META_DOXY_LANGUAGE "${DOC_LANGUAGE}")
|
|
set(DOXY_INPUT_FILES ${HEADER_FILES} ${SRC_FILES} ${TEST_HEADER_FILES} ${TEST_SRC_FILES} ${WIDGETS_HEADER_FILES} ${WIDGETS_SRC_FILES} ${QML_HEADER_FILES} ${QML_SRC_FILES})
|
|
set(DOXY_OUTPUT_FILES "")
|
|
|
|
# convert DOXY_INPUT_FILES to whitespace-separated list
|
|
include(ListToString)
|
|
list_to_string(" " "${CMAKE_CURRENT_SOURCE_DIR}/" "${DOXY_INPUT_FILES}" DOXY_INPUT_FILES_WHITESPACE_SEPARATED)
|
|
message("string: ${DOXY_INPUT_FILES_WHITESPACE_SEPARATED}")
|
|
|
|
# generate Doxygen configuration
|
|
configure_file(
|
|
"${DOXYGEN_TEMPLATE_FILE}"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/doxygen.config"
|
|
)
|
|
|
|
# add target for generating API documentation
|
|
add_custom_target(${META_PROJECT_NAME}_apidoc
|
|
COMMAND "${DOXYGEN_BIN}" "${CMAKE_CURRENT_BINARY_DIR}/doxygen.config"
|
|
SOURCES ${DOXY_INPUT_FILES}
|
|
)
|
|
|
|
# add install target for API documentation
|
|
# TODO
|
|
|
|
foreach(API_DOC_OUTPUT_FILE ${API_DOC_OUTPUT_FILES})
|
|
get_filename_component(API_DOC_OUTPUT_DIR ${API_DOC_OUTPUT_FILE} DIRECTORY)
|
|
install(
|
|
FILES ${API_DOC_OUTPUT_FILE}
|
|
DESTINATION share/${META_PROJECT_NAME}/${API_DOC_OUTPUT_DIR}
|
|
COMPONENT cmake-modules
|
|
)
|
|
endforeach()
|
|
|
|
if(NOT TARGET install-api-doc)
|
|
add_custom_target(install-api-doc
|
|
COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=api-doc -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"
|
|
)
|
|
endif()
|