doxygen icon indicating copy to clipboard operation
doxygen copied to clipboard

CREATE_SUBDIRS and C++20 modules: Doxygen doesn't create directories

Open ColoredCarrot opened this issue 1 year ago • 2 comments

Description

When using CREATE_SUBDIRS = YES together with C++20 modules, Doxygen fails to create the HTML documentation files for the module files.

  • Doxygen errors with error: Could not open file some/path/html/module_dd/d3c/my__module.html for writing
  • The error causes the entire docs generation process to fail (non-zero exit code)
  • Manually creating the directory from the error message "fixes" this; Doxygen then runs successfully

Seems like there's just some code missing to create the necessary directories.

To reproduce

  1. Set CREATE_SUBDIRS = YES along with other necessary options.
  2. Create a C++20 module file, e.g.:
export module my_module;

/** @brief Do the thing */
export void foo() {}
  1. Run doxygen

Minimal example: DoxygenModulesErrorRepro.zip

Version Running Doxygen 1.10.0 (ebc57c6dd303a980bd19dd74b8b61c8f3f5180ca) on Windows 11, 64 bit.

ColoredCarrot avatar Mar 22 '24 08:03 ColoredCarrot

I've just pushed a proposed patch, pull request #10772

albert-github avatar Mar 29 '24 15:03 albert-github

Code has been integrated in master on GitHub (please don't close the issue as this will be done at the moment of an official release).

albert-github avatar Apr 01 '24 07:04 albert-github

This issue was previously marked 'fixed but not released', which means it should be fixed in doxygen version 1.11.0. Please verify if this is indeed the case. Reopen the issue if you think it is not fixed and please include any additional information that you think can be relevant (preferably in the form of a self-contained example).

doxygen avatar May 20 '24 09:05 doxygen