src.dualinventive.com/dinet/sec-multi-proxy/libdipp/common/cmake/Doxygen.txt

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()