API docs: Add custom target to build for GH pages. (#6335)
authorAina Niemetz <aina.niemetz@gmail.com>
Tue, 13 Apr 2021 17:19:12 +0000 (10:19 -0700)
committerGitHub <noreply@github.com>
Tue, 13 Apr 2021 17:19:12 +0000 (17:19 +0000)
INSTALL.md
docs/CMakeLists.txt

index 1e4ce607e8a4af6c4b06d0f65f194c4b3118c87c..14290afca5f94c7e18f01c7209dbf4db01688eef 100644 (file)
@@ -217,6 +217,10 @@ The API documentation can then be found at `<build_dir>/docs/sphinx/index.html`.
 To only build the documentation, change to the build directory and call
 `make docs`.
 
+To build the documentation for GitHub pages, change to the build directory
+and call `make docs-gh`. The content of directory `<build_dir>/docs/sphinx-gh`
+can then be copied over to GitHub pages.
+
 
 ## Building the Examples
 
index 4b799615db2ca488577db07f5605442e928714dc..b65a10e47128e1c9d5e8ddd61df2c1b5f332e6ad 100644 (file)
@@ -45,9 +45,29 @@ set(SPHINX_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/sphinx)
 add_custom_target(docs ALL
                   DEPENDS docs-doxygen
                   COMMAND
-                  ${SPHINX_EXECUTABLE} -b html
-                  # Tell Breathe where to find the Doxygen output
-                  -Dbreathe_projects.cvc5=${DOXYGEN_OUTPUT_DIR}/xml
-                  ${SPHINX_INPUT_DIR} ${SPHINX_OUTPUT_DIR}
+                    ${SPHINX_EXECUTABLE} -b html
+                    # Tell Breathe where to find the Doxygen output
+                    -Dbreathe_projects.cvc5=${DOXYGEN_OUTPUT_DIR}/xml
+                    ${SPHINX_INPUT_DIR} ${SPHINX_OUTPUT_DIR}
                   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
                   COMMENT "Generating Sphinx Api docs")
+
+set(SPHINX_GH_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/sphinx-gh)
+add_custom_target(docs-gh ALL
+                  DEPENDS docs
+                  COMMAND ${CMAKE_COMMAND} -E remove_directory
+                    ${SPHINX_GH_OUTPUT_DIR}
+                  COMMAND ${CMAKE_COMMAND} -E copy_directory
+                    ${SPHINX_OUTPUT_DIR} ${SPHINX_GH_OUTPUT_DIR}
+                  COMMAND ${CMAKE_COMMAND} -E remove_directory
+                    ${SPHINX_GH_OUTPUT_DIR}/_sources
+                  COMMAND ${CMAKE_COMMAND} -E remove
+                    ${SPHINX_GH_OUTPUT_DIR}/objects.inv
+                  COMMAND ${CMAKE_COMMAND} -E rename
+                    ${SPHINX_GH_OUTPUT_DIR}/_static
+                    ${SPHINX_GH_OUTPUT_DIR}/static
+                  COMMAND find ${SPHINX_GH_OUTPUT_DIR} -type f |
+                    xargs sed -i'orig' 's/_static/static/'
+                  COMMAND find ${SPHINX_GH_OUTPUT_DIR} -name '*orig' -delete
+                  COMMENT "Generating GitHub Api docs")
+