Files
pico/projects/Zeta/documentation/CMakeLists.txt
2026-03-24 22:22:37 +00:00

80 lines
2.6 KiB
CMake
Vendored

# Zeta - documentation/CMakeLists.txt
# ______ ______________ ___
# |__ / | ___|___ ___|/ \
# / /__| __| | | / - \
# /______|_____| |__| /__/ \__\
# Copyright (C) 2006-2024 Manuel Sainz de Baranda y Goñi.
# # Released under the terms of the GNU Lesser General Public License v3.
find_package(Sphinx REQUIRED)
if(${PROJECT_NAME}_WITH_HTML_DOCUMENTATION)
set(_html_documentation_output "${CMAKE_CURRENT_BINARY_DIR}/HTML")
if(${PROJECT_NAME}_SPHINX_HTML_THEME STREQUAL "")
set(_html_theme_option "")
else()
set(_html_theme_option "-Dhtml_theme=${${PROJECT_NAME}_SPHINX_HTML_THEME}")
endif()
add_custom_command(
OUTPUT "${_html_documentation_output}"
COMMAND "${SPHINX_BUILD_EXECUTABLE}"
-b html
${_html_theme_option}
"${CMAKE_CURRENT_SOURCE_DIR}"
"${_html_documentation_output}"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Generating documentation in HTML format for ${PROJECT_NAME}")
add_custom_target(
${PROJECT_NAME}-Documentation-HTML ALL
DEPENDS "${_html_documentation_output}")
install(DIRECTORY "${_html_documentation_output}/"
DESTINATION "${CMAKE_INSTALL_DOCDIR}/documentation"
COMPONENT ${PROJECT_NAME}_Documentation)
endif()
if(${PROJECT_NAME}_WITH_PDF_DOCUMENTATION)
find_package(LATEX REQUIRED COMPONENTS PDFLATEX)
set(_latex_documentation_output "${CMAKE_CURRENT_BINARY_DIR}/LaTeX")
add_custom_command(
OUTPUT "${_latex_documentation_output}"
COMMAND "${SPHINX_BUILD_EXECUTABLE}"
-b latex
"${CMAKE_CURRENT_SOURCE_DIR}"
"${_latex_documentation_output}"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Generating documentation in LaTeX format for ${PROJECT_NAME}")
add_custom_target(
${PROJECT_NAME}-Documentation-LaTeX ALL
DEPENDS "${_latex_documentation_output}")
string(TOLOWER ${PROJECT_NAME} _pdf_documentation_output)
set(_pdf_documentation_output "${_latex_documentation_output}/${_pdf_documentation_output}.pdf")
add_custom_command(
OUTPUT "${_pdf_documentation_output}"
COMMAND "${CMAKE_MAKE_PROGRAM}"
MAIN_DEPENDENCY "${_latex_documentation_output}"
WORKING_DIRECTORY "${_latex_documentation_output}"
COMMENT "Generating documentation in PDF format for ${PROJECT_NAME}")
add_custom_target(
${PROJECT_NAME}-Documentation-PDF ALL
DEPENDS "${_pdf_documentation_output}")
add_dependencies(${PROJECT_NAME}-Documentation-PDF ${PROJECT_NAME}-Documentation-LaTeX)
install(FILES "${_pdf_documentation_output}"
DESTINATION "${CMAKE_INSTALL_DOCDIR}"
RENAME "${PROJECT_NAME} v${PROJECT_VERSION}.pdf"
COMPONENT ${PROJECT_NAME}_Documentation)
endif()
# documentation/CMakeLists.txt EOF