llvm-project/flang/docs/FIR/CreateFIRLangRef.py
Samarth Narang 47171ac3f9
[Flang] Add Sphinx man page and html support for Flang (#141882)
This patch refactors the Flang documentation CMake and Sphinx
configuration to address build issues.

**CMake changes**:

- Moves the `gen_rst_file_from_td()` call out of the HTML-only block so
that both `docs-flang-html` and `docs-flang-man` builds depend on the
generated `FlangCommandLineReference.rst` file.

**conf.py changes**:
- Introduces `myst_parser` dependency as a required Markdown parser for
both HTML and man builds.
- Introduces the correct source_suffix mapping for both .rst and .md
files.
- Populates the man_pages configuration so the main index page generates
a ` flang(1) `man page.

Fixes #141757

---------

Authored-by: Samarth Narang <samanara@qti.qualcomm.com>
2025-06-04 22:24:42 +01:00

21 lines
942 B
Python

# This script combines FIRLangRef_Header.md with the auto-generated Dialect/FIRLangRef.md
# for the purpose of creating an introduction header/paragraph for FIRLangRef.html.
import os
# These paths are relative to flang/docs in the build directory, not source, as that's where this tool is executed.
HEADER_PATH = os.path.join("SourceHtml", "FIR", "FIRLangRef_Header.md")
DOCS_PATH = os.path.join("Dialect", "FIRLangRef.md")
OUTPUT_PATH = os.path.join("SourceHtml", "FIRLangRef.md")
# 1. Writes line 1 from docs to output, (comment line that the file is autogenerated)
# 2. Adds a new line
# 3. Writes the entire header to the output file
# 4. Writes the remainder of docs to the output file
with open(OUTPUT_PATH, "w") as output:
with open(HEADER_PATH, "r") as header, open(DOCS_PATH, "r") as docs:
output.write(docs.readline())
output.write("\n")
output.write(header.read())
output.write(docs.read())