Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions fern/products/docs/pages/api-references/library-docs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ Local parsing runs each parser inside a Docker container, so [Docker](https://do
</Warning>

<Note>
For C++ libraries, the parser uses your `path` directory as the source root. If your Doxyfile sets its input directive to subdirectories, the effective scope is your `path` combined with those Doxyfile input entries. Ensure the Doxyfile's input paths are relative to the root of your `path` directory.
For C++ libraries, the parser uses your `input.path` directory as the source root. Input directives in your Doxyfile don't change that scope: Fern honors only [a few Doxyfile settings](#configuration-reference) and ignores the rest.
</Note>
</Tab>
</Tabs>
Expand Down Expand Up @@ -207,5 +207,7 @@ You can also edit page content by modifying the MDX files directly — generated
</ParamField>

<ParamField path="config.doxyfile" type="string">
Path to a custom [Doxyfile](https://www.doxygen.nl/manual/config.html). C++ only. For local generation, the Doxyfile's input paths are resolved relative to the `input.path` directory.
Path to a custom [Doxyfile](https://www.doxygen.nl/manual/config.html). C++ only. Fern reads four settings from it and applies them to its own doxygen configuration: `ALIASES`, `PREDEFINED`, `FILE_PATTERNS`, and `OPTIMIZE_OUTPUT_FOR_C`. `ALIASES` supports parameterized macros and backslash line continuations.

Every other setting is ignored, including `INPUT`, `INPUT_FILTER`, `GENERATE_XML`, and the `@INCLUDE` and `@INCLUDE_PATH` directives. Publishing fails when one of the four supported settings has an invalid value: a space or shell metacharacter in `FILE_PATTERNS`, a value other than `YES` or `NO` for `OPTIMIZE_OUTPUT_FOR_C`, an `ALIASES` entry that isn't an alias definition, a trailing backslash, or doxygen's `$(VAR)` environment-variable expansion. Doxyfile content over 262,144 characters is also rejected.
</ParamField>
7 changes: 7 additions & 0 deletions fern/products/docs/pages/changelog/2026-08-20.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## Supported Doxyfile settings for C++ library docs

<ChangelogTags>api-reference, security</ChangelogTags>

The [library docs generator](/learn/docs/api-references/library-reference) now reads four settings from a custom Doxyfile and ignores the rest: `ALIASES`, `PREDEFINED`, `FILE_PATTERNS`, and `OPTIMIZE_OUTPUT_FOR_C`. Previously honored settings such as `INPUT`, `INPUT_FILTER`, and `@INCLUDE` directives no longer take effect, and an invalid value for one of the four supported settings fails the docs publish.

<Button intent="none" outlined rightIcon="arrow-right" href="/learn/docs/api-references/library-reference#configuration-reference">Read the docs</Button>
Loading