1- include (FindDoxygen)
1+ # Generate documentation
2+
3+ # define doc build path
4+ set (DOC_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR} /doc-build" )
25
3- # put doc in a subdirectory with project name, if not already set so
6+ # define doc installation path
7+ # ensures it ends with project name
48if (NOT CMAKE_INSTALL_DOCDIR)
59 set (CMAKE_INSTALL_DOCDIR "doc" )
610endif ()
711if (NOT "${CMAKE_INSTALL_DOCDIR} " MATCHES "${PROJECT_NAME} $" )
812 set (CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DOCDIR} /${PROJECT_NAME} " )
913endif ()
10- set (DOC_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR} /${CMAKE_INSTALL_DOCDIR} " )
1114
1215# log doc build(install paths)
13- message (STATUS "Documentation will be generated in ${DOC_OUTPUT_DIR } " )
14- message (STATUS "Documentation will be installed in ${CMAKE_INSTALL_DOCDIR} " )
16+ message (STATUS "Documentation will be built in ${DOC_BUILD_DIR } " )
17+ message (STATUS "Documentation will be installed in ${CMAKE_INSTALL_PREFIX} / ${ CMAKE_INSTALL_DOCDIR} " )
1518
1619# general files directly from source
1720install (
@@ -21,6 +24,7 @@ install(
2124)
2225
2326# doxygen-generated files
27+ include (FindDoxygen)
2428if (DOXYGEN_FOUND)
2529 if (NOT DOXYGEN_DOT_FOUND)
2630 message (WARNING "dot not found. Please install Graphviz." )
@@ -42,19 +46,19 @@ if (DOXYGEN_FOUND)
4246 # doxygen fails creating multi-level output directory, make sure it exists
4347 add_custom_target (
4448 doc -dir
45- COMMAND ${CMAKE_COMMAND} -E make_directory "${DOC_OUTPUT_DIR } "
49+ COMMAND ${CMAKE_COMMAND} -E make_directory "${DOC_BUILD_DIR } "
4650 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
4751 COMMENT "Create the doxygen output directory"
4852 VERBATIM
4953 )
5054
5155 # install generated files
5256 install (
53- DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} / ${CMAKE_INSTALL_DOCDIR } /html
57+ DIRECTORY ${DOC_BUILD_DIR } /html
5458 TYPE DOC
5559 OPTIONAL # because available only after "make doc"
5660 )
57- else (DO )
61+ else ()
5862 message (WARNING "Doxygen not found" )
5963endif (DOXYGEN_FOUND)
6064
0 commit comments