40 lines
1.2 KiB
CMake
40 lines
1.2 KiB
CMake
find_program(SPHINX_EXECUTABLE NAMES sphinx-build sphinx-build2)
|
|
|
|
if(NOT SPHINX_EXECUTABLE)
|
|
message(FATAL_ERROR "Could NOT find required executable sphinx-build")
|
|
endif()
|
|
|
|
add_custom_target(doc ALL)
|
|
|
|
set(CCD_DOCTREE_DIR "${CMAKE_CURRENT_BINARY_DIR}/.doctrees")
|
|
set(CCD_HTML_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/html")
|
|
|
|
add_custom_target(html COMMAND
|
|
"${SPHINX_EXECUTABLE}" -b html -d "${CCD_DOCTREE_DIR}" -q
|
|
"${CMAKE_CURRENT_SOURCE_DIR}" "${CCD_HTML_OUTPUT_DIR}")
|
|
add_dependencies(doc html)
|
|
|
|
install(DIRECTORY "${CCD_HTML_OUTPUT_DIR}"
|
|
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/doc/ccd")
|
|
|
|
set(CCD_DOC_ADDITIONAL_MAKE_CLEAN_FILES
|
|
"${CCD_DOCTREE_DIR}"
|
|
"${CCD_HTML_OUTPUT_DIR}")
|
|
|
|
if(NOT WIN32)
|
|
set(CCD_MAN_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/man")
|
|
|
|
add_custom_target(man COMMAND
|
|
"${SPHINX_EXECUTABLE}" -b man -d "${CCD_DOCTREE_DIR}" -q
|
|
"${CMAKE_CURRENT_SOURCE_DIR}" "${CCD_MAN_OUTPUT_DIR}")
|
|
add_dependencies(doc man)
|
|
|
|
install(DIRECTORY "${CCD_MAN_OUTPUT_DIR}/"
|
|
DESTINATION "${CMAKE_INSTALL_MANDIR}/man1")
|
|
|
|
list(APPEND CCD_DOC_ADDITIONAL_MAKE_CLEAN_FILES "${CCD_MAN_OUTPUT_DIR}")
|
|
endif()
|
|
|
|
set_directory_properties(PROPERTIES
|
|
ADDITIONAL_MAKE_CLEAN_FILES ${CCD_DOC_ADDITIONAL_MAKE_CLEAN_FILES})
|