roc-streaming / roc-toolkit

Real-time audio streaming over the network.
https://roc-streaming.org
Mozilla Public License 2.0
1.02k stars 203 forks source link

Sphinx docs will break with new Doxygen due to buggy C++20 module parsing. #711

Closed jevinskie closed 2 months ago

jevinskie commented 3 months ago

Doxygen 1.9.8 and later added support for C++20 modules but the parser is buggy leading to it parsing the following section of log.h:

typedef struct roc_log_message {
    // ...
    const char* module;
    const char* file;
    // ...
};

as:

typedef struct roc_log_message {
    // ...
    const char*const char* file;
    // ...
};

I've filed PR to fix this upstream: doxygen/doxygen/pull/10777

It might work fine with a Doxygen built with clang parsing? I haven't tested.

Ugh, Flex.

gavv commented 2 months ago

Thanks for report! So do we need to fix anything on our side?

jevinskie commented 2 months ago

I think your CI pipeline is using an older doxygen that doesn’t have the original C++20 modules support so you should be safe to ignore this for now. The fix has been merged to upstream doxygen but isn’t included in a release yet. People building with a homebrew provided doxygen (most likely only Mac users, doubtful too many linuxbrew users out there) or people on rolling release Linux distros will likely see issues in the mean time though.

gavv commented 2 months ago

I see, thanks. Let's close it for now, at least now people can find this issue if they have problems.

PS. I've sent you a message on matrix recently (regarding FLAC), but I'm not sure it worked, I still don't quite understand how DMs are functioning there.