Files
TheRock/rocm-libraries/shared/rocroller/docs/README.md
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

95 lines
4.2 KiB
Markdown

# HTML Documentation Instructions
## Doxygen
Within the directory `docs/src/`, the file `Doxyfile` controls what is produced on the Doxygen part of the website. Likewise, the ```ReadTheDocs``` themed Sphinx webpage is produced via the `conf.py` file. Both pages are build using the the build system created by the CMake configuration step. The Doxygen site is built within the Sphinx directory in the documentation build folder. CMake commands also control how the two websites are stitched together.
## Adding documentation
Documents can be in either Markdown or reStructuredText File format. Both can be included into the generated website documention. There are differences in their capabilites that this README will not address.
### Adding documentation into the `docs` folder
Pages that do not fit in any particular source folder can be placed in the `docs/src` folder. Example of these may be overall design documentation or auxiliary behaviors or tools.
Images can be contained within the documents, however artifacts (the image files themselves) need to be added to the `docs/src/images` folder. Any other artifacts should be dropped into a new `docs/src/<artifact_label>` folder.
After adding the documentation files, the file `docs/src/index.rst` needs to be updated. `index.rst` contains the table of contents for the entire HTML documentation. The file name must be added to the content in the order the document requires. One note of care, the name of the entry in the table of contents must be exact to name of the file being included, minus the suffix, and ***must*** match the case. For example if the file `FooBar.md` is to be included, the entry would read `FooBar` in the table of contents.
### Adding a document from another folder
Sometimes it makes sense to have the documentation file resident in the source directory it is referencing. In that case, `CMakeLists.txt` needs to be edited to pull in the file to the `docs/<build_directory>` and deleted when a developer executes a `make clean` command.
In the section labeled `# Aux docs` in `CMakeLists.txt` add a custom target in this format:
```
add_custom_target(<copyover_some_readme>
COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/../<path_to_doc>/<doc_name> ${DOCS_BUILD_DIR}/src/<new_file_name>
COMMENT "Copying over <doc_name> to docs/build/src folder as <new_file_name>."
DEPENDS copysrc_to_builddir
)
```
Rename the `< >` bracketed sections to the names and paths needed. Then the custom target under the label `# Prebuild Sphinx` needs editing to add the created custom target's name:
```
# Prebuild Sphinx
add_custom_target(prebuild_sphinx
DEPENDS
copysrc_to_builddir
clip_designreadme
copyover_mainreadme
copyover_dockerreadme
<copyover_some_readme>
build_doxygen
)
```
The order here does not matter. Finally, don't forget to update the `docs/src/index.rst` file with the `<new_file_name>` without the file type suffix.
`CMakeLists.txt` can also be used to modify the file before the website is built. There are multiple examples of document editing in that file.
### Mermaid Charts
Sphinx is able to render Mermaid charts such as:
```{mermaid}
graph TD
UA(["User(A)"])
SDA0(["SubDimension(A; 0)"])
SDA1(["SubDimension(A; 1)"])
MTAN0(["MacroTileNumber(A; 0)"])
MTAI0(["MacroTileIndex(A; 0)"])
MTAN1(["MacroTileNumber(A; 1)"])
MTAI1(["MacroTileIndex(A; 1)"])
FK(["K Loop Iterations (512)"])
UA -- Split --> SDA0 & SDA1
SDA0 -- Tile --> MTAN0 & MTAI0
SDA1 -- Tile --> MTAN1 & MTAI1
MTAN1 -- PassThrough --> FK
style MTAN0 stroke:#3f3
style FK stroke:#3f3
```
However, GitHub's style differs slightly from the Sphinx plugin. GitHub expects `mermaid::` while Sphinx expects `{mermaid}`.
This means a sed command needs to be run to find and replace the string. Here is an example:
```
add_custom_target(<copyover_some_readme>
COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/../<path_to_doc>/<doc_name> ${DOCS_BUILD_DIR}/src/<new_file_name>
COMMAND sed -i 's;mermaid::;{mermaid};g' ${DOCS_BUILD_DIR}/src/<new_file_name>
COMMENT "Copying over <doc_name> to docs/build/src folder as <new_file_name>."
DEPENDS copysrc_to_builddir
)
```
Where `sed -i 's;mermaid::;{mermaid};g'` is the command that replaces the string.