Warning, /frameworks/extra-cmake-modules/docs/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 #=============================================================================
0002 # SPDX-FileCopyrightText: 2000-2013 Kitware, Inc.
0003 # SPDX-FileCopyrightText: 2014-2015 Alex Merry <alex.merry@kde.org>
0004 #
0005 # SPDX-License-Identifier: BSD-3-Clause
0006 #=============================================================================
0007 
0008 include(CMakeDependentOption)
0009 
0010 find_package(Sphinx 1.2 MODULE)
0011 set_package_properties(
0012     Sphinx
0013     PROPERTIES
0014         URL "https://www.sphinx-doc.org/"
0015         DESCRIPTION "Tool to generate documentation."
0016         TYPE OPTIONAL
0017         PURPOSE "Required to build documentation for Extra CMake Modules."
0018 )
0019 
0020 find_package(QCollectionGenerator MODULE)
0021 set_package_properties(
0022     QCollectionGenerator
0023     PROPERTIES
0024         URL "https://www.qt.io/"
0025         DESCRIPTION "Qt help collection generator."
0026         TYPE OPTIONAL
0027         PURPOSE "Required to build Extra CMake Modules documentation in Qt Help format."
0028 )
0029 
0030 cmake_dependent_option(
0031     BUILD_HTML_DOCS "Build html help with Sphinx" ON
0032     "Sphinx_FOUND" OFF
0033 )
0034 add_feature_info(BUILD_HTML_DOCS BUILD_HTML_DOCS "Generate HTML documentation for installed modules.")
0035 
0036 cmake_dependent_option(
0037     BUILD_MAN_DOCS "Build man pages with Sphinx" ON
0038     "Sphinx_FOUND" OFF
0039 )
0040 add_feature_info(BUILD_MAN_DOCS BUILD_MAN_DOCS "Generate man page documentation for installed modules.")
0041 
0042 cmake_dependent_option(
0043     BUILD_QTHELP_DOCS "Build Qt help with Sphinx" OFF
0044     "Sphinx_FOUND;QCollectionGenerator_FOUND" OFF
0045 )
0046 add_feature_info(BUILD_QTHELP_DOCS BUILD_QTHELP_DOCS "Generate QtHelp documentation for installed modules.")
0047 
0048 
0049 set(doc_formats "")
0050 if(BUILD_HTML_DOCS)
0051     list(APPEND doc_formats html)
0052 endif()
0053 if(BUILD_MAN_DOCS)
0054     list(APPEND doc_formats man)
0055 endif()
0056 if(BUILD_QTHELP_DOCS)
0057     list(APPEND doc_formats qthelp)
0058     set(qthelp_extra_commands
0059         COMMAND
0060             QCollectionGenerator::Generator
0061             ${CMAKE_CURRENT_BINARY_DIR}/qthelp/ExtraCMakeModules.qhcp
0062     )
0063 endif()
0064 
0065 if(NOT doc_formats)
0066     return()
0067 endif()
0068 
0069 if (Sphinx_VERSION VERSION_LESS 1.3)
0070     set(sphinx_theme default)
0071 else()
0072     set(sphinx_theme classic)
0073 endif()
0074 configure_file(sphinx/conf.py.in conf.py @ONLY)
0075 configure_file(sphinx/ecm.css.in static/ecm.css)
0076 
0077 
0078 set(doc_format_outputs "")
0079 set(doc_format_last "")
0080 foreach(format ${doc_formats})
0081     set(doc_format_output "doc_format_${format}")
0082     set(doc_format_log "build-${format}.log")
0083     add_custom_command(
0084         OUTPUT ${doc_format_output}
0085         COMMAND
0086             Sphinx::Build
0087             -D man_make_section_directory=0
0088             -c ${CMAKE_CURRENT_BINARY_DIR}
0089             -d ${CMAKE_CURRENT_BINARY_DIR}/doctrees
0090             -b ${format}
0091             ${CMAKE_CURRENT_SOURCE_DIR}
0092             ${CMAKE_CURRENT_BINARY_DIR}/${format}
0093             > ${doc_format_log} # log stdout, pass stderr
0094         ${${format}_extra_commands}
0095         DEPENDS ${doc_format_last}
0096         COMMENT "sphinx-build ${format}: see ${CMAKE_CURRENT_BINARY_DIR}/${doc_format_log}"
0097         VERBATIM
0098     )
0099     set_property(SOURCE ${doc_format_output} PROPERTY SYMBOLIC 1)
0100     list(APPEND doc_format_outputs ${doc_format_output})
0101     set(doc_format_last ${doc_format_output})
0102 endforeach()
0103 
0104 add_custom_target(documentation ALL DEPENDS ${doc_format_outputs})
0105 
0106 if(BUILD_MAN_DOCS)
0107     file(GLOB man_rst RELATIVE ${ECM_SOURCE_DIR}/docs/manual
0108         ${ECM_SOURCE_DIR}/docs/manual/*.[1-9].rst)
0109     foreach(m ${man_rst})
0110         if("x${m}" MATCHES "^x(.+)\\.([1-9])\\.rst$")
0111             set(name "${CMAKE_MATCH_1}")
0112             set(sec "${CMAKE_MATCH_2}")
0113             install(
0114                 FILES ${CMAKE_CURRENT_BINARY_DIR}/man/${name}.${sec}
0115                 DESTINATION ${MAN_INSTALL_DIR}/man${sec}
0116             )
0117         endif()
0118     endforeach()
0119 endif()
0120 if(BUILD_HTML_DOCS)
0121     install(
0122         DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
0123         DESTINATION ${DOC_INSTALL_DIR}
0124         PATTERN .buildinfo EXCLUDE
0125         PATTERN objects.inv EXCLUDE
0126     )
0127 endif()
0128 if(BUILD_QTHELP_DOCS)
0129     install(
0130         FILES ${CMAKE_CURRENT_BINARY_DIR}/qthelp/ExtraCMakeModules.qch
0131         DESTINATION ${DOC_INSTALL_DIR}
0132     )
0133 endif()