56 lines
2.0 KiB
Plaintext
56 lines
2.0 KiB
Plaintext
##
|
|
# Generate sourcecode documentation with Doxygen
|
|
# Use ${PROJECT_SOURCE_DIR}/Doxyfile.in
|
|
# Use option BUILD_DOC to enable/disable generation (default ON)
|
|
# Write output to ${PROJECT_BINARY_DIR}/doc
|
|
##
|
|
include("${CMAKE_CURRENT_LIST_DIR}/HelperFunctions.txt")
|
|
|
|
option(BUILD_DOC "Generate documentation (Doxygen)" ON)
|
|
|
|
if (BUILD_DOC)
|
|
find_package(Doxygen)
|
|
if(NOT DOXYGEN_FOUND)
|
|
message("-- Doxygen not found on system, skipping generation of sourcecode documentation")
|
|
return()
|
|
endif()
|
|
|
|
set(PROJECT_DOXYGEN_DIR "${PROJECT_BINARY_DIR}/doc")
|
|
set(PROJECT_DOXYGEN_INFILE "${PROJECT_SOURCE_DIR}/Doxyfile.in")
|
|
set(PROJECT_DOXYGEN_OUTFILE "${PROJECT_DOXYGEN_DIR}/Doxyfile")
|
|
set(PROJECT_DOXYGEN_TEMPLATE_DIR "${CMAKE_CURRENT_LIST_DIR}/templates/Doxygen")
|
|
|
|
# set(PROJECT_DOXYGEN_HTML_EXTRA_STYLESHEET "${PROJECT_DOXYGEN_TEMPLATE_DIR}/solar.css")
|
|
# set(PROJECT_DOXYGEN_LAYOUT_FILE "${PROJECT_DOXYGEN_TEMPLATE_DIR}/metro.xml")
|
|
set(PROJECT_DOXYGEN_HTML_HEADER "${PROJECT_DOXYGEN_TEMPLATE_DIR}/header.html")
|
|
set(PROJECT_DOXYGEN_HTML_FOOTER "${PROJECT_DOXYGEN_TEMPLATE_DIR}/footer.html")
|
|
|
|
if(NOT EXISTS "${PROJECT_DOXYGEN_INFILE}")
|
|
set(PROJECT_DOXYGEN_INFILE ${PROJECT_DOXYGEN_TEMPLATE_DIR}/Doxyfile.in)
|
|
endif()
|
|
|
|
file(MAKE_DIRECTORY "${PROJECT_DOXYGEN_DIR}")
|
|
if(IS_DIRECTORY "${PROJECT_SOURCE_DIR}/doc")
|
|
message("-- Doxygen copy resources")
|
|
file(COPY "${PROJECT_SOURCE_DIR}/doc" DESTINATION "${PROJECT_DOXYGEN_DIR}")
|
|
endif()
|
|
|
|
message("-- Doxygen configuration: ${PROJECT_DOXYGEN_INFILE}")
|
|
configure_file (
|
|
"${PROJECT_DOXYGEN_INFILE}"
|
|
"${PROJECT_DOXYGEN_OUTFILE}"
|
|
)
|
|
add_custom_target(di-doc
|
|
${DOXYGEN_EXECUTABLE} ${PROJECT_DOXYGEN_DIR}/Doxyfile
|
|
WORKING_DIRECTORY ${PROJECT_DOXYGEN_DIR}
|
|
COMMENT "Generating API documentation with Doxygen" VERBATIM
|
|
)
|
|
|
|
di_get_random_port(PORT)
|
|
add_custom_target(di-doc-http
|
|
python2 -m SimpleHTTPServer ${PORT}
|
|
WORKING_DIRECTORY ${PROJECT_DOXYGEN_DIR}
|
|
)
|
|
else()
|
|
message("-- Doxygen disabled")
|
|
endif() |