From 345de45fca729f19ad16913b7eb7f5317a273c51 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 20 Aug 2026 17:08:07 +0000 Subject: [PATCH] docs(library-docs): document supported Doxyfile settings Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- fern/products/docs/pages/api-references/library-docs.mdx | 6 ++++-- fern/products/docs/pages/changelog/2026-08-20.mdx | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 fern/products/docs/pages/changelog/2026-08-20.mdx diff --git a/fern/products/docs/pages/api-references/library-docs.mdx b/fern/products/docs/pages/api-references/library-docs.mdx index f45df7b37..c0f6baf36 100644 --- a/fern/products/docs/pages/api-references/library-docs.mdx +++ b/fern/products/docs/pages/api-references/library-docs.mdx @@ -95,7 +95,7 @@ Local parsing runs each parser inside a Docker container, so [Docker](https://do -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. @@ -207,5 +207,7 @@ You can also edit page content by modifying the MDX files directly — generated - 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. diff --git a/fern/products/docs/pages/changelog/2026-08-20.mdx b/fern/products/docs/pages/changelog/2026-08-20.mdx new file mode 100644 index 000000000..f86ac7cfb --- /dev/null +++ b/fern/products/docs/pages/changelog/2026-08-20.mdx @@ -0,0 +1,7 @@ +## Supported Doxyfile settings for C++ library docs + +api-reference, security + +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. + +