Merge branch 'release-2020' into master
[alexxy/gromacs.git] / docs / CMakeLists.txt
index 41dad0166050a888a29e26c22557a0cf1a8653c3..24def5229319fd8867463b8be864e770b8cae065 100644 (file)
@@ -1,7 +1,8 @@
 #
 # This file is part of the GROMACS molecular simulation package.
 #
-# Copyright (c) 2014,2015,2016,2017,2018,2019,2020, by the GROMACS development team, led by
+# Copyright (c) 2014,2015,2016,2017,2018 by the GROMACS development team.
+# Copyright (c) 2019,2020, by the GROMACS development team, led by
 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
 # and including many others, as listed in the AUTHORS file in the
 # top-level source directory and at http://www.gromacs.org.
@@ -47,9 +48,8 @@
 # of configure time, because 1) some of the version variables are only
 # available during build time, and 2) we don't want to do all the Sphinx setup
 # during configuration to save some time when not building the content.
-# All the generated values get put into conf-vars.py (generated from
-# conf-vars.py.cmakein), which in turn is included by the Sphinx configuration
-# file conf.py.
+# All of the generated values get put into conf.py (generated from
+# conf.cmakein.py).
 
 set(SOURCE_MD5SUM "unknown" CACHE STRING
     "MD5 sum of the source tarball, normally used only for the pre-release webpage build")
@@ -327,19 +327,21 @@ if (SPHINX_FOUND)
     set(SPHINX_SOURCE_FILES
         index.rst
         download.rst
-        conf.py
         links.dat
         dev-manual/build-system.rst
         dev-manual/change-management.rst
         dev-manual/commitstyle.rst
+        dev-manual/containers.rst
         dev-manual/documentation-generation.rst
         dev-manual/contribute.rst
         dev-manual/doxygen.rst
         dev-manual/error-handling.rst
         dev-manual/formatting.rst
+        dev-manual/gitlab.rst
         dev-manual/gmxtree.rst
         dev-manual/includestyle.rst
         dev-manual/index.rst
+        dev-manual/infrastructure.rst
         dev-manual/jenkins.rst
         dev-manual/known-issues.rst
         dev-manual/language-features.rst
@@ -361,6 +363,15 @@ if (SPHINX_FOUND)
         how-to/visualize.rst
         install-guide/index.rst
         release-notes/index.rst
+        release-notes/2021/major/highlights.rst
+        release-notes/2021/major/features.rst
+        release-notes/2021/major/performance.rst
+        release-notes/2021/major/tools.rst
+        release-notes/2021/major/bugs-fixed.rst
+        release-notes/2021/major/removed-functionality.rst
+        release-notes/2021/major/deprecated-functionality.rst
+        release-notes/2021/major/portability.rst
+        release-notes/2021/major/miscellaneous.rst
         release-notes/2020/2020.1.rst
         release-notes/2020/2020.2.rst
         release-notes/2020/2020.3.rst
@@ -474,7 +485,7 @@ if (SPHINX_FOUND)
         set(IMAGE_CONVERT_STRING "impossible")
     endif()
 
-    set(SPHINX_CONFIG_VARS_FILE ${SPHINX_INPUT_DIR}/conf-vars.py)
+    set(SPHINX_CONFIG_FILE ${SPHINX_INPUT_DIR}/conf.py)
     if (GMX_PYTHON_PACKAGE)
         set(GMXAPI_PYTHON_STAGING_DIR ${CMAKE_BINARY_DIR}/python_packaging/src/gmxapi_staging)
         # TODO: Resolve circular reference. We would like to get the CMake build-time directory for
@@ -484,23 +495,29 @@ if (SPHINX_FOUND)
         # in this context?
     endif ()
 
-    gmx_configure_version_file(conf-vars.py.cmakein ${SPHINX_CONFIG_VARS_FILE}
+    gmx_configure_version_file(
+        conf.cmakein.py ${SPHINX_CONFIG_FILE}
         EXTRA_VARS
-            SPHINX_EXTENSION_PATH RELENG_PATH
-            IMAGE_CONVERT_STRING
+            CMAKE_MINIMUM_REQUIRED_VERSION
             EXPECTED_DOXYGEN_VERSION
             EXPECTED_SPHINX_VERSION
-            CMAKE_MINIMUM_REQUIRED_VERSION REQUIRED_CUDA_VERSION
-            REQUIRED_OPENCL_MIN_VERSION
-            REQUIRED_CUDA_COMPUTE_CAPABILITY REGRESSIONTEST_VERSION
-            SOURCE_MD5SUM REGRESSIONTEST_MD5SUM_STRING
-            GMX_TNG_MINIMUM_REQUIRED_VERSION
+            GMX_ADMIN_DIR
             GMX_LMFIT_REQUIRED_VERSION
             GMX_MANUAL_DOI_STRING
+            GMX_TNG_MINIMUM_REQUIRED_VERSION
             GMX_SOURCE_DOI_STRING
             GMXAPI_PYTHON_STAGING_DIR
+            IMAGE_CONVERT_STRING
+            REGRESSIONTEST_VERSION
+            REQUIRED_CUDA_COMPUTE_CAPABILITY
+            REQUIRED_CUDA_VERSION
+            REQUIRED_OPENCL_MIN_VERSION
+            REGRESSIONTEST_MD5SUM_STRING
+            RELENG_PATH
+            SOURCE_MD5SUM
+            SPHINX_EXTENSION_PATH
         COMMENT "Configuring Sphinx configuration file")
-    gmx_add_sphinx_input_file(${SPHINX_CONFIG_VARS_FILE})
+    gmx_add_sphinx_input_file(${SPHINX_CONFIG_FILE})
     gmx_add_sphinx_source_files(FILES ${SPHINX_SOURCE_FILES})
     if (EXISTS ${RELENG_PATH}/docs/FileList.cmake)
         include(${RELENG_PATH}/docs/FileList.cmake)
@@ -600,6 +617,10 @@ if (SPHINX_FOUND)
 
     # Sphinx cache with pickled ReST documents
     set(SPHINX_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_doctrees")
+    set(SPHINX_CONFIG_OVERRIDES "")
+    if (GMX_DEVELOPER_BUILD)
+        set(SPHINX_CONFIG_OVERRIDES "-Dtodo_include_todos=1")
+    endif()
     add_custom_target(webpage-sphinx
         DEPENDS sphinx-programs
         DEPENDS sphinx-input
@@ -612,6 +633,7 @@ if (SPHINX_FOUND)
             -q -b html
             -w sphinx-html.log
             -d "${SPHINX_CACHE_DIR}"
+            ${SPHINX_CONFIG_OVERRIDES}
             "${SPHINX_INPUT_DIR}"
             "${HTML_OUTPUT_DIR}"
         WORKING_DIRECTORY
@@ -684,7 +706,7 @@ set(HTML_BUILD_NOT_POSSIBLE_REASON)
 set(HTML_BUILD_WARNINGS)
 
 # Next, turn it off if any of the preconditions are unsatisified
-if (NOT PythonInterp_FOUND)
+if (NOT Python3_Interpreter_FOUND)
     set(HTML_BUILD_IS_POSSIBLE OFF)
     set(HTML_BUILD_NOT_POSSIBLE_REASON "Python is required")
 elseif (NOT SPHINX_FOUND)